Skip to main content
Use this endpoint to initiate a refund against a completed payment. You can issue a full refund for the original amount or a partial refund by specifying a lesser amount. Refund processing is asynchronous; the API responds immediately with a confirmation that the refund has been queued, and the final outcome is available via the status endpoint or a webhook notification.
Headers

Request body

string
required
The unique reference of the original payment you want to refund. This must correspond to a completed transaction on your merchant account.
string
required
A unique reference you assign to this refund request. Used to query refund status and to identify the refund in webhook events. Must be unique — submitting a duplicate refund_reference returns 409 Refund already exists.
string
required
ISO 4217 currency code for the refund (e.g. NGN). Must match the currency of the original payment.
number
required
Amount to refund. To issue a partial refund, specify an amount less than the original payment amount. To issue a full refund, match the original payment amount exactly.
string
A human-readable reason for the refund. Stored for your records and may appear in customer notifications.
string
Destination bank account number for the refund. Required when the refund is to be sent to a specific account rather than reversed to the original payment method.
string
Bank code for the destination account. Required when account_number is provided. Use GET /banks to retrieve the list of supported bank codes.

Example request

Example response

Response fields

string
Indicates whether the request was accepted. A value of success means the refund has been queued for processing.
string
A human-readable description of the result.
string
The unique reference you supplied for this refund. Use it to poll for the final status.
string
The original payment reference the refund was raised against.

Checking refund status

Refund processing is asynchronous. The response above confirms only that the refund has been accepted and queued. Poll the status endpoint to determine the final outcome:
See Query Refunds for full details on status polling and available statuses.

Error reference