Purpose
UseGET /v1/merchant-api/checkouts/{checkoutId}/status with the merchant API
key to recover the current hosted checkout. Poll with backoff when webhooks
are not suitable; do not infer completion from the return URL.
The normal forward path is
created → initiated → pending or active →
optional hold → completed. A checkout may instead move from a non-terminal
state to an unsuccessful terminal state. Provider callbacks are authoritative,
so integrations must tolerate skipped observable states and must not manufacture
transitions locally.
For checkout deposits, respect the returned pollAfterSeconds. Continue polling
a pending, active, or hold state. A status capability returned by a successful
deposit remains usable after the offer deadline so an attached protected trade
can finish.
For CS2, reservationRequired is true. Once hold begins, the CS2 trade is held
for eight days; keep the merchant order reserved and do not fulfill, credit,
delete, or release it until payment.completed. Use holdUntil from the API,
not a browser timer. fulfillmentAllowed is false until completion. On
canceled, declined, failed, or reverted outcomes it remains false and you may
release the reservation; reconciliation is manual.
completed. Polling and webhook handlers must call the same enqueue operation.
Implement the worker and crash recovery in
Safe fulfillment. Use
webhooks for durable notifications.