GET /transactions
endpoint using
the exponential back-off strategy.POST
requests for transactions idempotent by providing a unique Idempotency-Key
in the request header.
Please note, if you retry a request with the same Idempotency-Key
but a different request body, the request will fail with a 400 bad_request - Idempotency-Key already in use for a different request.
to prevent accidental misuse.
POST /transactions
endpoint supports idempotent
requests.GET /transactions
endpoint to perform a transaction search with a combination of external_identifier
, created_at
and amount
. For refund, you may call GET /transactions/{transaction_id}/refunds
endpoint.
To avoid overwhelming our systems (and your own), you should use an exponential back-off strategy. It works by progressively increasing the delay between retries to give the system time to recover and process the transaction. We also recommend adding a small, random delay (known as jitter) to your back-off timing to prevent many requests all retrying at the same time.
unknown
state for an extended time.
If a transaction’s status is still unknown
after some time, you will need to initiate a manual reconciliation. We recommend you build a report to identify any transactions that have been in an unknown
state for over 24 hours.
For resolution, please raise a support ticket with our team, providing the details such as external_identifier
, amount
, and created_at
for each transaction requiring investigation.
POST /transactions
with a unique Idempotency-Key
and external_identifier
.unknown
. It’s crucial not to assume the payment has failed. Your system should continue waiting for a webhook to arrive.transaction.*
event. Match the webhook event to the transaction using these fields: external_identifier
, created_at
and amount
. Save the transaction status from the webhook.POST /transactions
with a unique Idempotency-Key
and external_identifier
.unknown
. It’s crucial not to assume the payment has failed. Your system should continue waiting for a webhook to arrive.Idempotency-Key (key-2)
. You may choose to reuse the same external_identifier
as the original attempt or use a new external_identifier
.external_identifier
, created_at
and amount
.
POST /transactions
with a unique Idempotency-Key
and external_identifier
.unknown
. It’s crucial not to assume the payment has failed. Your system should continue waiting for a webhook to arrive.Idempotency-Key (key-2)
. You may choose to reuse the same external_identifier
as the original attempt or use a new external_identifier
.unknown
state of the first transaction, periodically calls the GET /transactions
endpoint to search for the transaction using a combination of external_identifier
, created_at
and amount
to determine its final status.
transaction_id
and event.name
(e.g. refund.succeeded
or transaction.authorized
).
In this flow we see the following steps.
unknown
.transaction.*
or refund.*
event. Match the webhook event to the transaction using transaction_id
and event.name
.unknown
.unknown
state of the transaction, periodically calls the GET /transactions
endpoint to search for the transaction using a combination of external_identifier
, created_at
and amount
to determine its final status. For refunds, use GET /transactions/{transactionId}/refunds
endpoint.