Connector For SWIFT gpi
Tracker API Detailed Specification This document provides details of the APIs, including the request and response body structures, the element types and the associated code lists and constraints.
09 February 2018
Connector for SWIFT gpi Tracker API Detailed Specification Table of Contents
Table of Contents Table of Contents ...... 4 Preface ...... 6 1 API Set Overview ...... 7 1.1 List of APIs ...... 7 2 UpdatePaymentStatusRequest ...... 10 2.1 API Functionality ...... 10 2.2 Structure ...... 10 2.3 Constraints ...... 11 2.4 Building Blocks ...... 11 3 UpdatePaymentStatusResponse ...... 18 3.1 API Functionality ...... 18 3.2 Structure ...... 18 3.3 Building Blocks ...... 18 4 GetPaymentTransactionDetailsRequest ...... 19 4.1 API Functionality ...... 19 4.2 Structure ...... 19 4.3 Constraints ...... 19 4.4 Building Blocks ...... 19 5 GetPaymentTransactionDetailsResponse ...... 21 5.1 API Functionality ...... 21 5.2 Structure ...... 21 5.3 Constraints ...... 23 5.4 Building Blocks ...... 23 6 GetPaymentTransactionsRequest ...... 35 6.1 API Functionality ...... 35 6.2 Structure ...... 36 6.3 Constraints ...... 36 6.4 Building Blocks ...... 36 7 GetPaymentTransactionsResponse ...... 42 7.1 API Functionality ...... 42 7.2 Structure ...... 42 7.3 Constraints ...... 43 7.4 Building Blocks ...... 43 8 GetChangedPaymentTransactionsRequest ...... 51 8.1 API Functionality ...... 51 8.2 Structure ...... 51 8.3 Constraints ...... 51 8.4 Building Blocks ...... 51 9 GetChangedPaymentTransactionsResponse ...... 53 9.1 API Functionality ...... 53 9.2 Structure ...... 53 9.3 Constraints ...... 55 9.4 Building Blocks ...... 55
09 February 2018 4
Connector for SWIFT gpi Tracker API Detailed Specification
10 GetInvalidEventsRequest ...... 69 10.1 API Functionality ...... 69 10.2 Structure ...... 69 10.3 Constraints ...... 69 10.4 Building Blocks ...... 69 11 GetInvalidEventsResponse ...... 71 11.1 API Functionality ...... 71 11.2 Structure ...... 71 11.3 Constraints ...... 71 11.4 Building Blocks ...... 71 12 Types...... 75 12.1 Date Time ...... 75 12.2 Datatypes ...... 75 A.1 JSON – Snake Case ...... 83 A.2 JSON – Amount Representation: ...... 85
09 February 2018 5
Connector for SWIFT gpi Tracker API Detailed Specification Preface
Preface About this document This document provides details of the APIs, including the request and response body structures, the element types, and the associated code lists and constraints.
Intended audience This document is for the following audience: • Business analysts to understand the functionality of the API • Business architects to understand the functionality of the API and how to integrate the use of the API within their organisation • Software developers of applications using the API to assess the complexity of the API First edition This is the first edition of the document. Related documentation • Connector for SWIFT gpi Tracker API Specification • Connector for SWIFT gpi Tracker API JSON Schemas • Connector for SWIFT gpi Service Description • SWIFT gpi Service Description
09 February 2018 6
Connector for SWIFT gpi Tracker API Detailed Specification API Set Overview
1 API Set Overview 1.1 List of APIs The following table lists all APIs described in this book.
API Definition camt.a01.001.02 UpdatePaymentStatusRequest This API is a status confirmation update to inform the Tracker about the updated status of a given payment. camt.a01.002.02 This API is the response to a status confirmation update UpdatePaymentStatusResponse to inform the Tracker about the updated status of a given payment. camt.a02.001.02 This API is a payment query to get detailed information GetPaymentTransactionDetailsRequest regarding a given payment transaction. It requires the UETR to be known.
Examples of use cases are: • Debtor status check - debtor's agent or debtor wants to see the status • Creditor status check - creditor's agent or creditor wants to see the status
camt.a02.002.02 This API is the response to a payment query to get GetPaymentTransactionDetailsResponse detailed information regarding a given payment transaction.
Examples of use cases are: • Debtor status check - debtor's agent or debtor wants to see the status • Creditor status check - creditor's agent or creditor wants to see the status
camt.a03.001.02 This API is a payment transaction search to get GetPaymentTransactionsRequest transaction-level information regarding all payments that match the search criteria. To have full information of a given payment transaction, the GetPaymentTransactionDetailsRequest can be used.
Examples of use cases are: • Investigation by a participating institution based on criteria given by a customer, such as instructed amount, time of initiation • Flow monitoring, for instance to find payments that are "stuck" for which the institution is the beneficiary institution • Feed a dashboard - give all payment transactions with their last status
09 February 2018 7
Connector for SWIFT gpi Tracker API Detailed Specification API Set Overview
camt.a03.002.02 This API is the response to a payment transaction GetPaymentTransactionsResponse search to get transaction-level information regarding all payments that match the search criteria.
Examples of use cases are: • Investigation by a participating institution based on criteria given by a customer, such as instructed amount, time of initiation • Flow monitoring, for instance to find payments that are "stuck" for which the institution is the beneficiary institution • Feed a dashboard - give all payment transactions with their last status
camt.a04.001.02 This API is a delta query to get all payment update GetChangedPaymentTransactionsRequest information starting from a given date and time. This API allows synchronization of a local database with the Tracker database.
All use cases applicable for the get and search of payment transactions apply also for this API.
The use of the API to get the last changed payment transactions is driven by an architectural choice to feed a local database and to optimise the flow between the Tracker and the API caller.
camt.a04.002.02 This API is the response to a delta query to get all GetChangedPaymentTransactionsResponse payment update information starting from a given date and time. This API allows synchronization of a local database with the Tracker database.
All use cases applicable for the get and search of payment transactions apply also for this API.
The use of the API to get the last changed payment transactions is driven by an architectural choice to feed a local database and to optimise the flow between the Tracker and the API caller.
camt.a05.001.02 GetInvalidEventsRequest This API is a payment events query to get invalid events for payment transactions within a given time frame. An event is either a payment or a status confirmation.
The API is typically used for support or audit purposes, where all invalid messages sent or received are retrievable by one API call.
09 February 2018 8
Connector for SWIFT gpi Tracker API Detailed Specification API Set Overview
camt.a05.002.02 GetInvalidEventsResponse This API is a payment events response to a query to get invalid events for payment transactions within a given time frame. An event is either a payment or a status confirmation.
The API is typically used for support or audit purposes, where all invalid messages sent or received are retrievable by one API call.
09 February 2018 9
Connector for SWIFT gpi Tracker API Detailed Specification UpdatePaymentStatusRequest
2 UpdatePaymentStatusRequest 2.1 API Functionality This API is a status confirmation update to inform the Tracker about the updated status of a given payment. Outline The UpdatePaymentStatusRequest API is composed of 5 BuildingBlocks: A. From The sending MessagingEndpoint that has created this business message for the receiving MessagingEndpoint that will process this business message. The sending MessagingEndpoint might be different from the sending address potentially contained in the transport header (as defined in the transport layer). B. BusinessService Specifies the business service agreed between the two MessagingEndpoints under which rules this business message is exchanged. To be used when there is a choice of processing services or processing service levels. Example: 001 C. TransactionIdentification Contains the unique end to end transaction reference (UETR). Format is lowercase separated by hyphens. D. InstructionIdentification Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction. Usage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction. E. PaymentStatus Contains the details on the payment status. 2.2 Structure Or Element/BuildingBlock Mult. Type Constr. No.
UpdatePaymentStatusRequest [1..1] From [1..1] IdentifierSet C3
BusinessService [1..1] Text
TransactionIdentification [1..1] Text
InstructionIdentification [1..1] Text
PaymentStatus [1..1]
{Or RawStatus [1..1] Text
Or} DetailedStatus [1..1]
Originator [1..1] IdentifierSet C3
09 February 2018 10
Connector for SWIFT gpi Tracker API Detailed Specification UpdatePaymentStatusRequest
FundsAvailable [0..1] DateTime
TransactionStatus [1..1] C1
Status [1..1] CodeSet
Reason [0..1] CodeSet
ForwardedAgent [0..1] IdentifierSet C3
ConfirmedAmount [1..1] Amount C2, C4
ForeignExchangeDetails [0..1]
FromCurrency [1..1] CodeSet C2
ToCurrency [1..1] CodeSet C2
ExchangeRate [1..1] Rate
ChargeAmount [0..*] Amount C2, C4 2.3 Constraints C1 ACSPReasonCode Reason must only be present if status contains ACSP. C2 ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. C3 AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters.
C4 CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217.
Note The decimal separator is a dot. 2.4 Building Blocks This chapter describes the BuildingBlocks of this API. 2.4.1 From Presence: [1..1] Definition: The sending MessagingEndpoint that has created this business message for the receiving MessagingEndpoint that will process this business message. Note The sending MessagingEndpoint might be different from the sending address potentially contained in the transport header (as defined in the transport layer). Impacted by: C3 "AnyBIC" Datatype: "AnyBICIdentifier"
09 February 2018 11
Connector for SWIFT gpi Tracker API Detailed Specification UpdatePaymentStatusRequest
Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 2.4.2 BusinessService Presence: [1..1] Definition: Specifies the business service agreed between the two MessagingEndpoints under which rules this business message is exchanged. To be used when there is a choice of processing services or processing service levels. Example: 001 Datatype: "Max35Text" 2.4.3 TransactionIdentification Presence: [1..1] Definition: Contains the unique end to end transaction reference (UETR). Format is lowercase separated by hyphens. Datatype: "Max40Text" 2.4.4 InstructionIdentification Presence: [1..1] Definition: Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction. Usage: The instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction. Datatype: "Max35Text" 2.4.5 PaymentStatus Presence: [1..1] Definition: Contains the details on the payment status. PaymentStatus contains one of the following PaymentStatusType1Choice elements
Or Element Mult. Type Constr. No.
{Or RawStatus [1..1] Text
Or} DetailedStatus [1..1]
Originator [1..1] IdentifierSet C3
FundsAvailable [0..1] DateTime
TransactionStatus [1..1] C1
Status [1..1] CodeSet
Reason [0..1] CodeSet
ForwardedAgent [0..1] IdentifierSet C3
ConfirmedAmount [1..1] Amount C2, C4
09 February 2018 12
Connector for SWIFT gpi Tracker API Detailed Specification UpdatePaymentStatusRequest
ForeignExchangeDetails [0..1]
FromCurrency [1..1] CodeSet C2
ToCurrency [1..1] CodeSet C2
ExchangeRate [1..1] Rate
ChargeAmount [0..*] Amount C2, C4 2.4.5.1 RawStatus Presence: [1..1] Definition: Contains the status of the payment taken from field 79 of the MT 199. Datatype: "Max1850Text" 2.4.5.2 DetailedStatus Presence: [1..1] Definition: Contains the detailed status of a Payment. DetailedStatus contains the following StatusDetails1 elements
Or Element Mult. Type Constr. No.
Originator [1..1] IdentifierSet C3
FundsAvailable [0..1] DateTime
TransactionStatus [1..1] C1
Status [1..1] CodeSet
Reason [0..1] CodeSet
ForwardedAgent [0..1] IdentifierSet C3
ConfirmedAmount [1..1] Amount C2, C4
ForeignExchangeDetails [0..1]
FromCurrency [1..1] CodeSet C2
ToCurrency [1..1] CodeSet C2
ExchangeRate [1..1] Rate
ChargeAmount [0..*] Amount C2, C4
2.4.5.2.1 Originator Presence: [1..1] Definition: Party that issues the status. Impacted by: C3 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters.
09 February 2018 13
Connector for SWIFT gpi Tracker API Detailed Specification UpdatePaymentStatusRequest
2.4.5.2.2 FundsAvailable Presence: [0..1] Definition: Date and time at which the funds are available, as reported in the ACSC status update. Datatype: "ISODateTime"
2.4.5.2.3 TransactionStatus Presence: [1..1] Definition: Specifies the status of the transaction. Impacted by: C1 "ACSPReasonCode" TransactionStatus contains the following PaymentStatus3 elements
Or Element Mult. Type Constr. No.
Status [1..1] CodeSet
Reason [0..1] CodeSet Constraints • ACSPReasonCode Reason must only be present if status contains ACSP.
2.4.5.2.3.1 Status Presence: [1..1] Definition: Reason for the status, as published in an external reason code list. Datatype: "TransactionIndividualStatus4Code"
Code Name Name Definition RJCT Rejected Payment initiation or individual transaction included in the payment initiation has been rejected. ACSP AcceptedSettlementInProcess All preceding checks such as technical validation and customer profile were successful and therefore the payment initiation has been accepted for execution.
ACSC1 AcceptedSettlementCompleted Settlement on the debtor's account has been completed.
Usage : this can be used by the first agent to report to the debtor that the transaction has been completed. Warning : this status is provided for transaction status reasons, not for financial information. It can only be used after bilateral agreement
1 In the SWIFT gpi Customer Credit Transfer (gCCT) Rulebook, ACSC is defined as “settlement completed ; creditor has been credited or the funds have been made available to the creditor, final status”.
09 February 2018 14
Connector for SWIFT gpi Tracker API Detailed Specification UpdatePaymentStatusRequest
2.4.5.2.3.2 Reason Presence: [0..1] Definition: Provides more details on the status in process. Datatype: "PaymentReason1Code"
Code Name Name Definition G002 CreditNotConfirmed Credit to creditor's account cannot be confirmed same day.
Update will follow. G004 CreditPendingFunds Credit to creditor's account is pending, status originator waiting for funds provided by or on behalf of the Instructing or Intermediary gpi Agent. Update will follow.
G000 GpiAgent Payment is pushed to next gpi Agent or gpi-compatible market infrastructure. G001 NonGpiAgent Payment is pushed to a non-gpi Agent or un-supported market infrastructure. No further updates from the status originator. G003 CreditPendingDocuments Credit to creditor's account is pending receipt of required documents. Instructed gpi Agent has requested the creditor to provide additional documentation.
Update will follow.
2.4.5.2.4 ForwardedAgent Presence: [0..1] Definition: Specifies the BIC of the entity to which the entity reporting the status has forwarded the payment transaction. This element can only be used in case the status is ACSP and the reason is G000 or G001. Impacted by: C3 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters.
2.4.5.2.5 ConfirmedAmount Presence: [1..1] Definition: The actual amount that has been paid to the ultimate beneficiary, after all charges etc. have been deducted. Impacted by: C2 "ActiveOrHistoricCurrency", C4 "CurrencyAmount"
Note More codes are expected to be defined for this element when the code list is next enhanced as part of ISO 20022 maintenance; this code may therefore change to "ACCC" in a future release.
09 February 2018 15
Connector for SWIFT gpi Tracker API Detailed Specification UpdatePaymentStatusRequest
Datatype: "ActiveOrHistoricCurrencyAndAmount" Constraints • ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. • CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot. 2.4.5.2.6 ForeignExchangeDetails Presence: [0..1] Definition: Specifies the exchange rate details between two currencies. ForeignExchangeDetails contains the following ForeignExchangeTerms32 elements
Or Element Mult. Type Constr. No.
FromCurrency [1..1] CodeSet C2
ToCurrency [1..1] CodeSet C2
ExchangeRate [1..1] Rate
2.4.5.2.6.1 FromCurrency Presence: [1..1] Definition: Currency for which a foreign exchange is required. Impacted by: C2 "ActiveOrHistoricCurrency" Datatype: "ActiveOrHistoricCurrencyCode" Constraints • ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. 2.4.5.2.6.2 ToCurrency Presence: [1..1] Definition: Currency resulting from a foreign exchange trade. Impacted by: C2 "ActiveOrHistoricCurrency" Datatype: "ActiveOrHistoricCurrencyCode" Constraints • ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged.
09 February 2018 16
Connector for SWIFT gpi Tracker API Detailed Specification UpdatePaymentStatusRequest
2.4.5.2.6.3 ExchangeRate Presence: [1..1] Definition: The value of one currency expressed in relation to another currency. ExchangeRate expresses the ratio between FromCurrency and ToCurrency (ExchangeRate = FromCurrency/ ToCurrency). Datatype: "BaseOneRate"
2.4.5.2.7 ChargeAmount Presence: [0..*] Definition: Amount of money asked or paid for the charge. Impacted by: C2 "ActiveOrHistoricCurrency", C4 "CurrencyAmount" Datatype: "ActiveOrHistoricCurrencyAndAmount" Constraints • ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. • CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot.
09 February 2018 17
Connector for SWIFT gpi Tracker API Detailed Specification UpdatePaymentStatusResponse
3 UpdatePaymentStatusResponse 3.1 API Functionality This API is the response to a status confirmation update to inform the Tracker about the updated status of a given payment. Outline The UpdatePaymentStatusResponse API is composed of 1 BuildingBlocks: A. NetworkReference Reference assigned by the network. 3.2 Structure Or Element/BuildingBlock Mult. Type Constr. No.
UpdatePaymentStatusResponse [1..1] NetworkReference [1..1] Text
3.3 Building Blocks This chapter describes the BuildingBlocks of this API. 3.3.1 NetworkReference Presence: [1..1] Definition: Reference assigned by the network. Datatype: "Max350Text"
09 February 2018 18
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsRequest
4 GetPaymentTransactionDetailsRequest 4.1 API Functionality This API is a payment query to get detailed information regarding a given payment transaction. It requires the UETR to be known. Examples of use cases are: • Debtor status check - debtor's agent or debtor wants to see the status • Creditor status check - creditor's agent or creditor wants to see the status Outline The GetPaymentTransactionDetailsRequest API is composed of 2 BuildingBlocks: A. MyInstitution Specifies the institution which payments are requested. B. TransactionIdentification Contains the unique end to end transaction reference (UETR) of a payment. 4.2 Structure Or Element/BuildingBlock Mult. Type Constr. No.
GetPaymentTransactionDetailsRequest [1..1] MyInstitution [1..250] IdentifierSet C1
TransactionIdentification [1..1] Text 4.3 Constraints C1 AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 4.4 Building Blocks This chapter describes the BuildingBlocks of this API. 4.4.1 MyInstitution Presence: [1..250] Definition: Specifies the institution which payments are requested. Impacted by: C1 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters.
09 February 2018 19
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsRequest
4.4.2 TransactionIdentification Presence: [1..1] Definition: Contains the unique end to end transaction reference (UETR) of a payment. Datatype: "Max40Text"
09 February 2018 20
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsResponse
5 GetPaymentTransactionDetailsResponse 5.1 API Functionality This API is the response to a payment query to get detailed information regarding a given payment transaction. Examples of use cases are: • Debtor status check - debtor's agent or debtor wants to see the status • Creditor status check - creditor's agent or creditor wants to see the status Outline The GetPaymentTransactionDetailsResponse API is composed of 6 BuildingBlocks: A. TransactionIdentification Contains the unique end to end transaction reference (UETR) of a payment. B. TransactionStatus Specifies the status of a transaction, in a coded form. C. InitiationTime Date and time at which the message enters the SWIFT gpi system. D. CompletionTime Time at which the instructed bank reports that the transaction has been completed. Date and time based on the creation date of the status confirmation containing a final status ACSC. E. LastUpdateTime Last date and time at which the status of this transaction was updated. F. PaymentEvent This groups the information of an event, that is, of a payment message or status confirmation update. It is repeated as many times as there are events to be returned. 5.2 Structure Or Element/BuildingBlock Mult. Type Constr. No.
GetPaymentTransactionDetailsResponse [1..1] TransactionIdentification [1..1] Text
TransactionStatus [1..1] C1
Status [1..1] CodeSet
Reason [0..1] CodeSet
InitiationTime [1..1] DateTime
CompletionTime [0..1] DateTime
LastUpdateTime [0..1] DateTime
PaymentEvent [0..*]
NetworkReference [1..1] Text
MessageNameIdentification [1..1] Text
09 February 2018 21
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsResponse
BusinessService [1..1] Text
Valid [1..1] Indicator
InvalidityReason [0..1] CodeSet
InvalidityDescription [0..1] Text
SenderReference [0..1] Text
InstructionIdentification [1..1] Text
TransactionStatus [0..1] C1
Status [1..1] CodeSet
Reason [0..1] CodeSet
ForwardedAgent [0..1] IdentifierSet C4
FundsAvailable [0..1] DateTime
From [0..1] IdentifierSet C4
To [0..1] IdentifierSet C4
Originator [0..1] IdentifierSet C4
CreditorAgent [0..1] IdentifierSet C4
PreviousInstructingAgent [0..1] IdentifierSet C4
SenderAcknowledgementReceipt [1..1] DateTime
ReceivedDate [0..1] DateTime
InstructedAmount [0..1] Amount C3, C5
ConfirmedAmount [0..1] Amount C3, C5
InterbankSettlementAmount [0..1] Amount C2, C6
InterbankSettlementDate [0..1] Date
ChargeBearer [0..1] CodeSet
ChargeAmount [0..*] Amount C3, C5
ForeignExchangeDetails [0..1]
FromCurrency [1..1] CodeSet C3
ToCurrency [1..1] CodeSet C3
ExchangeRate [1..1] Rate
UpdatePayment [0..1] Text
DuplicateMessageReference [0..1] Text
CopiedBusinessService [0..1] Text
LastUpdateTime [1..1] DateTime
09 February 2018 22
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsResponse
5.3 Constraints C1 ACSPReasonCode Reason must only be present if status contains ACSP. C2 ActiveCurrency The currency code must be a valid active currency code, not yet withdrawn on the day the message containing the currency is exchanged. Valid active currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and are not yet withdrawn on the day the message containing the currency is exchanged.
C3 ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged.
C4 AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters.
C5 CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot. C6 CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note Note: The decimal separator is a dot. 5.4 Building Blocks This chapter describes the BuildingBlocks of this API. 5.4.1 TransactionIdentification Presence: [1..1] Definition: Contains the unique end to end transaction reference (UETR) of a payment. Datatype: "Max40Text" 5.4.2 TransactionStatus Presence: [1..1] Definition: Specifies the status of a transaction, in a coded form. Impacted by: C1 "ACSPReasonCode" TransactionStatus contains the following PaymentStatus3 elements
Or Element Mult. Type Constr. No.
Status [1..1] CodeSet
Reason [0..1] CodeSet
09 February 2018 23
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsResponse
Constraints • ACSPReasonCode Reason must only be present if Status contains ACSP. 5.4.2.1 Status Presence: [1..1] Definition: Reason for the status, as published in an external reason code list. Datatype: "TransactionIndividualStatus4Code"
Code Name Name Definition RJCT Rejected Payment initiation or individual transaction included in the payment initiation has been rejected. ACSP AcceptedSettlementInProcess All preceding checks such as technical validation and customer profile were successful and therefore the payment initiation has been accepted for execution.
ACSC AcceptedSettlementCompleted Settlement on the debtor's account has been completed.
Usage: this can be used by the first agent to report to the debtor that the transaction has been completed. Warning: this status is provided for transaction status reasons, not for financial information. It can only be used after bilateral agreement
5.4.2.2 Reason Presence: [0..1] Definition: Provides more details on the status in process. Datatype: "PaymentReason1Code"
Code Name Name Definition G002 CreditNotConfirmed Credit to creditor's account cannot be confirmed same day.
Update will follow. G004 CreditPendingFunds Credit to creditor's account is pending, status originator waiting for funds provided by or on behalf of the Instructing or Intermediary gpi Agent. Update will follow.
G000 GpiAgent Payment is pushed to next gpi Agent or gpi-compatible market infrastructure. G001 NonGpiAgent Payment is pushed to a non-gpi Agent or un-supported market infrastructure. No further updates from the status originator.
09 February 2018 24
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsResponse
G003 CreditPendingDocuments Credit to creditor's account is pending receipt of required documents. Instructed gpi Agent has requested the creditor to provide additional documentation.
Update will follow.
5.4.3 InitiationTime Presence: [1..1] Definition: Date and time at which the message enters the SWIFT gpi system. Datatype: "ISODateTime" 5.4.4 CompletionTime Presence: [0..1] Definition: Time at which the instructed bank reports that the transaction has been completed. Date and time based on the creation date of the status confirmation containing a final status ACSC. Datatype: "ISODateTime" 5.4.5 LastUpdateTime Presence: [0..1] Definition: Last date and time at which the status of this transaction was updated. Datatype: "ISODateTime" 5.4.6 PaymentEvent Presence: [0..*] Definition: This groups the information of an event, that is, of a payment message or status confirmation update. It is repeated as many times as there are events to be returned. PaymentEvent contains the following PaymentEvent1 elements
Or Element Mult. Type Constr. No.
NetworkReference [1..1] Text
MessageNameIdentification [1..1] Text
BusinessService [1..1] Text
Valid [1..1] Indicator
InvalidityReason [0..1] CodeSet
InvalidityDescription [0..1] Text
SenderReference [0..1] Text
InstructionIdentification [1..1] Text
TransactionStatus [0..1] C1
Status [1..1] CodeSet
09 February 2018 25
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsResponse
Reason [0..1] CodeSet
ForwardedAgent [0..1] IdentifierSet C4
FundsAvailable [0..1] DateTime
From [0..1] IdentifierSet C4
To [0..1] IdentifierSet C4
Originator [0..1] IdentifierSet C4
CreditorAgent [0..1] IdentifierSet C4
PreviousInstructingAgent [0..1] IdentifierSet C4
SenderAcknowledgementReceipt [1..1] DateTime
ReceivedDate [0..1] DateTime
InstructedAmount [0..1] Amount C3, C5
ConfirmedAmount [0..1] Amount C3, C5
InterbankSettlementAmount [0..1] Amount C2, C6
InterbankSettlementDate [0..1] Date
ChargeBearer [0..1] CodeSet
ChargeAmount [0..*] Amount C3, C5
ForeignExchangeDetails [0..1]
FromCurrency [1..1] CodeSet C3
ToCurrency [1..1] CodeSet C3
ExchangeRate [1..1] Rate
UpdatePayment [0..1] Text
DuplicateMessageReference [0..1] Text
CopiedBusinessService [0..1] Text
LastUpdateTime [1..1] DateTime 5.4.6.1 NetworkReference Presence: [1..1] Definition: Reference assigned by the network when sending the payment. Datatype: "Max350Text" 5.4.6.2 MessageNameIdentification Presence: [1..1] Definition: Specifies the original message name identifier to which the message refers. Datatype: "Max35Text" 5.4.6.3 BusinessService Presence: [1..1]
09 February 2018 26
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsResponse
Definition: Specifies the business service agreed between the two MessagingEndpoints under which rules this business message is exchanged. To be used when there is a choice of processing services or processing service levels. Example: 001 Datatype: "Max35Text" 5.4.6.4 Valid Presence: [1..1] Definition: Indicates if a payment is consistent (YES) or not (NO). Datatype: One of the following values must be used (see "YesNoIndicator" ): • Meaning When True: Yes • Meaning When False: No 5.4.6.5 InvalidityReason Presence: [0..1] Definition: Contains the additional information in case the event is not a valid component of a payment transaction. Datatype: "InvalidPaymentsEvent1Code" 5.4.6.6 InvalidityDescription Presence: [0..1] Definition: Contains a textual description as to why the event is not a valid component of a payments transaction. Datatype: "Max350Text" 5.4.6.7 SenderReference Presence: [0..1] Definition: Identification assigned by the sender of the message. For MT format this is the MUR. Datatype: "Max30Text" 5.4.6.8 InstructionIdentification Presence: [1..1] Definition: Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction. Usage: The instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction. Datatype: "Max35Text" 5.4.6.9 TransactionStatus Presence: [0..1] Definition: Specifies the status of a transaction, in a coded form. Impacted by: C1 "ACSPReasonCode" TransactionStatus contains the following PaymentStatus3 elements
09 February 2018 27
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsResponse
Or Element Mult. Type Constr. No.
Status [1..1] CodeSet
Reason [0..1] CodeSet
Constraints • ACSPReasonCode Reason must only be present if status contains ACSP. 5.4.6.9.1 Status Presence: [1..1] Definition: Reason for the status, as published in an external reason code list. Datatype: "TransactionIndividualStatus4Code"
Code Name Name Definition
RJCT Rejected Payment initiation or individual transaction included in the payment initiation has been rejected.
ACSP AcceptedSettlementInProcess All preceding checks such as technical validation and customer profile were successful and therefore the payment initiation has been accepted for execution.
ACSC AcceptedSettlementCompleted Settlement on the debtor's account has been completed.
Usage: this can be used by the first agent to report to the debtor that the transaction has been completed. Warning: this status is provided for transaction status reasons, not for financial information. It can only be used after bilateral agreement. 5.4.6.9.2 Reason Presence: [0..1] Definition: Provides more details on the status in process. Datatype: "PaymentReason1Code"
Code Name Name Definition G002 CreditNotConfirmed Credit to creditor's account cannot be confirmed same day.
Update will follow. G004 CreditPendingFunds Credit to creditor's account is pending, status originator waiting for funds provided by or on behalf of the Instructing or Intermediary gpi Agent. Update will follow.
G000 GpiAgent Payment is pushed to next gpi Agent or gpi-compatible market infrastructure. G001 NonGpiAgent Payment is pushed to a non-gpi Agent or un-supported market infrastructure. No further updates from the status originator.
09 February 2018 28
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsResponse
G003 CreditPendingDocuments Credit to creditor's account is pending receipt of required documents. Instructed gpi Agent has requested the creditor to provide additional documentation.
Update will follow.
5.4.6.10ForwardedAgent Presence: [0..1] Definition: Specifies the BIC of the entity to which the entity reporting the status has forwarded the payment transaction. Impacted by: C4 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 5.4.6.11FundsAvailable Presence: [0..1] Definition: Date and time at which the funds are available, as reported in the ACSC status update. Must only be used when TransactionStatus is "ACSC". Datatype: "ISODateTime" 5.4.6.12From Presence: [0..1] Definition: The sending MessagingEndpoint that has created this business message for the receiving MessagingEndpoint that will process this business message. Note The sending MessagingEndpoint might be different from the sending address potentially contained in the transport header (as defined in the transport layer). Impacted by: C4 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 5.4.6.13To Presence: [0..1] Definition: The MessagingEndpoint designated by the sending MessagingEndpoint to be the recipient who will ultimately process this business message. Note The receiving MessagingEndpoint might be different from the receiving address potentially contained in the transport header (as defined in the transport layer). Impacted by: C4 "AnyBIC"
09 February 2018 29
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsResponse
Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 5.4.6.14Originator Presence: [0..1] Definition: Party that issues the status. Impacted by: C4 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 5.4.6.15CreditorAgent Presence: [0..1] Definition: Financial institution servicing an account for the creditor. Impacted by: C4 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 5.4.6.16PreviousInstructingAgent Presence: [0..1] Definition: Agent immediately prior to the instructing agent. Impacted by: C4 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 5.4.6.17SenderAcknowledgementReceipt Presence: [1..1] Definition: Date and time at which the sender acknowledged receipt of the message. Datatype: "ISODateTime"
09 February 2018 30
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsResponse
5.4.6.18ReceivedDate Presence: [0..1] Definition: Date and time at which the message was acknowledged by the receiver. Datatype: "ISODateTime" 5.4.6.19InstructedAmount Presence: [0..1] Definition: Amount of money to be moved between the debtor (ordering customer) and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party. Usage: This amount has to be transported unchanged through the transaction chain. Impacted by: C3 "ActiveOrHistoricCurrency", C5 "CurrencyAmount" Datatype: "ActiveOrHistoricCurrencyAndAmount" Constraints ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot. 5.4.6.20ConfirmedAmount Presence: [0..1] Definition: The actual amount that has been paid to the ultimate beneficiary, after all charges etc. have been deducted. Impacted by: C3 "ActiveOrHistoricCurrency", C5 "CurrencyAmount" Datatype: "ActiveOrHistoricCurrencyAndAmount" Constraints ActiveOrHistoricCurrency The currency Code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot. 5.4.6.21InterbankSettlementAmount Presence: [0..1] Definition: Amount of money moved between the instructing agent and the instructed agent. Impacted by: C2 "ActiveCurrency", C6 "CurrencyAmount" Datatype: "ActiveCurrencyAndAmount" Constraints • ActiveCurrency
09 February 2018 31
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsResponse
The currency code must be a valid active currency code, not yet withdrawn on the day the message containing the currency is exchanged. Valid active currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and are not yet withdrawn on the day the message containing the currency is exchanged. • CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot. 5.4.6.22InterbankSettlementDate Presence: [0..1] Definition: Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due. Datatype: "ISODate" 5.4.6.23ChargeBearer Presence: [0..1] Definition: Specifies which party/parties will bear the charges associated with the processing of the payment transaction. Datatype: "ChargeBearerType3Code"
Code Name Name Definition SHAR Shared In a credit transfer context, means that transaction charges on the sender side are to be borne by the debtor, transaction charges on the receiver side are to be borne by the creditor. In a direct debit context, means that transaction charges on the sender side are to be borne by the creditor, transaction charges on the receiver side are to be borne by the debtor.
DEBT BorneByDebtor All transaction charges are to be borne by the debtor. CRED BorneByCreditor All transaction charges are to be borne by the creditor.
5.4.6.24ChargeAmount Presence: [0..*] Definition: Amount of money asked or paid for the charge. Impacted by: C3 "ActiveOrHistoricCurrency", C5 "CurrencyAmount" Datatype: "ActiveOrHistoricCurrencyAndAmount" Constraints • ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. • CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot.
09 February 2018 32
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsResponse
5.4.6.25ForeignExchangeDetails Presence: [0..1] Definition: Specifies the exchange rate details between two currencies. ForeignExchangeDetails contains the following ForeignExchangeTerms32 elements
Or Element Mult. Type Constr. No.
FromCurrency [1..1] CodeSet C3
ToCurrency [1..1] CodeSet C3
ExchangeRate [1..1] Rate 5.4.6.25.1 From Currency Presence: [1..1] Definition: Currency for which a foreign exchange is required. Impacted by: C3 "ActiveOrHistoricCurrency" Datatype: "ActiveOrHistoricCurrencyCode" Constraints • ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. 5.4.6.25.2 ToCurrency Presence: [1..1] Definition: Currency resulting from a foreign exchange trade. Impacted by: C3 "ActiveOrHistoricCurrency" Datatype: "ActiveOrHistoricCurrencyCode" Constraints • ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. 5.4.6.25.3 ExchangeRate Presence: [1..1] Definition: The value of one currency expressed in relation to another currency. ExchangeRate expresses the ratio between FromCurrency and ToCurrency (ExchangeRate = FromCurrency/ ToCurrency). Datatype: "BaseOneRate" 5.4.6.26 UpdatePayment Presence: [0..1] Definition: Implements the correlation between a payment message and a status update on it. Contains the network reference of the payment for which the status confirmation was applicable.
09 February 2018 33
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionDetailsResponse
Datatype: "Max35Text" 5.4.6.27 DuplicateMessageReference Presence: [0..1] Definition: Network reference of the payment that is the original recorded payment. Datatype: "Max50Text" 5.4.6.28 CopiedBusinessService Presence: [0..1] Definition: Specifies the copied business service of the market infrastructure. Datatype: "Max35Text" 5.4.6.29 LastUpdateTime Presence: [1..1] Definition: Last date and time at which the status of this payment event was updated. Datatype: "ISODateTime"
09 February 2018 34
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsRequest
6 GetPaymentTransactionsRequest 6.1 API Functionality This API is a payment transaction search to get transaction-level information regarding all payments that match the search criteria. To have full information of a given payment transaction, the GetPaymentTransactionDetailsRequest can be used. Examples of use cases are: • Investigation by a participating institution based on criteria given by a customer, such as instructed amount, time of initiation • Flow monitoring, for instance to find payments that are "stuck" for which the institution is the beneficiary institution • Feed a dashboard - give all payment transactions with their last status Outline The GetPaymentTransactionsRequest API is composed of 10 BuildingBlocks: A. MyInstitution Specifies an institution that is owned by the sender, for which the sender can ask payment transaction details. B. TimeWindow Time window for this institution to which the search applies. C. Agent Identifies agent(s) involved in a payment transaction. D. Location Specifies the location of the search. E. InstructionIdentification Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction. Usage: The instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction. F. TransactionStatus Specifies the status of a transaction, in a coded form. G. Amount Specifies the amount range for a given currency and amount type. H. Event Specifies one of the states of the payment transaction. I. MaximumNumber Indicates the maximum number of entries returned. J. More Contains the token to get the next set of responses.
09 February 2018 35
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsRequest
6.2 Structure Or Element/BuildingBlock Mult. Type Constr. No.
GetPaymentTransactionsRequest [1..1] MyInstitution [1..250] IdentifierSet C2
TimeWindow [1..1] ±
Agent [0..*]
AnyBIC [1..*] IdentifierSet C2
Role [1..1] CodeSet
Location [0..1] CodeSet
InstructionIdentification [0..1] Text
TransactionStatus [0..*] C1
Status [1..1] CodeSet
Reason [0..1] CodeSet
Amount [0..1]
Type [1..1] CodeSet
Currency [0..1] CodeSet C3
FromAmount [1..1] Amount
ToAmount [1..1] Amount
Event [1..1] CodeSet
MaximumNumber [1..1] Quantity
More [0..1] Text 6.3 Constraints C1 ACSPReasonCode Reason must only be present if status contains ACSP.
C2 AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters.
C3 ValidationByTable Must be a valid currency code which is registered with the ISO 4217 Maintenance Agency, and consist of three contiguous letters. 6.4 Building Blocks This chapter describes the BuildingBlocks of this API.
09 February 2018 36
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsRequest
6.4.1 MyInstitution Presence: [1..250] Definition: Specifies an institution that is owned by the sender, for which the sender can ask payment transaction details. Impacted by: C2 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 6.4.2 TimeWindow Presence: [1..1] Definition: Time window for this institution to which the search applies. TimeWindow contains the following elements (see "DateTimePeriodDetails" for details)
Or Element Mult. Type Constr. No.
FromDateTime [1..1] DateTime
ToDateTime [1..1] DateTime
6.4.3 Agent Presence: [0..*] Definition: Identifies agent(s) involved in a payment transaction. Agent contains the following AgentType1 elements
Or Element Mult. Type Constr. No.
AnyBIC [1..*] IdentifierSet C2
Role [1..1] CodeSet 6.4.3.1 AnyBIC Presence: [1..*] Definition: Code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority, as described in ISO 9362 "Banking - Banking telecommunication messages - Business identifier code (BIC)". Impacted by: C2 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters.
09 February 2018 37
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsRequest
6.4.3.2 Role Presence: [1..1] Definition: Specifies the role of the party in the payment chain. Datatype: "PaymentsPartyType1Code" 6.4.4 Location Presence: [0..1] Definition: Specifies the location of the search. Datatype: "Location1Code"
Code Name Name Definition
OTHR AtAnotherInstitution At another institution
MYIN AtMyInstitution At my institution.
6.4.5 InstructionIdentification Presence: [0..1] Definition: Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction. Usage: The instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction. Datatype: "Max35Text" 6.4.6 TransactionStatus Presence: [0..*] Definition: Specifies the status of a transaction, in a coded form. Impacted by: C1 "ACSPReasonCode" TransactionStatus contains the following PaymentStatus3 elements
Or Element Mult. Type Constr. No.
Status [1..1] CodeSet
Reason [0..1] CodeSet
Constraints • ACSPReasonCode Reason must only be present if status contains ACSP. 6.4.6.1 Status Presence: [1..1] Definition: Reason for the status, as published in an external reason code list. Datatype: "TransactionIndividualStatus4Code"
Code Name Name Definition RJCT Rejected Payment initiation or individual transaction included in the payment initiation has been rejected.
09 February 2018 38
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsRequest
ACSP AcceptedSettlementInProcess All preceding checks such as technical validation and customer profile were successful and therefore the payment initiation has been accepted for execution.
ACSC AcceptedSettlementCompleted Settlement on the debtor's account has been completed.
Usage: this can be used by the first agent to report to the debtor that the transaction has been completed. Warning: this status is provided for transaction status reasons, not for financial information. It can only be used after bilateral agreement.
6.4.6.2 Reason Presence: [0..1] Definition: Provides more details on the status in process. Datatype: "PaymentReason1Code"
Code Name Name Definition
G002 CreditNotConfirmed Credit to creditor's account cannot be confirmed same day.
Update will follow.
G004 CreditPendingFunds Credit to creditor's account is pending, status originator waiting for funds provided by or on behalf of the Instructing or Intermediary gpi Agent. Update will follow.
G000 GpiAgent Payment is pushed to next gpi Agent or gpi-compatible market infrastructure.
G001 NonGpiAgent Payment is pushed to a non-gpi Agent or un-supported market infrastructure. No further updates from the status originator.
G003 CreditPendingDocuments Credit to creditor's account is pending receipt of required documents. Instructed gpi Agent has requested the creditor to provide additional documentation.
Update will follow.
6.4.7 Amount Presence: [0..1] Definition: Specifies the amount range for a given currency and amount type. Amount contains the following AmountType1 elements
Or Element Mult. Type Constr. No.
Type [1..1] CodeSet
09 February 2018 39
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsRequest
Currency [0..1] CodeSet C3
FromAmount [1..1] Amount
ToAmount [1..1] Amount 6.4.7.1 Type Presence: [1..1] Definition: Specifies the type of amount. Datatype: "TypeOfAmount8Code"
Code Name Name Definition CONF ConfirmedAmount The actual amount that has been paid to the ultimate beneficiary, after all charges etc. have been deducted. INST InstructedAmount Amount of money to be moved between the debtor (ordering customer) and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.
Usage: This amount has to be transported unchanged through the transaction chain.
6.4.7.2 Currency Presence: [0..1] Definition: Currency code of the ranged amount. Impacted by: C3 "ValidationByTable" Datatype: "CurrencyCode" Constraints • ValidationByTable 6.4.7.3 FromAmount Presence: [1..1] Definition: Lowest amount value Datatype: "ImpliedCurrencyAndAmount" 6.4.7.4 ToAmount Presence: [1..1] Definition: Highest amount value Datatype: "ImpliedCurrencyAndAmount" 6.4.8 Event Presence: [1..1] Definition: Specifies one of the states of the payment transaction. Datatype: "PaymentTransactionState1Code"
Code Name Name Definition CRED Credited The transaction is credited.
09 February 2018 40
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsRequest
RCCA ReceivedAtCreditorAgent The transaction is received at the creditor's agent. RCMY ReceivedByMyInstitution The transaction is received by my institution. STMY SentByMyInstitution The transaction is sent by my institution.
STDA SentByDebtorAgent The transaction is sent by the debtor's agent.
6.4.9 MaximumNumber Presence: [1..1] Definition: Indicates the maximum number of entries returned. Datatype: "Number" 6.4.10 More Presence: [0..1] Definition: Contains the token to get the next set of responses. Datatype: "Max350Text"
09 February 2018 41
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsResponse
7 GetPaymentTransactionsResponse 7.1 API Functionality This API is the response to a payment transaction search to get transaction-level information regarding all payments that match the search criteria. Examples of use cases are: • Investigation by a participating institution based on criteria given by a customer, such as instructed amount, time of initiation • Flow monitoring, for instance to find payments that are "stuck" for which the institution is the beneficiary institution • Feed a dashboard - give all payment transactions with their last status Outline The GetPaymentTransactionsResponse API is composed of 3 BuildingBlocks: A. PaymentTransaction Contains the payment transactions that meet the search criteria. B. TotalNumber Contains the total number of returned result entries. C. More Contains a token to obtain the next set of responses. It indicates whether there are more results to retrieve, what timestamp to start from and how many more result entries are to be retrieved. 7.2 Structure Or Element/BuildingBlock Mult. Type Constr. No.
GetPaymentTransactionsResponse [1..1] PaymentTransaction [1..*]
TransactionIdentification [1..1] Text
MyInstitution [1..1] IdentifierSet C3
Role [1..1] CodeSet
EventTime [1..1] DateTime
TransactionStatus [1..1] C1
Status [1..1] CodeSet
Reason [0..1] CodeSet
PreviousInstructingAgent [0..1] IdentifierSet C3
Agents [1..*]
From [0..1] IdentifierSet C3
To [0..1] IdentifierSet C3
TransactionStatus [1..1] C1
Status [1..1] CodeSet
09 February 2018 42
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsResponse
Reason [0..1] CodeSet
ForwardedAgent [0..1] IdentifierSet C3
Received [1..1] Indicator
CreditorAgent [0..1] IdentifierSet C3
InitiationTime [1..1] DateTime
CompletionTime [0..1] DateTime
InstructedAmount [1..1] Amount C2, C4
LastUpdateTime [1..1] DateTime
TotalNumber [1..1] Quantity
More [0..1] Text 7.3 Constraints C1 ACSPReasonCode Reason must only be present if status contains ACSP.
C2 ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged.
C3 AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters.
C4 CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot. 7.4 Building Blocks This chapter describes the BuildingBlocks of this API. 7.4.1 PaymentTransaction Presence: [1..*] Definition: Contains the payment transactions that meet the search criteria. PaymentTransaction contains the following PaymentTransaction72 elements
Or Element Mult. Type Constr. No.
TransactionIdentification [1..1] Text
MyInstitution [1..1] IdentifierSet C3
Role [1..1] CodeSet
09 February 2018 43
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsResponse
EventTime [1..1] DateTime
TransactionStatus [1..1] C1
Status [1..1] CodeSet
Reason [0..1] CodeSet
PreviousInstructingAgent [0..1] IdentifierSet C3
Agents [1..*]
From [0..1] IdentifierSet C3
To [0..1] IdentifierSet C3
TransactionStatus [1..1] C1
Status [1..1] CodeSet
Reason [0..1] CodeSet
ForwardedAgent [0..1] IdentifierSet C3
Received [1..1] Indicator
CreditorAgent [0..1] IdentifierSet C3
InitiationTime [1..1] DateTime
CompletionTime [0..1] DateTime
InstructedAmount [1..1] Amount C2, C4
LastUpdateTime [1..1] DateTime 7.4.1.1 TransactionIdentification Presence: [1..1] Definition: Contains the unique end to end transaction reference (UETR) of a payment. Datatype: "Max40Text" 7.4.1.2 MyInstitution Presence: [1..1] Definition: Specifies an institution that is owned by the sender, for which the sender can ask payment transaction details. Impacted by: C3 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 7.4.1.3 Role Presence: [1..1] Definition: Specifies the role of the party in the payment chain. Datatype: "PaymentsPartyType1Code"
09 February 2018 44
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsResponse
7.4.1.4 EventTime Presence: [1..1] Definition: Time determined by the Role that the entity defined in MyInstitution is playing in this transaction. Datatype: "ISODateTime" 7.4.1.5 TransactionStatus Presence: [1..1] Definition: Specifies the status of a transaction, in a coded form. Impacted by: C1 "ACSPReasonCode" TransactionStatus contains the following PaymentStatus3 elements
Or Element Mult. Type Constr. No.
Status [1..1] CodeSet
Reason [0..1] CodeSet
Constraints • ACSPReasonCode Reason must only be present if status contains ACSP. 7.4.1.5.1 Status Presence: [1..1] Definition: Reason for the status, as published in an external reason code list. Datatype: "TransactionIndividualStatus4Code"
Code Name Name Definition
RJCT Rejected Payment initiation or individual transaction included in the payment initiation has been rejected.
ACSP AcceptedSettlementInProcess All preceding checks such as technical validation and customer profile were successful and therefore the payment initiation has been accepted for execution.
ACSC AcceptedSettlementCompleted Settlement on the debtor's account has been completed.
Usage: this can be used by the first agent to report to the debtor that the transaction has been completed. Warning: this status is provided for transaction status reasons, not for financial information. It can only be used after bilateral agreement 7.4.1.5.2 Reason Presence: [0..1] Definition: Provides more details on the status in process. Datatype: "PaymentReason1Code"
09 February 2018 45
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsResponse
Code Name Name Definition G002 CreditNotConfirmed Credit to creditor's account cannot be confirmed same day.
Update will follow. G004 CreditPendingFunds Credit to creditor's account is pending, status originator waiting for funds provided by or on behalf of the Instructing or Intermediary gpi Agent. Update will follow.
G000 GpiAgent Payment is pushed to next gpi Agent or gpi-compatible market infrastructure. G001 NonGpiAgent Payment is pushed to a non-gpi Agent or un-supported market infrastructure. No further updates from the status originator. G003 CreditPendingDocuments Credit to creditor's account is pending receipt of required documents. Instructed gpi Agent has requested the creditor to provide additional documentation.
Update will follow.
7.4.1.6 PreviousInstructingAgent Presence: [0..1] Definition: Agent immediately prior to the instructing agent. Impacted by: C3 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 7.4.1.7 Agents Presence: [1..*] Definition: Identifies the agents currently participating in a transaction. Agents contains the following PaymentEvent2 elements
Or Element Mult. Type Constr. No.
From [0..1] IdentifierSet C3
To [0..1] IdentifierSet C3
TransactionStatus [1..1] C1
Status [1..1] CodeSet
Reason [0..1] CodeSet
ForwardedAgent [0..1] IdentifierSet C3
Received [1..1] Indicator
09 February 2018 46
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsResponse
7.4.1.7.1 From Presence: [0..1] Definition: The sending MessagingEndpoint that has created this business message for the receiving MessagingEndpoint that will process this business message. Note The sending MessagingEndpoint might be different from the sending address potentially contained in the transport header (as defined in the transport layer). Impacted by: C3 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 7.4.1.7.2 To Presence: [0..1] Definition: The MessagingEndpoint designated by the sending MessagingEndpoint to be the recipient who will ultimately process this business message. Note The receiving MessagingEndpoint might be different from the receiving address potentially contained in the transport header (as defined in the transport layer). Impacted by: C3 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 7.4.1.7.3 TransactionStatus Presence: [1..1] Definition: Specifies the status of a transaction, in a coded form. Impacted by: C1 "ACSPReasonCode" TransactionStatus contains the following PaymentStatus3 elements
Or Element Mult. Type Constr. No.
Status [1..1] CodeSet
Reason [0..1] CodeSet
Constraints • ACSPReasonCode Reason must only be present if status contains ACSP. 7.4.1.7.3.1 Status Presence: [1..1] Definition: Reason for the status, as published in an external reason code list.
09 February 2018 47
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsResponse
Datatype: "TransactionIndividualStatus4Code"
Code Name Name Definition RJCT Rejected Payment initiation or individual transaction included in the payment initiation has been rejected. ACSP AcceptedSettlementInProcess All preceding checks such as technical validation and customer profile were successful and therefore the payment initiation has been accepted for execution.
ACSC AcceptedSettlementCompleted Settlement on the debtor's account has been completed.
Usage: this can be used by the first agent to report to the debtor that the transaction has been completed. Warning: this status is provided for transaction status reasons, not for financial information. It can only be used after bilateral agreement.
7.4.1.7.3.2 Reason Presence: [0..1] Definition: Provides more details on the status in process. Datatype: "PaymentReason1Code"
Code Name Name Definition G002 CreditNotConfirmed Credit to creditor's account cannot be confirmed same day.
Update will follow. G004 CreditPendingFunds Credit to creditor's account is pending, status originator waiting for funds provided by or on behalf of the Instructing or Intermediary gpi Agent. Update will follow.
G000 GpiAgent Payment is pushed to next gpi Agent or gpi-compatible market infrastructure. G001 NonGpiAgent Payment is pushed to a non-gpi Agent or un-supported market infrastructure. No further updates from the status originator. G003 CreditPendingDocuments Credit to creditor's account is pending receipt of required documents. Instructed gpi Agent has requested the creditor to provide additional documentation.
Update will follow.
7.4.1.7.4 ForwardedAgent Presence: [0..1] Definition: Specifies the BIC of the entity to which the entity reporting the status has forwarded the payment transaction. Impacted by: C3 "AnyBIC"
09 February 2018 48
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsResponse
Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 7.4.1.7.5 Received Presence: [1..1] Definition: Indicates whether a payment has been received or not. Datatype: One of the following values must be used (see "YesNoIndicator" ): • Meaning When True: Yes • Meaning When False: No 7.4.1.8 CreditorAgent Presence: [0..1] Definition: Financial institution servicing an account for the creditor. Impacted by: C3 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 7.4.1.9 InitiationTime Presence: [1..1] Definition: Date and time at which the message enters the SWIFT gpi system. Datatype: "ISODateTime" 7.4.1.10CompletionTime Presence: [0..1] Definition: Time at which the instructed bank reports that the transaction has been completed. Date and time based on the creation date of the status confirmation containing a final status ACSC. Datatype: "ISODateTime" 7.4.1.11InstructedAmount Presence: [1..1] Definition: Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party. This amount has to be transported unchanged through the transaction chain. Impacted by: C2 "ActiveOrHistoricCurrency", C4 "CurrencyAmount" Datatype: "ActiveOrHistoricCurrencyAndAmount" Constraints • ActiveOrHistoricCurrency
09 February 2018 49
Connector for SWIFT gpi Tracker API Detailed Specification GetPaymentTransactionsResponse
The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. • CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot. 7.4.1.12LastUpdateTime Presence: [1..1] Definition: Last date and time at which the status of this transaction was updated. Datatype: "ISODateTime" 7.4.2 TotalNumber Presence: [1..1] Definition: Contains the total number of returned result entries. Datatype: "Number" 7.4.3 More Presence: [0..1] Definition: Contains a token to obtain the next set of responses. It indicates whether there are more results to retrieve, what timestamp to start from and how many more result entries are to be retrieved. Datatype: "Max350Text"
09 February 2018 50
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsRequest
8 GetChangedPaymentTransactionsRequest 8.1 API Functionality This API is a delta query to get all payment update information starting from a given date and time. This API allows synchronization of a local database with the Tracker database. All use cases applicable for the get and search of payment transactions apply also for this API. The use of the API to get the last changed payment transactions is driven by an architectural choice to feed a local database and to optimise the flow between the Tracker and the API caller. Outline The GetChangedPaymentTransactionsRequest API is composed of 3 BuildingBlocks: A. MyInstitution Specifies the institution which payments are requested. B. StartTime Contains the start date and time as from which the last changed payment transactions must be provided. C. More Contains a token to obtain the next set of responses. It indicates whether there are more results to retrieve, what timestamp to start from and how many more result entries are to be retrieved. 8.2 Structure Or Element/BuildingBlock Mult. Type Constr. No.
GetChangedPaymentTransactionsRequest [1..1] C2 MyInstitution [1..250] IdentifierSet C1
StartTime [0..1] DateTime
More [0..1] Text 8.3 Constraints C1 AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters.
C2 StartTimeOrMoreMustBePresent StartTime or More must be present. If both are present, then the StartTime must be the same as on the previous request from which the More token has been taken. Note This constraint is defined at the API level. 8.4 Building Blocks This chapter describes the BuildingBlocks of this API.
09 February 2018 51
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsRequest
8.4.1 MyInstitution Presence: [1..250] Definition: Specifies the institution which payments are requested. Impacted by: C1 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 8.4.2 StartTime Presence: [0..1] Definition: Contains the start date and time as from which the last changed payment transactions must be provided. Datatype: "ISODateTime" 8.4.3 More Presence: [0..1] Definition: Contains a token to obtain the next set of responses. It indicates whether there are more results to retrieve, what timestamp to start from and how many more result entries are to be retrieved. Datatype: "Max350Text"
09 February 2018 52
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
9 GetChangedPaymentTransactionsResponse 9.1 API Functionality This API is the response to a delta query to get all payment update information starting from a given date and time. This API allows synchronization of a local database with the Tracker database. All use cases applicable for the get and search of payment transactions apply also for this API. The use of the API to get the last changed payment transactions is driven by an architectural choice to feed a local database and to optimise the flow between the tracker and the API caller. Outline The GetChangedPaymentTransactionsResponse API is composed of 2 BuildingBlocks: A. PaymentTransaction Contains the payment transactions that meet the search criteria. B. More Contains a token to obtain the next set of responses. It indicates whether there are more results to retrieve, what timestamp to start from and how many more result entries are to be retrieved. 9.2 Structure Or Element/BuildingBlock Mult. Type Constr. No.
GetChangedPaymentTransactionsResponse [1..1] PaymentTransaction [0..*]
TransactionIdentification [1..1] Text
TransactionStatus [1..1] C1
Status [1..1] CodeSet
Reason [0..1] CodeSet
InitiationTime [1..1] DateTime
CompletionTime [0..1] DateTime
LastUpdateTime [1..1] DateTime
PaymentEvent [1..*]
NetworkReference [1..1] Text
MessageNameIdentification [1..1] Text
BusinessService [1..1] Text
Valid [1..1] Indicator
InvalidityReason [0..1] CodeSet
09 February 2018 53
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
InvalidityDescription [0..1] Text
SenderReference [0..1] Text
InstructionIdentification [1..1] Text
TransactionStatus [0..1] C1
Status [1..1] CodeSet
Reason [0..1] CodeSet
ForwardedAgent [0..1] IdentifierSet C4
FundsAvailable [0..1] DateTime
From [0..1] IdentifierSet C4
To [0..1] IdentifierSet C4
Originator [0..1] IdentifierSet C4
CreditorAgent [0..1] IdentifierSet C4
PreviousInstructingAgent [0..1] IdentifierSet C4
SenderAcknowledgementReceipt [1..1] DateTime
ReceivedDate [0..1] DateTime
InstructedAmount [0..1] Amount C3, C5
ConfirmedAmount [0..1] Amount C3, C5
InterbankSettlementAmount [0..1] Amount C2, C6
InterbankSettlementDate [0..1] Date
ChargeBearer [0..1] CodeSet
ChargeAmount [0..*] Amount C3, C5
ForeignExchangeDetails [0..1]
FromCurrency [1..1] CodeSet C3
ToCurrency [1..1] CodeSet C3
ExchangeRate [1..1] Rate
UpdatePayment [0..1] Text
DuplicateMessageReference [0..1] Text
CopiedBusinessService [0..1] Text
LastUpdateTime [1..1] DateTime
More [0..1] Text
09 February 2018 54
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
9.3 Constraints C1 ACSPReasonCode Reason must only be present if status contains ACSP. C2 ActiveCurrency The currency code must be a valid active currency code, not yet withdrawn on the day the message containing the currency is exchanged. Valid active currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and are not yet withdrawn on the day the message containing the currency is exchanged.
C3 ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. C4 AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. C5 CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note Note: The decimal separator is a dot. C6 CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot. 9.4 Building Blocks This chapter describes the BuildingBlocks of this API. 9.4.1 PaymentTransaction Presence: [0..*]
Definition: Contains the payment transactions that meet the search criteria. PaymentTransaction contains the following PaymentTransaction73 elements
Or Element Mult. Type Constr. No.
TransactionIdentification [1..1] Text
TransactionStatus [1..1] C1
Status [1..1] CodeSet
Reason [0..1] CodeSet
InitiationTime [1..1] DateTime
09 February 2018 55
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
CompletionTime [0..1] DateTime
LastUpdateTime [1..1] DateTime
PaymentEvent [1..*]
NetworkReference [1..1] Text
MessageNameIdentification [1..1] Text
BusinessService [1..1] Text
Valid [1..1] Indicator
InvalidityReason [0..1] CodeSet
InvalidityDescription [0..1] Text
SenderReference [0..1] Text
InstructionIdentification [1..1] Text
TransactionStatus [0..1] C1
Status [1..1] CodeSet
Reason [0..1] CodeSet
ForwardedAgent [0..1] IdentifierSet C4
FundsAvailable [0..1] DateTime
From [0..1] IdentifierSet C4
To [0..1] IdentifierSet C4
Originator [0..1] IdentifierSet C4
CreditorAgent [0..1] IdentifierSet C4
PreviousInstructingAgent [0..1] IdentifierSet C4
SenderA cknowledgementReceipt [1..1] DateTime
ReceivedDate [0..1] DateTime
InstructedAmount [0..1] Amount C3, C5
ConfirmedAmount [0..1] Amount C3, C5
InterbankSettlementAmount [0..1] Amount C2, C6
InterbankSettlementDate [0..1] Date
ChargeBearer [0..1] CodeSet
ChargeAmount [0..*] Amount C3, C5
ForeignExchangeDetails [0..1]
FromCurrency [1..1] CodeSet C3
09 February 2018 56
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
ToCurrency [1..1] CodeSet C3
ExchangeRate [1..1] Rate
UpdatePayment [0..1] Text
DuplicateMessageReference [0..1] Text
CopiedBusinessService [0..1] Text
LastUpdateTime [1..1] DateTime
9.4.1.1 TransactionIdentification Presence: [1..1] Definition: Contains the unique end to end transaction reference (UETR) of a payment. Datatype: "Max40Text" 9.4.1.2 TransactionStatus Presence: [1..1] Definition: Specifies the status of a transaction, in a coded form. Impacted by: C1 "ACSPReasonCode" TransactionStatus contains the following PaymentStatus3 elements
Or Element Mult. Type Constr. No.
Status [1..1] CodeSet
Reason [0..1] CodeSet
Constraints • ACSPReasonCode Reason must only be present if status contains ACSP. 9.4.1.2.1 Status Presence: [1..1] Definition: Reason for the status, as published in an external reason code list. Datatype: "TransactionIndividualStatus4Code"
Code Name Name Definition RJCT Rejected Payment initiation or individual transaction included in the payment initiation has been rejected. ACSP AcceptedSettlementInProcess All preceding checks such as technical validation and customer profile were successful and therefore the payment initiation has been accepted for execution.
09 February 2018 57
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
ACSC AcceptedSettlementCompleted Settlement on the debtor's account has been completed.
Usage: this can be used by the first agent to report to the debtor that the transaction has been completed. Warning: this status is provided for transaction status reasons, not for financial information. It can only be used after bilateral agreement.
9.4.1.2.2 Reason Presence: [0..1] Definition: Provides more details on the status in process. Datatype: "PaymentReason1Code"
Code Name Name Definition G002 CreditNotConfirmed Credit to creditor's account cannot be confirmed same day.
Update will follow. G004 CreditPendingFunds Credit to creditor's account is pending, status originator waiting for funds provided by or on behalf of the Instructing or Intermediary gpi Agent. Update will follow.
G000 GpiAgent Payment is pushed to next gpi Agent or gpi-compatible market infrastructure. G001 NonGpiAgent Payment is pushed to a non-gpi Agent or un-supported market infrastructure. No further updates from the status originator. G003 CreditPendingDocuments Credit to creditor's account is pending receipt of required documents. Instructed gpi Agent has requested the creditor to provide additional documentation.
Update will follow.
9.4.1.3 InitiationTime Presence: [1..1] Definition: Date and time at which the message enters the SWIFT gpi system. Datatype: "ISODateTime" 9.4.1.4 CompletionTime Presence: [0..1] Definition: Time at which the instructed bank reports that the transaction has been completed.
09 February 2018 58
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
Date and time based on the creation date of the status confirmation containing a final status ACSC. Datatype: "ISODateTime" 9.4.1.5 LastUpdateTime Presence: [1..1] Definition: Last date and time at which the status of this transaction was updated. Datatype: "ISODateTime" 9.4.1.6 PaymentEvent Presence: [1..*] Definition: This groups the information of an event, that is, of a payment message or status confirmation update. It is repeated as many times as there are events to be returned. PaymentEvent contains the following PaymentEvent1 elements
Or Element Mult. Type Constr. No.
NetworkReference [1..1] Text
MessageNameIdentification [1..1] Text
BusinessService [1..1] Text
Valid [1..1] Indicator
InvalidityReason [0..1] CodeSet
InvalidityDescription [0..1] Text
SenderReference [0..1] Text
InstructionIdentification [1..1] Text
TransactionStatus [0..1] C1
Status [1..1] CodeSet
Reason [0..1] CodeSet
ForwardedAgent [0..1] IdentifierSet C4
FundsAvailable [0..1] DateTime
From [0..1] IdentifierSet C4
To [0..1] IdentifierSet C4
Originator [0..1] IdentifierSet C4
CreditorAgent [0..1] IdentifierSet C4
PreviousInstructingAgent [0..1] IdentifierSet C4
SenderAcknowledgementReceipt [1..1] DateTime
ReceivedDate [0..1] DateTime
09 February 2018 59
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
InstructedAmount [0..1] Amount C3, C5
ConfirmedAmount [0..1] Amount C3, C5
InterbankSettlementAmount [0..1] Amount C2, C6
InterbankSettlementDate [0..1] Date
ChargeBearer [0..1] CodeSet
ChargeAmount [0..*] Amount C3, C5
ForeignExchangeDetails [0..1]
FromCurrency [1..1] CodeSet C3
ToCurrency [1..1] CodeSet C3
ExchangeRate [1..1] Rate
UpdatePayment [0..1] Text
DuplicateMessageReference [0..1] Text
CopiedBusinessService [0..1] Text
LastUpdateTime [1..1] DateTime 9.4.1.6.1 NetworkReference Presence: [1..1] Definition: Reference assigned by the network when sending the payment. Datatype: "Max350Text" 9.4.1.6.2 MessageNameIdentification Presence: [1..1] Definition: Specifies the original message name identifier to which the message refers. Datatype: "Max35Text" 9.4.1.6.3 BusinessService Presence: [1..1] Definition: Specifies the business service agreed between the two MessagingEndpoints under which rules this business message is exchanged. To be used when there is a choice of processing services or processing service levels. Example: 001 Datatype: "Max35Text" 9.4.1.6.4 Valid Presence: [1..1] Definition: Indicates if a payment is consistent (YES) or not (NO). Datatype: One of the following values must be used (see "YesNoIndicator" ): • Meaning When True: Yes • Meaning When False: No
09 February 2018 60
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
9.4.1.6.5 InvalidityReason Presence: [0..1] Definition: Contains the additional information in case the event is not a valid component of a payment transaction. Datatype: "InvalidPaymentsEvent1Code" 9.4.1.6.6 InvalidityDescription Presence: [0..1] Definition: Contains a textual description as to why the event is not a valid component of a payments transaction. Datatype: "Max350Text" 9.4.1.6.7 SenderReference Presence: [0..1] Definition: Identification assigned by the sender of the message. For MT format this is the MUR. Datatype: "Max30Text" 9.4.1.6.8 InstructionIdentification Presence: [1..1] Definition: Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction. Usage: The instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction. Datatype: "Max35Text" 9.4.1.6.9 TransactionStatus Presence: [0..1] Definition: Specifies the status of a transaction, in a coded form. Impacted by: C1 "ACSPReasonCode" TransactionStatus contains the following PaymentStatus3 elements
Or Element Mult. Type Constr. No.
Status [1..1] CodeSet
Reason [0..1] CodeSet Constraints • ACSPReasonCode Reason must only be present if Status contains ACSP. 9.4.1.6.9.1 Status Presence: [1..1] Definition: Reason for the status, as published in an external reason code list.
09 February 2018 61
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
Datatype: "TransactionIndividualStatus4Code"
Code Name Name Definition RJCT Rejected Payment initiation or individual transaction included in the payment initiation has been rejected. ACSP AcceptedSettlementInProcess All preceding checks such as technical validation and customer profile were successful and therefore the payment initiation has been accepted for execution.
ACSC AcceptedSettlementCompleted Settlement on the debtor's account has been completed.
Usage: this can be used by the first agent to report to the debtor that the transaction has been completed. Warning: this status is provided for transaction status reasons, not for financial information. It can only be used after bilateral agreement
9.4.1.6.9.2 Reason Presence: [0..1] Definition: Provides more details on the status in process. Datatype: "PaymentReason1Code"
Code Name Name Definition G002 CreditNotConfirmed Credit to creditor's account cannot be confirmed same day.
Update will follow. G004 CreditPendingFunds Credit to creditor's account is pending, status originator waiting for funds provided by or on behalf of the Instructing or Intermediary gpi Agent. Update will follow.
G000 GpiAgent Payment is pushed to next gpi Agent or gpi-compatible market infrastructure. G001 NonGpiAgent Payment is pushed to a non-gpi Agent or un-supported market infrastructure. No further updates from the status originator. G003 CreditPendingDocuments Credit to creditor's account is pending receipt of required documents. Instructed gpi Agent has requested the creditor to provide additional documentation.
Update will follow.
09 February 2018 62
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
9.4.1.6.10 ForwardedAgent Presence: [0..1] Definition: Specifies the BIC of the entity to which the entity reporting the status has forwarded the payment transaction. Impacted by: C4 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 9.4.1.6.11 FundsAvailable Presence: [0..1] Definition: Date and time at which the funds are available, as reported in the ACSC status update. Must only be used when TransactionStatus is "ACSC". Datatype: "ISODateTime" 9.4.1.6.12 From Presence: [0..1] Definition: The sending MessagingEndpoint that has created this business message for the receiving MessagingEndpoint that will process this business message. Note The sending MessagingEndpoint might be different from the sending address potentially contained in the transport header (as defined in the transport layer). Impacted by: C4 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 9.4.1.6.13 To Presence: [0..1] Definition: The MessagingEndpoint designated by the sending MessagingEndpoint to be the recipient who will ultimately process this business message. Note The receiving MessagingEndpoint might be different from the receiving address potentially contained in the transport header (as defined in the transport layer). Impacted by: C4 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC
09 February 2018 63
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 9.4.1.6.14 Originator Presence: [0..1] Definition: Party that issues the status. Impacted by: C4 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 9.4.1.6.15 CreditorAgent Presence: [0..1] Definition: Financial institution servicing an account for the creditor. Impacted by: C4 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters.
9.4.1.6.16 PreviousInstructingAgent Presence: [0..1] Definition: Agent immediately prior to the instructing agent. Impacted by: C4 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 9.4.1.6.17 SenderAcknowledgementReceipt Presence: [1..1] Definition: Date and time at which the sender acknowledged receipt of the message. Datatype: "ISODateTime" 9.4.1.6.18 ReceivedDate Presence: [0..1]
09 February 2018 64
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
Definition: Date and time at which the message was acknowledged by the receiver. Datatype: "ISODateTime" 9.4.1.6.19 InstructedAmount Presence: [0..1] Definition: Amount of money to be moved between the debtor (ordering customer) and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party. Usage: This amount has to be transported unchanged through the transaction chain. Impacted by: C3 "ActiveOrHistoricCurrency", C5 "CurrencyAmount" Datatype: "ActiveOrHistoricCurrencyAndAmount" Constraints • ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. • CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot. 9.4.1.6.20 ConfirmedAmount Presence: [0..1] Definition: The actual amount that has been paid to the ultimate beneficiary, after all charges etc. have been deducted. Impacted by: C3 "ActiveOrHistoricCurrency", C5 "CurrencyAmount" Datatype: "ActiveOrHistoricCurrencyAndAmount" Constraints • ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. • CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot. 9.4.1.6.21 InterbankSettlementAmount Presence: [0..1] Definition: Amount of money moved between the instructing agent and the instructed agent. Impacted by: C2 "ActiveCurrency", C6 "CurrencyAmount" Datatype: "ActiveCurrencyAndAmount" Constraints • ActiveCurrency
09 February 2018 65
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
The currency code must be a valid active currency code, not yet withdrawn on the day the message containing the currency is exchanged. Valid active currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and are not yet withdrawn on the day the message containing the currency is exchanged. • CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot. 9.4.1.6.22 InterbankSettlementDate Presence: [0..1] Definition: Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due. Datatype: "ISODate" 9.4.1.6.23 ChargeBearer Presence: [0..1] Definition: Specifies which party/parties will bear the charges associated with the processing of the payment transaction. Datatype: "ChargeBearerType3Code"
Code Name Name Definition SHAR Shared In a credit transfer context, means that transaction charges on the sender side are to be borne by the debtor, transaction charges on the receiver side are to be borne by the creditor. In a direct debit context, means that transaction charges on the sender side are to be borne by the creditor, transaction charges on the receiver side are to be borne by the debtor.
DEBT BorneByDebtor All transaction charges are to be borne by the debtor.
CRED BorneByCreditor All transaction charges are to be borne by the creditor. 9.4.1.6.24 ChargeAmount Presence: [0..*] Definition: Amount of money asked or paid for the charge. Impacted by: C3 "ActiveOrHistoricCurrency", C5 "CurrencyAmount" Datatype: "ActiveOrHistoricCurrencyAndAmount" Constraints • ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. • CurrencyAmount
09 February 2018 66
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot. 9.4.1.6.25 ForeignExchangeDetails Presence: [0..1] Definition: Specifies the exchange rate details between two currencies. ForeignExchangeDetails contains the following ForeignExchangeTerms32 elements
Or Element Mult. Type Constr. No.
FromCurrency [1..1] CodeSet C3
ToCurrency [1..1] CodeSet C3
ExchangeRate [1..1] Rate 9.4.1.6.25.1 FromCurrency Presence: [1..1] Definition: Currency for which a foreign exchange is required. Impacted by: C3 "ActiveOrHistoricCurrency" Datatype: "ActiveOrHistoricCurrencyCode" Constraints • ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. 9.4.1.6.25.2 ToCurrency Presence: [1..1] Definition: Currency resulting from a foreign exchange trade. Impacted by: C3 "ActiveOrHistoricCurrency" Datatype: "ActiveOrHistoricCurrencyCode" Constraints • ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. 9.4.1.6.25.3 ExchangeRate Presence: [1..1] Definition: The value of one currency expressed in relation to another currency. ExchangeRate expresses the ratio between FromCurrency and ToCurrency (ExchangeRate = FromCurrency/ ToCurrency). Datatype: "BaseOneRate"
09 February 2018 67
Connector for SWIFT gpi Tracker API Detailed Specification GetChangedPaymentTransactionsResponse
9.4.1.6.26 UpdatePayment Presence: [0..1] Definition: Implements the correlation between a payment message and a status update on it. Contains the network reference of the payment for which the status confirmation was applicable. Datatype: "Max35Text" 9.4.1.6.27 DuplicateMessageReference Presence: [0..1] Definition: Network reference of the payment that is the original recorded payment. Datatype: "Max50Text" 9.4.1.6.28 CopiedBusinessService Presence: [0..1] Definition: Specifies the copied business service of the market infrastructure. Datatype: "Max35Text"
9.4.1.6.29 LastUpdateTime Presence: [1..1] Definition: Last date and time at which the status of this payment event was updated. Datatype: "ISODateTime" 9.4.2 More Presence: [0..1] Definition: Contains a token to obtain the next set of responses. It indicates whether there are more results to retrieve, what timestamp to start from and how many more result entries are to be retrieved. Datatype: "Max350Text"
09 February 2018 68
Connector for SWIFT gpi Tracker API Detailed Specification GetInvalidEventsRequest
10 GetInvalidEventsRequest 10.1 API Functionality This API is a payment events query to get invalid events for payment transactions within a given time frame. An event is either a payment or a status confirmation. The API is typically used for support or audit purposes, where all invalid messages sent or received are retrievable by one API call. Outline The GetInvalidEventsRequest API is composed of 3 BuildingBlocks: A. MyInstitution Specifies the institution which payments are requested. B. FromDateTime Date and time at which the range starts. C. ToDateTime Date and time at which the range ends. 10.2 Structure Or Element/BuildingBlock Mult. Type Constr. No.
GetInvalidEventsRequest [1..1] MyInstitution [1..250] IdentifierSet C1
FromDateTime [1..1] DateTime
ToDateTime [1..1] DateTime 10.3 Constraints C1 AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 10.4 Building Blocks This chapter describes the BuildingBlocks of this API. 10.4.1 MyInstitution Presence: [1..250] Definition: Specifies the institution which payments are requested. Impacted by: C1 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters.
09 February 2018 69
Connector for SWIFT gpi Tracker API Detailed Specification GetInvalidEventsRequest
10.4.2 FromDateTime Presence: [1..1] Definition: Date and time at which the range starts. Datatype: "ISODateTime" 10.4.3 ToDateTime Presence: [1..1] Definition: Date and time at which the range ends. Datatype: "ISODateTime"
09 February 2018 70
Connector for SWIFT gpi Tracker API Detailed Specification GetInvalidEventsResponse
11 GetInvalidEventsResponse 11.1 API Functionality This API is a payment events response to a query to get invalid events for payment transactions within a given time frame. An event is either a payment or a status confirmation. The API is typically used for support or audit purposes, where all invalid messages sent or received are retrievable by one API call. Outline The GetInvalidEventsResponse API is composed of 1 BuildingBlocks: A. Event Each instance contains one payment event that matches the search criteria. 11.2 Structure Or Element/BuildingBlock Mult. Type Constr. No.
GetInvalidEventsResponse [1..1] Event [1..*]
TransactionIdentification [1..1] Text
BusinessService [1..1] Text
Participant [1..1] Indicator
NetworkReference [1..1] Text
MessageNameIdentification [1..1] Text
InstructionIdentification [1..1] Text
From [1..1] IdentifierSet C1
To [0..1] IdentifierSet C1
InvalidityReason [1..1] CodeSet 11.3 Constraints C1 AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 11.4 Building Blocks This chapter describes the BuildingBlocks of this API.
09 February 2018 71
Connector for SWIFT gpi Tracker API Detailed Specification GetInvalidEventsResponse
11.4.1 Event Presence: [1..*] Definition: Each instance contains one payment event that matches the search criteria. Event contains the following PaymentEvent3 elements
Or Element Mult. Type Constr. No.
TransactionIdentification [1..1] Text
BusinessService [1..1] Text
Participant [1..1] Indicator
NetworkReference [1..1] Text
MessageNameIdentification [1..1] Text
InstructionIdentification [1..1] Text
From [1..1] IdentifierSet C1
To [0..1] IdentifierSet C1
InvalidityReason [1..1] CodeSet 11.4.1.1 TransactionIdentification Presence: [1..1] Definition: Contains the unique end to end transaction reference (UETR) of a payment. Datatype: "Max40Text" 11.4.1.2 BusinessService Presence: [1..1] Definition: Specifies the business service agreed between the two MessagingEndpoints under which rules this business message is exchanged. To be used when there is a choice of processing services or processing service levels. Example: 001 Datatype: "Max35Text" 11.4.1.3 Participant Presence: [1..1] Definition: Indicates whether the requestor institution participates in the payment transaction identified by the Transaction Identification (UETR). Datatype: One of the following values must be used (see "YesNoIndicator" 6): • Meaning When True: Yes • Meaning When False: No 11.4.1.4 NetworkReference Presence: [1..1] Definition: Reference assigned by the network when sending the payment.
09 February 2018 72
Connector for SWIFT gpi Tracker API Detailed Specification GetInvalidEventsResponse
Datatype: "Max350Text" 11.4.1.5 MessageNameIdentification Presence: [1..1] Definition: Specifies the original message name identifier to which the message refers. Datatype: "Max35Text" 11.4.1.6 InstructionIdentification Presence: [1..1] Definition: Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction. Usage: The instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction. Datatype: "Max35Text" 11.4.1.7 From Presence: [1..1] Definition: The sending MessagingEndpoint that has created this business message for the receiving MessagingEndpoint that will process this business message. Note The sending MessagingEndpoint might be different from the sending address potentially contained in the transport header (as defined in the transport layer). Impacted by: C1 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 11.4.1.8 To Presence: [0..1] Definition: The MessagingEndpoint designated by the sending MessagingEndpoint to be the recipient who will ultimately process this business message. Note The receiving MessagingEndpoint might be different from the receiving address potentially contained in the transport header (as defined in the transport layer). Impacted by: C1 "AnyBIC" Datatype: "AnyBICIdentifier" Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 11.4.1.9 InvalidityReason
09 February 2018 73
Connector for SWIFT gpi Tracker API Detailed Specification GetInvalidEventsResponse
Presence: [1..1] Definition: Specifies the reason why the event is invalid. Datatype: "InvalidEventReason1Code"
09 February 2018 74
Connector for SWIFT gpi Tracker API Detailed Specification Types
12 Types 12.1 Date Time 12.1.1 DateTimePeriodDetails Definition: Time span defined by a start date and time, and an end date and time.
Or Element Mult. Type Constr. No.
FromDateTime [1..1] DateTime
ToDateTime [1..1] DateTime 12.1.1.1 FromDateTime Presence: [1..1] Definition: Date and time at which the range starts. Datatype: "ISODateTime" 12.1.1.2 ToDateTime Presence: [1..1] Definition: Date and time at which the range ends. Datatype: "ISODateTime" 12.2 Datatypes 12.2.1 Amount 12.2.1.1 ActiveCurrencyAndAmount Definition: A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217. Type: Amount This data type contains the following attribute:
Name Datatype
Currency "ActiveCurrencyCode" on page 82
Format minInclusive 0 totalDigits 18 fractionDigits 5
Constraints • ActiveCurrency The currency code must be a valid active currency code, not yet withdrawn on the day the message containing the currency is exchanged. Valid active currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and are not yet withdrawn on the day the message containing the currency is exchanged.
09 February 2018 75
Connector for SWIFT gpi Tracker API Detailed Specification Types
• CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot. 12.2.1.2 ActiveOrHistoricCurrencyAndAmount Definition: A number of monetary units specified in an active or a historic currency where the unit of currency is explicit and compliant with ISO 4217. Type: Amount This data type contains the following attribute:
Name Datatype
Currency "ActiveOrHistoricCurrencyCode" on page 82
Format minInclusive 0 totalDigits 18 fractionDigits 5
Constraints
• ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. • CurrencyAmount The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note The decimal separator is a dot. 12.2.1.3 ImpliedCurrencyAndAmount Definition: Number of monetary units specified in a currency where the unit of currency is implied by the context and compliant with ISO 4217. The decimal separator is a dot. Note A zero amount is considered a positive amount. Type: Amount
Format minInclusive 0 totalDigits 18 fractionDigits 5
12.2.2 CodeSet 12.2.2.1 ActiveCurrencyCode Definition: A code allocated to a currency by a Maintenance Agency under an international identification scheme as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds". Type: CodeSet Format pattern [A-Z]{3,3}
09 February 2018 76
Connector for SWIFT gpi Tracker API Detailed Specification Types
Constraints • ActiveCurrency The currency code must be a valid active currency code, not yet withdrawn on the day the message containing the currency is exchanged. Valid active currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and are not yet withdrawn on the day the message containing the currency is exchanged. 12.2.2.2 ActiveOrHistoricCurrencyCode Definition: A code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds". Type: CodeSet Format pattern [A-Z]{3,3} Constraints • ActiveOrHistoricCurrency The currency code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the currency is exchanged. 12.2.2.3 ChargeBearerType3Code Definition: Specifies which party/parties will bear the charges associated with the processing of the payment transaction. Type: CodeSet
Code Name Name Definition
SHAR Shared In a credit transfer context, means that transaction charges on the sender side are to be borne by the debtor, transaction charges on the receiver side are to be borne by the creditor. In a direct debit context, means that transaction charges on the sender side are to be borne by the creditor, transaction charges on the receiver side are to be borne by the debtor.
DEBT BorneByDebtor All transaction charges are to be borne by the debtor.
CRED BorneByCreditor All transaction charges are to be borne by the creditor.
12.2.2.4 CurrencyCode Definition: Code allocated to a currency, by a maintenance agency, under an international identification scheme as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds". Valid currency codes are registered with the ISO 4217 Maintenance Agency, and consist of three contiguous letters. Type: CodeSet Format pattern [A-Z]{3,3}
09 February 2018 77
Connector for SWIFT gpi Tracker API Detailed Specification Types
Constraints • ValidationByTable 12.2.2.5 InvalidEventReason1Code Definition: Codeset containing the reasons why an event (a message) was invalid in the context of the transaction. Type: CodeSet 12.2.2.6 InvalidPaymentsEvent1Code Definition: Specifies the reason why a payments event is an invalid component of a payments transaction. Type: CodeSet 12.2.2.7 Location1Code Definition: Specifies the location of the search Type: CodeSet
Code Name Name Definition
OTHR AtAnotherInstitution At another institution
MYIN AtMyInstitution At my institution.
12.2.2.8 PaymentReason1Code Definition: Provides the reason for a specific Payment Status. Type: CodeSet
Code Name Name Definition G002 CreditNotConfirmed Credit to creditor's account cannot be confirmed same day.
Update will follow. G004 CreditPendingFunds Credit to creditor's account is pending, status originator waiting for funds provided by or on behalf of the Instructing or Intermediary gpi Agent. Update will follow.
G000 GpiAgent Payment is pushed to next gpi Agent or gpi-compatible market infrastructure. G001 NonGpiAgent Payment is pushed to a non-gpi Agent or un-supported market infrastructure. No further updates from the status originator. G003 CreditPendingDocuments Credit to creditor's account is pending receipt of required documents. Instructed gpi Agent has requested the creditor to provide additional documentation.
Update will follow. 12.2.2.9 PaymentsPartyType1Code Definition: CodeSet identifying parties involved in a payments transaction. Type: CodeSet 12.2.2.10PaymentTransactionState1Code Definition: Contains the different states which a payment transaction can be in.
09 February 2018 78
Connector for SWIFT gpi Tracker API Detailed Specification Types
Type: CodeSet
Code Name Name Definition CRED Credited The transaction is credited.
RCCA ReceivedAtCreditorAgent The transaction is received at the creditor's agent. RCMY ReceivedByMyInstitution The transaction is received by my institution. STMY SentByMyInstitution The transaction is sent by my institution.
STDA SentByDebtorAgent The transaction is sent by the debtor's agent.
12.2.2.11TransactionIndividualStatus4Code Definition: Specifies the status of a single payment transaction. Type: CodeSet
Code Name Name Definition RJCT Rejected Payment initiation or individual transaction included in the payment initiation has been rejected. ACSP AcceptedSettlementInProcess All preceding checks such as technical validation and customer profile were successful and therefore the payment initiation has been accepted for execution.
ACSC AcceptedSettlementCompleted Settlement on the debtor's account has been completed.
Usage: this can be used by the first agent to report to the debtor that the transaction has been completed. Warning: this status is provided for transaction status reasons, not for financial information. It can only be used after bilateral agreement
12.2.2.12 TypeOfAmount8Code
Definition: Specifies the type of amount. Type: CodeSet
Code Name Name Definition CONF ConfirmedAmount The actual amount that has been paid to the ultimate beneficiary, after all charges etc. have been deducted. INST InstructedAmount Amount of money to be moved between the debtor (ordering customer) and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.
Usage: This amount has to be transported unchanged through the transaction chain.
09 February 2018 79
Connector for SWIFT gpi Tracker API Detailed Specification Types
12.2.3 Date 12.2.3.1 ISODate Definition: A particular point in the progression of time in a calendar year expressed in the YYYY-MM- DD format. This representation is defined in "XML Schema Part 2: Datatypes Second Edition - W3C Recommendation 28 October 2004" which is aligned with ISO 8601. Type: Date 12.2.4 DateTime 12.2.4.1 ISODateTime Definition: A particular point in the progression of time defined by a mandatory date and a mandatory time component, expressed in either UTC time format (YYYY-MM- DDThh:mm:ss.sssZ), local time with UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/- hh:mm), or local time format (YYYY-MM- DDThh:mm:ss.sss). These representations are defined in "XML Schema Part 2: Datatypes Second Edition - W3C Recommendation 28 October 2004" which is aligned with ISO 8601. Note on the time format: 1) beginning / end of calendar day 00:00:00 = the beginning of a calendar day 24:00:00 = the end of a calendar day 2) fractions of second in time format Decimal fractions of seconds may be included. In this case, the involved parties shall agree on the maximum number of digits that are allowed. Type: DateTime 12.2.5 IdentifierSet 12.2.5.1 AnyBICIdentifier Definition: Code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority, as described in ISO 9362 "Banking - Banking telecommunication messages - Business identifier code (BIC)". Type: IdentifierSet Identification scheme: SWIFT; AnyBICIdentifier Format pattern [A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1} Constraints • AnyBIC Only a valid business identifier code is allowed. Business identifier codes for financial or non- financial institutions are registered by the ISO 9362 Registration Authority in the BIC Directory, and consists of eight (8) or eleven (11) contiguous characters. 12.2.6 Indicator 12.2.6.1 YesNoIndicator Definition: Indicates a "Yes" or "No" type of answer for an element. Type: Indicator Meaning When True: Yes Meaning When False: No
09 February 2018 80
Connector for SWIFT gpi Tracker API Detailed Specification Types
12.2.7 Quantity 12.2.7.1 Number Definition: Number of objects represented as an integer. Type: Quantity
Format totalDigits 18 fractionDigits 0
12.2.8 Rate 12.2.8.1 BaseOneRate Definition: Rate expressed as a decimal, for example, 0.7 is 7/10 and 70%. Type: Rate
Format totalDigits 11
fractionDigits 10 baseValue 1.0
12.2.9 Text 12.2.9.1 Max1850Text Definition: Specifies a character string with a maximum length of 1850 characters. Type: Text
Format minLength 1 maxLength 1850
12.2.9.2 Max30Text Definition: Specifies a character string with a maximum length of 30 characters. Type: Text Format
maxLength 30 12.2.9.3 Max350Text Definition: Specifies a character string with a maximum length of 350 characters.
Type: Text
Format
minLength 1 maxLength 350
12.2.9.4 Max35Text Definition: Specifies a character string with a maximum length of 35 characters.
09 February 2018 81
Connector for SWIFT gpi Tracker API Detailed Specification Types
Type: Text
Format minLength 1 maxLength 35
12.2.9.5 Max40Text Definition: Specifies a character string with a maximum length of 40 characters. Type: Text
Format minLength 1 maxLength 40
12.2.9.6 Max50Text Definition: Specifies a character string with a maximum length of 50 characters. Type: Text
Format minLength 1 maxLength 50
09 February 2018 82
Connector for SWIFT gpi Tracker API Detailed Specification JSON Representation
Appendix A JSON Representation A.1 JSON – Snake Case This appendix depicts how the JSON structures of an API request and an API response shall be constructed in accordance with the detailed API specifications defined in this document. The "GetPaymentTransactions" API is used as an example to indicate so. For all APIs, the "Request" building block of the API specification corresponds to the JSON structure of the API request. For "GetPaymentTransactions" API, the JSON structure of the API request will look as follows (newline-delimited JSON is foreseen):
{ “my_institution”: “my_institution_value”, “time_window”: { “from_date_time”: “from_date_time_value”, “to_date_time”: “to_date_time_value” }, “agent”: [ { “any_bic”: “any_bic_value”, “role”: “role_value” }, … ], “location”: “location_value”, “instruction_identification”: “instruction_identification_value”, “transaction_status”: [ { “status”: “status_value”, “reason”: “reason_value” }, … ], “amount”: { “type”: “type_value”, “currency”: “currency_value”, “from_amount”: “from_amount_value”, “to_amount”: “to_amount_value” }, “event”: “event_value”, “maximum_number”: “maximum_number_value”,
09 February 2018 83
Connector for SWIFT gpi Tracker API Detailed Specification JSON Representation
“more”: “more_value” } Similarly, for all APIs, the "Response" building block of the API specification corresponds to the JSON structure of the API response. For "GetPaymentTransactions" API, the JSON structure of the API response will look as follows:
HTTP/1.1 200 OK { “payment_transaction”: [ { “transaction_identification”: “transaction_identification_value”, “my_institution”: “my_institution_value”, “role”: “role_value”, “event_time”: “event_time_value”, “transaction_status”: { “status”: “status_value”, “reason”: “reason_value” }, “previous_instructing_agent”: “previous_instructing_agent_value”, “agents”: [ { “from”: “from_value”, “to”: “to_value”, “transaction_status”: { “status”: “status_value”, “reason”: “reason_value” }, “forwarded_agent”: “forwarded_agent_value”, “received”: “received_value” }, … ], “creditor_agent”: “creditor_agent_value”, “initiation_time”: “initiation_time_value”, “completion_time”: “completion_time_value”, “instructed_amount”: { “$”:“instructed_amount_value”, “@currency”: “currency_value” },
09 February 2018 84
Connector for SWIFT gpi Tracker API Detailed Specification JSON Representation
“last_update_time”: “last_update_time_value” }, … ], “total_number”: “total_number_value”, “more”: “more_value” } A.2 JSON – Amount Representation: "instructed_amount": : { "$": 1.10, "@currency": "EUR" },
The "$" is used for the value of the amount, and the "@currency" is the currency code. The example shows an amount of 1.10 EUR.
09 February 2018 85
Connector for SWIFT gpi Tracker API Detailed Specification Legal Notices
Legal Notices Copyright SWIFT © 2018. All rights reserved.
Disclaimer SWIFT supplies this publication for information purposes only. The information in this publication may change from time to time. You must always refer to the latest available version.
Translations The English version of SWIFT documentation is the only official and binding version.
Trademarks SWIFT is the trade name of S.W.I.F.T. SCRL. The following are registered trademarks of SWIFT: the SWIFT logo, SWIFT, SWIFTNet, Sibos, 3SKey, Innotribe, the Standards Forum logo, MyStandards, and SWIFT Institute. Other product, service, or company names in this publication are trade names, trademarks, or registered trademarks of their respective owners.
09 February 2018 86