Statuses
A 2xx means the request was accepted, not that money moved. Read status.
Each method page lists its own statuses and transitions: Card, Apple Pay, Google Pay, BLIK, Refunds, Card payout. This page holds what is common to all of them.
Status sets
| Object | Statuses | Final |
|---|---|---|
payin |
created, processing, requires_action, authorized, completed, failed, refunded |
completed, failed, refunded |
refund |
created, processing, completed, failed |
completed, failed |
payout |
created, processing, completed, failed |
completed, failed |
| Status | Meaning |
|---|---|
created |
Recorded, processing not started |
processing |
Checks, the provider, or an action in progress |
requires_action |
The payer has a step to take. Read next_action — see Payer actions |
authorized |
Card only: the amount is on hold. Call capture or void |
completed |
Money moved |
refunded |
Payin only: charged, then refunded in part or in full. Read refunded_amount |
failed |
Money did not move. Read status_details.code: a decline, a voided hold, a payer who rejected |
A final status never changes, with one exception: a completed refund moves a payin from completed
to refunded. The refund itself is a new transaction — see Refunds.
Transitions by method
| Method | Path to a final status |
|---|---|
| Card | created → requires_action (payment page) → processing → completed; hold: processing → authorized → capture or void → processing → completed or failed |
| Apple Pay | created → processing → completed |
| Google Pay | created → processing → completed; 3DS: processing → requires_action → processing |
| BLIK | created → processing → requires_action → completed |
| Hosted payment form | The payin created from the form is a card payin |
| Refund | created → processing → completed |
| Card payout | created → processing → completed |
A card, Apple Pay or Google Pay payin moves from completed to refunded when a refund of it completes.
created, processing and requires_action can end in failed. authorized ends only through
capture or void. The exact set is x-status-transitions on each create endpoint in the
OpenAPI document; final values are x-terminal-values on PayinStatus,
RefundStatus and PayoutStatus.
Rules
R8: only a final status is an outcome. R13: an unknown status is not final — keep waiting for webhooks. A timeout of your own while waiting resolves nothing: the transaction is still in progress, do not create a new one (R6).
Next: Payer actions