Making overseas payments with Faster Payments (pacs.008)
This tutorial describes how you can make Faster Payments Originated Overseas (POO) using the Payments Hub API (Pacs.008 message) and accompanies the information in the Customer Credit Transfer tutorial here
For this tutorial, consider a scenario where a customer wants to make an overseas Faster Payments (FP) payment - send money from their bank account somewhere in the world to a UK bank account, as quickly as possible.
Sandbox
These instructions apply to the Sandbox environment only
Request body
The request must include a JSON payload object in the request body. The JSON payload is a pacs.008 ISO message with the fitoFICstmrCdtTrf root element, and it contains the request details for submitting a payment.
The following table only provides information about some especially important fields. For details on all the required and optional message fields, see Message field definition for pacs.008.
Table: Submit the payment - Relevant request body elements
Message field | Description | Data type | Required/Optional |
|---|---|---|---|
grpHdr.msgId | Message ID, which must uniquely identify each request you send. This ID is used internally for idempotency of the API. The value must consist of letters and digits only. | String | Required |
grpHdr.creDtTm | Date and time of the payment request | String | Required |
grpHdr.nbOfTxs | Number of transactions within the message. Value: 1 | Number | Required |
grpHdr.ttlIntrBkSttlmAmt | Data structure containing the payment currency and the amount for the total interbank settlement. The currency must be GBPand the amount must be a positive value. If these fields are used, the amount must be equal to the sum of all the transactions in the message. | Object | Optional |
grpHdr.sttlmInf.sttlmMtd | Settlement method. Value: CLRG | String | Required |
cdtTrfTxInf.pmtId.endToEndId | End-to-end ID, which can be used to track the transaction between payment systems | String | Required |
cdtTrfTxInf.pmtId.txId | Transaction ID, which must uniquely identify each transaction within the message | String | Required |
cdtTrfTxInf.pmtTpInf.svcLvl.prtry | Payment scheme type. Value: FP | String | Optional |
cdtTrfTxInf.pmtTpInf.lclInstrm.prtry | Faster Payments Scheme (FPS) processing code | String | Required |
cdtTrfTxInf.pmtTpInf.ctgyPurp.prtry | Payment channel | String | Optional |
cdtTrfTxInf.intrBkSttlmAmt | Data structure containing the payment currency and the amount to be transferred. The currency must be GBP and the amount must be a positive value. | Object | Required |
cdtTrfTxInf.chrgBr | Charge bearer type. The possible values are:
| String | Required |
cdtTrfTxInf ► .intrmyAgt1 ► . intrmyAgt1Acct | Data structures containing the details for the intermediary agent and the agent's account. These structures are required if you use multiple agencies and agency accounts for debiting. | Object | Optional |
cdtTrfTxInf ► .dbtr ► .dbtrAcct ► .dbtrAgt | Data structures containing the details for the debtor, the debtor’s account, and the debtor agent | Object | Required |
cdtTrfTxInf ► .cdtrAgt ► .cdtr ► .cdtrAcct | Data structures containing the details for the creditor agent, the creditor, and the creditor’s account | Object | Required |
cdtTrfTxInf.rgltryRptg | List of regulatory reporting data | Array | Optional |
cdtTrfTxInf.rmtInf | Data structure containing remittance details | Object | Optional |
Example request body:
{
"fitoFICstmrCdtTrf": {
"grpHdr": {
"msgId": "MsgId-4334558394999123",
"creDtTm": "2022-02-03T11:08:19.664+01:00",
"nbOfTxs": "1",
"sttlmInf": {
"sttlmMtd": "CLRG"
}
},
"cdtTrfTxInf": [
{
"pmtId": {
"endToEndId": "e2eId-1587641040",
"txId": "111112"
},
"pmtTpInf": {
"svcLvl": [
{
"prtry": "FP"
}
],
"lclInstrm": {
"prtry": "TRF"
}
},
"intrBkSttlmAmt": {
"value": 10.04,
"ccy": "GBP"
},
"xchgRate": 0.10,
"chrgBr": "SHAR",
"dbtr": {
"nm": "Debtor",
"pstlAdr": {
"twnNm": "amsterdam",
"ctry": "NL",
"adrLine": [
"Somewhere in Netherlands"
]
}
},
"dbtrAcct": {
"id": {
"othr": {
"id": "12345678"
}
}
},
"dbtrAgt": {
"finInstnId": {
"bicfi": "XXXXXXXXXX",
"pstlAdr": {
"twnNm": "amsterdam",
"ctry": "NL",
"adrLine": [
"Somewhere in Netherlands"
]
}
}
},
"cdtrAgt": {
"finInstnId": {
"bicfi": "XXXXXXXX",
"clrSysMmbId": {
"mmbId": "090401"
},
"pstlAdr": {
"twnNm": "miltonKeynes",
"ctry": "GB",
"adrLine": [
"Somewhere in MK"
]
}
}
},
"cdtr": {
"nm": "Creditor",
"pstlAdr": {
"twnNm": "miltonKeynes",
"ctry": "GB",
"adrLine": [
"Somewhere in MK"
]
}
},
"cdtrAcct": {
"id": {
"iban": "GB91BARC09023134945865"
}
},
"rmtInf": {
"strd": [
{
"cdtrRefInf": {
"ref": "validref123"
}
}
]
}
}
]
}
}