Skip to content

Error handling and retry requests

HTTP code Note Recommended actions
2xx Transaction status is final (successful, failed) Use the received transaction status.
2xx Transaction status is not final
(for example, incomplete)
Wait for the webhook notification (more about the notification for cards), then request the current transaction status by uid (more about the request for cards).
4xx The request contains invalid data or syntax errors. Do not retry the request without correcting the request parameters. Fix the request and resend it. If the request included an idempotency key, update it before resending the request.
5xx A service-side internal error occurred while processing the request. Despite the error response, the transaction may have been created successfully. Request the transaction status by tracking_id (for cards). If the transaction is not found, resend the original request using the same idempotency key.

If a retry request is sent without an idempotency key or with a new idempotency key, the API treats it as a new transaction.

For transactions that can be performed multiple times (for example, partial refunds), this may result in an additional partial refund.
No response received timeout or network error Request the transaction status by tracking_id (for cards).

If the transaction is not found, resend the original request using the same idempotency key.

Do not wait indefinitely for a response. If the request does not complete before the configured timeout expires, terminate the connection and retrieve the current transaction status using the corresponding API. This helps prevent long-lived connections from exhausting client resources and degrading your application's performance.

If a retry request is sent without an idempotency key or with a new idempotency key, the API treats it as a new transaction. For transactions that can be performed multiple times (for example, partial refunds), this may result in an unintended additional partial refund.

Warning

In exceptional cases, the acquirer or payment method provider might not return the final transaction result before the request times out.

As a result, transactions that normally receive a final status synchronously (refund, capture, void, recurring, and p2p) can initially return an intermediate status: incomplete for card transactions.

After the final result is received from the acquirer or payment method provider, the merchant will get the webhook notification with the transaction's final status.