CleonPay

Payment lifecycle

The states a payment moves through, and which ones are final.

created  →  awaiting_customer  →  authorized  →  settled
                    │                  │
                    ├──────────────────┴──→  failed
                    ├─────────────────────→  cancelled
                    └─────────────────────→  expired
StatusMeaningFinal
createdRecorded; the bank has not been called yetNo
awaiting_customerRedirect issued, customer has not paidNo
authorizedCustomer paid; funds not yet settledNo
settledMoney moved. Fulfil here.Yes
failedDeclined or erroredYes
cancelledAbandoned or cancelledYes
expiredNever completed in timeYes
Notifications can arrive out of order. Banks do not guarantee ordering, so a settlement can reach us before the authorisation. We handle that, and a payment never moves backwards out of a final state. Build your side the same way: treat the same event twice as a no-op.

Cancelling

POST /v1/payments/{id}/cancel

Only while created or awaiting_customer. Once the bank has authorised, the correct action is a refund.