status field, and carries a response_code and response_message that tell you the outcome in ISO 8583 terms.
Lifecycle
Clients must tolerate status values added later.
Sub-states
Transfers explain their status further instatus_reason:
New
status_reason values can be added; don’t fail on one you don’t recognise.
Following a payment to the end
POST /v1/transfers returns 202 with status: processing for a payout, or 201 with status: pending_approval when it needs an approval. To learn the outcome, either:
- wait for the
payment.completedorpayment.failedwebhook, or - poll
GET /v1/transfers/{transfer_id}untilstatusis final.
Response codes on money movements
response_message is the standard meaning of the code, not text for your customers. For customer-facing wording, use status_reason or error.message.
Successful responses that don’t move money carry no response_code.
Response code meanings
New codes can be added; treat an unknown code by itsstatus.