Skip to main content
POST
Initiate Refund | Refunds API
Instant refunds are only available for selected merchants with same day payout functionality. Please reach out to support if you want to enable refunds in your account.
This API creates a refund for a specific successful payment. The refunded amount is credited to the customer’s source bank account via a bank transfer within 30 minutes, provided that you have sufficient balance available in your account. Refund can be either full or partial.

Authorization

Bearer <token>

Request Body Schema

string
required
The payment request ID of the transaction that needs to be refunded. Only completed payments can be refunded.
Note: If you need to know how to generate a payment request ID, refer to Process payment .
number
required
Amount to be refunded (should not exceed the original transaction amount). Decimal values are allowed. Minimum value is 1.
string
The currency of the refund amount. If not specified, the currency of the original transaction will be used. Example: “GBP”.
string
Refund reason for your internal reference.
To simulate a FAILED refund in sandbox environment you can pass a note with FAILURE TEST
object
Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  • Up to 50 key-value pairs.
  • Each key must be 1–40 characters and must not contain [ or ].
  • Each value must be a string of at most 500 characters.
Once set, metadata is returned in the Get Refunds response, and is included in the Refund Status Webhook.
The refund’s metadata is independent of the payment’s — it is not inherited. Metadata is frozen when the refund is created and cannot be changed afterwards. An empty object ({}) is treated as no metadata.

Response

string
The unique identifier for the refund transaction. You can use this ID to cancel the refund later via the Cancel Refund API.
string
The ID of the original payment request that is being refunded.
string
The idempotency ID of the original payment, used to ensure the payment was processed only once.
string
The current status of the refund request (e.g., “INITIATED”, “COMPLETED”, “FAILED”).
string
The original amount that was paid in the transaction being refunded.
string
The amount being refunded to the customer.
string
The currency code for the refund transaction (e.g., “GBP”).
string
Notes or reason provided for the refund.
string
The order ID associated with the original transaction.
string
The timestamp when this refund request was last updated.
string
The timestamp when this refund request was created in the system.