curl --request POST \
--url https://api.global.direct.reap.global/2026-07-13/treasury/bank-transfer-confirmations \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"product": "CARD",
"amount": {
"amount": "<string>"
},
"referenceId": "<string>"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({product: 'CARD', amount: {amount: '<string>'}, referenceId: '<string>'})
};
fetch('https://api.global.direct.reap.global/2026-07-13/treasury/bank-transfer-confirmations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.global.direct.reap.global/2026-07-13/treasury/bank-transfer-confirmations"
payload = {
"product": "CARD",
"amount": { "amount": "<string>" },
"referenceId": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "ttx_1",
"product": "CARD",
"status": "PENDING",
"amount": {
"amount": "1000.00",
"currency": "HKD"
},
"referenceId": "IBM-ABCDEF",
"createdAt": "2026-10-01T03:00:00.000Z"
}Confirm a bank transfer
Required API-key scope: treasury_funding:write.
Tells Reap a bank transfer is on its way: send the referenceId and amount from your bank instructions after transferring. The transfer must come from a bank account in your business’s registered name. Confirming does not credit funds; the deposit appears in GET /treasury/transactions once the funds land in Reap’s bank account and are reconciled. Confirmations are recorded under the person who created this API key. See Funding methods.
curl --request POST \
--url https://api.global.direct.reap.global/2026-07-13/treasury/bank-transfer-confirmations \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"product": "CARD",
"amount": {
"amount": "<string>"
},
"referenceId": "<string>"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({product: 'CARD', amount: {amount: '<string>'}, referenceId: '<string>'})
};
fetch('https://api.global.direct.reap.global/2026-07-13/treasury/bank-transfer-confirmations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.global.direct.reap.global/2026-07-13/treasury/bank-transfer-confirmations"
payload = {
"product": "CARD",
"amount": { "amount": "<string>" },
"referenceId": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "ttx_1",
"product": "CARD",
"status": "PENDING",
"amount": {
"amount": "1000.00",
"currency": "HKD"
},
"referenceId": "IBM-ABCDEF",
"createdAt": "2026-10-01T03:00:00.000Z"
}Authorizations
Enter your API key
Headers
Choose one key per transfer. Retrying the same body and key replays a successfully stored response for 24 hours; a different body returns IDEMPOTENCY_KEY_REUSED.
Body
Bank transfer confirmations are available for CARD only.
"CARD"The bank rail from your funding instructions: FPS (HKD) or CHATS (USD).
FPS, CHATS Show child attributes
Show child attributes
The IBM-XXXXXX Reference ID from your bank instructions.
^IBM-[A-F0-9]{6}$Response
The confirmation's ID.
"CARD"The confirmation status, for example PENDING.
The confirmed transfer amount.
Show child attributes
Show child attributes
The Reference ID this confirmation applies to.
When the confirmation was recorded, in UTC.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$