Transaction object
Returned by all three endpoints and asdata in every webhook.
| Field | Type | Description |
|---|---|---|
id | string (UUID) | Transaction id |
client_reference_id | string or null | As sent |
transaction_type | string | POOL_SELL |
status | string | Client status, see Statuses |
reason_code | string or null | Why the transaction is in APPROVAL_REQUIRED or FAILED, see Asynchronous reasons. null otherwise. |
reason_desc | string or null | Human-readable text for reason_code. Informational. Do not parse. |
from_currency | string | Upper-cased symbol |
to_currency | string | Upper-cased symbol |
from_amount | string | Amount debited, in from_currency |
to_amount | string or null | Amount paid out, in to_currency. null until COMPLETED. |
exchange_rate | string or null | to_amount / from_amount, up to 8 decimal places, fees included. null while to_amount is null. |
payment_method | string | As sent |
purpose_code | string or null | As sent |
quote_id | string (UUID) or null | Quote the payout settled at. Set on COMPLETED when available. |
bank_transaction_id | string or null | Bank reference (UTR) of the payout. Set on COMPLETED when available. In sandbox the value is a placeholder, not a real UTR. |
sender_id | string (UUID) or null | Sender. Set once the sender is resolved. Reusable as sender.id. |
beneficiary_id | string (UUID) or null | Beneficiary. Set once the beneficiary is resolved. Reusable as beneficiary.id. |
beneficiary_instrument_id | string (UUID) or null | Bank account. Set once the account is registered. Reusable as beneficiary_instrument.id. |
beneficiary_instrument_type | string | BANK_ACCOUNT |
beneficiary_relationship | string or null | As sent, trimmed. SELF when defaulted. |
created_at | integer | Epoch ms |
updated_at | integer | Epoch ms. Changes on every status change. |
sender_id, beneficiary_id and beneficiary_instrument_id can be set while status still shows an earlier value.Statuses
| Status | Terminal | Webhook | Meaning |
|---|---|---|---|
CREATED | No | No | Accepted. Sender being resolved and screened. |
SENDER_KYC_VERIFIED | No | Yes | Sender KYC approved. Beneficiary being resolved and screened. |
BENEFICIARY_KYC_VERIFIED | No | Yes | Beneficiary KYC approved. Bank account being verified. |
BENEFICIARY_INSTRUMENT_VERIFIED | No | Yes | Bank account verified. Payout in progress. |
APPROVAL_REQUIRED | No | No | Under compliance review. reason_code is SENDER_KYC_PENDING or BENEFICIARY_KYC_PENDING. Poll GET to observe changes. |
COMPLETED | Yes | Yes | Paid out. to_amount and exchange_rate are set. quote_id and bank_transaction_id are set when available. |
FAILED | Yes | Yes | Not paid out. reason_code says why. |
Transitions
| From | To |
|---|---|
CREATED | SENDER_KYC_VERIFIED, APPROVAL_REQUIRED, FAILED |
SENDER_KYC_VERIFIED | BENEFICIARY_KYC_VERIFIED, APPROVAL_REQUIRED, FAILED |
BENEFICIARY_KYC_VERIFIED | BENEFICIARY_INSTRUMENT_VERIFIED, FAILED |
BENEFICIARY_INSTRUMENT_VERIFIED | COMPLETED, FAILED |