This page explains in simple terms how a payment moves through checkout and how long it stays valid.
The timing below matches the current platform behavior.
Lifecycle overview
- Step 1: the payer opens checkout, chooses blockchain and crypto, and starts a payment.
- Step 2: once the wallet flow is started, the payment moves into a waiting state while confirmation is expected.
- Step 3: the payment ends with a final result, for example paid, failed, closed, or expired.
Validity window: first 3 minutes
At the very start, a payment is valid for 3 minutes. This keeps fresh checkouts clean and prevents old unpaid sessions from hanging around too long.
Validity window after start: 60 minutes
After the payment is started in the wallet flow, the validity becomes 60 minutes in total. Important: this 60-minute limit is counted from when the payment was created, not from a later click moment.
Example: if a payment is created at 12:00 and the wallet step starts at 12:01, the final deadline is still 13:00.
How expiration is enforced
- The platform automatically checks and closes overdue payments.
- This happens both through background jobs and through scheduled expiry checks.
- If a payment passes its time limit without a final result, it is marked as expired.
What users see on /pay and /chain
On both pages, users see a live countdown with how long the payment remains valid. The timer refreshes regularly so status changes appear quickly.
When a payment expires, the running timer disappears. For other final results, users see the final state instead of a countdown.
This validity model helps reduce stale checkout risk while still leaving enough time for real wallet interaction once the payment flow has actually started.