There is no payment network for that bank/method right now. Retry later
upstream_error
502
A failure of the payment network or the issuer. Retry with the sameIdempotency-Key
rate_limited
429
Slow down. Respect Retry-After
internal_error
500
Our failure. Retryable; send the request_id if it persists
An error that does not fit the codes above arrives with a generic code per
family: not_found (404), conflict (409), unprocessable (422) or
invalid_request (400). Treat them like the rest of their family.
Payment network rejection reasons are noterror.code
The beneficiary’s mobile number is missing for pago móvil. It is optional for bank transfer
beneficiary_missing_account
The account number for bank transfer is missing
beneficiary_mismatch
Name or national ID do not match the holder of that account or phone
invalid_destination_account
The destination account does not exist or is malformed
sender_required
There was no sender through any of the three paths
sender_phone_unsupported
No available payment network accepted the sender’s international (E.164) phone number
amount_below_minimum
Below the payment network’s floor
amount_above_limit
Above the payment network’s ceiling
amount_not_positive
Amount ≤ 0
amount_precision_loss
The amount cannot be represented without losing cents
bank_unreachable
That payment network does not cover the destination bank
instrument_unsupported
That payment network does not offer that method
payout_insufficient_balance
No balance in the paying account for the payment plus the payment network’s fee
payout_balance_unavailable
The paying account’s balance could not be read: nothing was sent
payout_rejected
Generic payment network rejection
payout_timeout
We do not know whether it paid → the payment stays unknown, notfailed
no_route
No payment network available for that combination
The same value is stored in the payment’s status_reason and in the
transition’s reason inside events[]. What to do with each one: when
something fails.