Skip to main content

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:

  1. The payment status changes to EXPIRED
  2. The user can no longer complete the payment
  3. You will receive a webhook notification (if webhooks are configured) indicating the payment has expired
  4. For PSP API implementations, a POST request is made to the makePaymentUrl with a status of timeout

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:

  1. Monitor payment status: Use webhooks or poll the payment status to detect expired payments
  2. Notify the user: Inform the customer that their payment request has expired
  3. Create a new payment: If the customer still wants to complete the transaction, create a new payment request
  4. 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.