Timeouts
Payment requests have a limited time window during which users can complete their payments. Understanding these timeout settings is essential for proper error handling and user experience.
Default timeout​
By default, a user has a total of 10 minutes to accept a payment. This breaks down as follows:
- 5 minutes to open the payment request in the app
- 5 minutes to approve it after opening
If the user does not complete the payment within this time window, the payment request will expire.
What happens when a payment expires​
When a payment request times out:
- The payment status changes to
EXPIRED - The user can no longer complete the payment
- You will receive a webhook notification (if webhooks are configured) indicating the payment has expired
- For PSP API implementations, a POST request is made to the
makePaymentUrlwith a status oftimeout
The EXPIRED state is a final state - the payment cannot be recovered or modified after expiration.
Handling expired payments​
When a payment expires, you should:
- Monitor payment status: Use webhooks or poll the payment status to detect expired payments
- Notify the user: Inform the customer that their payment request has expired
- Create a new payment: If the customer still wants to complete the transaction, create a new payment request
- Clean up: Update your internal systems to reflect the expired payment status
info
Implement webhooks to receive real-time notifications about payment status changes, including expirations.