Skip to main content

Refund a payment

Technical Author Note

Draft content to be reviewed and verified.

Use refunds to return funds to a cardholder for a completed sale.

Refunds are used when you need to return all or part of a payment that has already been processed. The refund is created against the original payment_id, which keeps it linked to the original sale for reconciliation and reporting.

You can refund the full amount or a partial amount, not exceeding the original amount.

This flow is only for refunds linked to an existing sale. To release a pre-authorisation that has not been captured, cancel the authorisation instead.

How it works

  1. Take the payment_id from the original settled sale.
  2. POST to /{payment_id}/reverse — send no body for a full refund, or {"amount": N} for a partial refund, not exceeding the original amount.
  3. A successful refund returns status: pending. The response id is the reversal's own transfer_id — do not overwrite your stored payment_id.

Key rules

note
  • Refunds must be linked to an existing, settled payment_id — there is no unlinked refund.
  • A full refund sends no body; a partial refund sends {"amount": N}, not exceeding the original amount.
  • To release an uncaptured pre-authorisation instead, use Cancel on Authorise a payment.
Partial refund — request body
{ "amount": 500 }

For which IDs a reversal returns and which to store, see Response ID Fields.

Try it

Call this flow directly in the API Reference.

  • POST Reverse a Transfer