The callback flow
When you create an order, you supply a redirect URL:There are no webhooks
The Checkout API does not push payment notifications. Status is poll-only:- Get order status — public key, poll until
isFinalStatusistrue - Verify an order — secret key, server-side, the authoritative answer
Because there is no webhook, a customer who closes their browser mid-payment will still
complete the payment without your callback ever firing. Reconcile pending orders from your
backend on a schedule — do not rely on the customer coming back.
Verifying a payment
1
Read the reference
Use the order reference you generated at create time. Do not trust a reference supplied in
the callback query string without checking it belongs to one of your orders.
2
Call verify from your server
With your secret key. This endpoint takes plain JSON — no encryption.
3
Check status and amount
Confirm the status is successful and the amount matches what you expected. An amount
check protects you if a reference is ever replayed or tampered with.
4
Fulfil idempotently
Record that you have fulfilled this reference, and make repeat verifications no-ops. Polling
means you will see the same successful status more than once.
Example
Threading the callback through the redirect
If you are using the hosted redirect wrapper, pass the customer’s destination on the pay-order request so the wrapper knows where to send them once payment completes:http(s)
URL; anything else is ignored.
Next steps
Verify an order
The endpoint reference, with the full response shape.
Order lifecycle
Every status value, and how long to keep polling.