Reverse authorisation

Learn to reverse a pre-authorised payment that has not been captured.


You can reverse a payment's authorisation before you capture it, if the payment was pre-authorised. When you reverse the authorisation, the hold on the shopper's funds is released and the payment is cancelled.

Note that a reversal does not refund a payment that has been captured. To return funds from a captured payment, make a refund.

Requirements

Before you begin, take into account the following requirements, limitations, and preparations.

RequirementDescription
Integration typeAn online payments integration.
API credentialsYour api_token, sent in the api_token header.
WebhooksListen for the payment status webhook with the following status value:
- cancellation
LimitationsAfter a payment has been captured, you can no longer reverse its authorisation.

Reverse an authorisation using the API

To reverse a payment that has been authorised but not captured yet:

  1. Get the xref of the authorised payment you want to reverse. You can get it from the payment status webhook for the payment.

  2. Make a reversal request with your api_token header and the following parameters:

    ParameterRequiredDescription
    xrefRequiredThe payment's reference, O<order_id>M<merchant_id>T<payment_id>.
    merchant_idRequiredThe merchant that took the payment, as a string.

    There is no amount: the whole authorisation is reversed. The Reverse a pre-authorisation page in the API Explorer has the full request, with examples you can try.

    The response includes the following:

    ParameterDescription
    outcomesuccess
    payment_referenceThe acquirer's reference for this reversal.
    statusreceived. The reversal is processed asynchronously.

    Example response (HTTP 201)

    {
      "outcome": "success",
      "payment_reference": "QFQTPCQ8HXSKGK82",
      "status": "received"
    }
  3. Get the outcome of the reversal in the payment status webhook.

Reasons for a failed reversal request

If the request fails before it reaches the acquirer, you receive HTTP 200 with outcome failed and a message. The most common messages are:

messageDescription
Auth reversal already in progressYou already sent a reversal for this payment, and it is still being processed.
Auth reversal already completedThe authorisation has already been reversed.
Token is empty or Invalid tokenThe api_token header is missing or invalid.

If the acquirer returns an error, you receive its HTTP status, for example 500, with outcome success and a message.

Webhooks for reversals

Cancellation webhook

You get the outcome of the reversal in a payment status webhook. It contains the following:

  • status: cancellation.
  • xref: the reference of the payment that you reversed.
  • success: indicates whether the reversal succeeded. Possible values:
    • true: the reversal succeeded.
    • false: the reversal failed. The webhook includes a reason field with a short description of the problem.

Example webhook for a successful reversal

{
  "order_id": "EP-1001",
  "amount": "24.50",
  "currency": "GBP",
  "xref": "O88213045M10012345T4821937",
  "status": "cancellation",
  "success": "true",
  "date": "2026-10-15 13:05:10+01:00"
}

See also

On this page

Need help?

Questions about your integration, credentials or going live?

Contact supportRequest a sandbox