Batch Refund API

Initiates a batch of refunds in a single request. Each refund item is processed independently — some may succeed while others are rejected within the same batch.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Refund Status

Each refund item in the response includes a refund_status field indicating the outcome of that specific refund request.

Per-Item refund_status Values

StatusMeaning
request_initiatedRefund accepted and queued for processing.
rejectedRefund rejected — see the message field for the reason.

Rejection Reasons (message field)

When refund_status is rejected, the message field will contain one of the following values:

MessageCause
merchant_reference_id already existsDuplicate merchant_reference_id — already exists in the database or appears more than once within the same batch.
Invalid payment_idThe provided payment_id was not found for this merchant.
Payment is not in a refundable statusThe payment has not been captured or paid yet and cannot be refunded.
Amount exceeds transaction amountThe requested refund amount is greater than the original transaction value.
Total refund amount exceeds transaction amountThe cumulative refund total (including prior refunds and this batch) would exceed the original transaction value.
refund_batch_id already existsThe entire batch is rejected — this refund_batch_id has already been submitted.
Refunds are not allowed for instant settlement enabled merchantsEntire batch rejected — merchant has instant settlement enabled.
Body Params
string
required

Unique batch identifier from the merchant. Must not have been used before for this merchant.

refunds
array
required

List of refund items in the batch.

refunds*
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json