Payments
Status flow
The complete lifecycle of a payment on Onzo — the canonical state machine.
Every payment moves through the same states, in order. There are no undocumented states.
initiated ──▶ screening ──┬──▶ cleared ──▶ settling ──▶ settled
│
├──▶ held ──▶ (review) ──▶ cleared | declined
│
└──▶ declined
settled ──▶ returned (exceptional)
| Status | Meaning | Terminal |
|---|---|---|
initiated |
Payment accepted and validated (ISO 20022 structure complete) | No |
screening |
Sirius Core is evaluating the payment | No |
cleared |
Screening passed — payment proceeds to settlement | No |
held |
Flagged for review — funds have NOT moved. See Held for review | No |
declined |
Screening declined the payment — funds never moved | Yes |
settling |
Value in motion on the rail | No |
settled |
Finality reached at destination | Yes* |
returned |
Receiving side returned the payment after settlement | Yes |
*A settled payment can transition to returned in exceptional cases — model this. See Returns.
Funds never move before `cleared`. This ordering — compliance before settlement — is the invariant of the platform, not a configuration.
Every transition emits a webhook event (payment.<status>). Never poll when you can subscribe.