Skip to main content
POST
/
orders
/
{order_id}
/
refunds
Create Refund
curl --request POST \
  --url https://sandbox.cashfree.com/pg/orders/{order_id}/refunds \
  --header 'Content-Type: application/json' \
  --header 'x-api-version: <x-api-version>' \
  --header 'x-client-id: <api-key>' \
  --header 'x-client-secret: <api-key>' \
  --data '
{
  "refund_amount": 1,
  "refund_id": "refund_00912",
  "refund_note": "refund note for reference",
  "refund_speed": "STANDARD"
}
'
[
  {
    "cf_payment_id": "918812",
    "cf_refund_id": "1553338",
    "refund_id": "REF-123",
    "order_id": "c6G-QMcbm1848",
    "entity": "refund",
    "refund_amount": 100.81,
    "refund_currency": "INR",
    "refund_note": "Refund for order #123",
    "refund_status": "SUCCESS",
    "refund_type": "MERCHANT_INITIATED",
    "refund_splits": [],
    "status_description": "In Progress",
    "refund_arn": "RF12312",
    "metadata": null,
    "created_at": "2021-07-25T08:57:52+05:30",
    "processed_at": "2021-07-25T12:57:52+05:30",
    "refund_charge": 0,
    "refund_mode": "STANDARD",
    "forex_conversion_handling_charge": 11.12,
    "forex_conversion_handling_tax": 1.12,
    "forex_conversion_rate": 84.24,
    "charges_currency": "INR"
  }
]
Run in Postman: You can also try this API in our Postman Collection.

Authorizations

x-client-id
string
header
required

Client app ID. You can find your app id in the Merchant Dashboard.

x-client-secret
string
header
required

Client secret key. You can find your secret key in the Merchant Dashboard.

Headers

x-api-version
string
default:2025-01-01
required

API version to be used.

x-request-id
string

Request ID for the API call. Can be used to resolve tech issues. Communicate this in your tech related queries to Cashfree.

x-idempotency-key
string<UUID>

An idempotency key is a unique identifier you include with your API call. If the request fails or times out, you can safely retry it using the same key to avoid duplicate actions.

Path Parameters

order_id
string
required

The ID which uniquely identifies your order.

Body

application/json

Request Body to Create Refunds.

create refund request object.

refund_amount
number<double>
required

Amount to be refunded. Should be lesser than or equal to the transaction amount. (Decimals allowed).

refund_id
string

An unique ID to associate the refund with. Provie alphanumeric values.

Required string length: 3 - 40
refund_note
string

A refund note for your reference. To simulate refund status in Sandbox, pass SUCCESS, FAILED, PENDING, or ACTIVE in the refund_note field. This is a case-sensitive parameter.

Required string length: 3 - 100
refund_speed
enum<string>

Speed at which the refund is processed. It's an optional field with default being STANDARD.

Available options:
STANDARD,
INSTANT
refund_splits
object[]

Response

Refund created.

The refund entity.

cf_payment_id
string

Cashfree Payments ID of the payment for which refund is initiated.

cf_refund_id
string

Cashfree Payments ID for a refund.

order_id
string

Merchant’s order Id of the order for which refund is initiated.

refund_id
string

Merchant’s refund ID of the refund.

entity
enum<string>

Type of object.

Available options:
refund
refund_amount
number

Amount that is refunded.

refund_currency
string

Currency of the refund amount.

refund_note
string

Note added by merchant for the refund.

refund_status
enum<string>

This can be one of ["SUCCESS", "PENDING", "CANCELLED", "ONHOLD", "FAILED"].

Available options:
SUCCESS,
PENDING,
CANCELLED,
ONHOLD
refund_arn
string

The bank reference number for refund.

refund_charge
number

Charges in INR for processing refund.

status_description
string

Description of refund status.

metadata
object

Key-value pair that can be used to store additional information about the entity. Maximum 5 key-value pairs.

refund_splits
VendorSplit · object[]
refund_type
enum<string>

This can be one of ["PAYMENT_AUTO_REFUND", "MERCHANT_INITIATED", "UNRECONCILED_AUTO_REFUND"].

Available options:
PAYMENT_AUTO_REFUND,
MERCHANT_INITIATED,
UNRECONCILED_AUTO_REFUND
refund_mode
string

Method or speed of processing refund.

created_at
string

Time of refund creation.

processed_at
string

Time when refund was processed successfully.

refund_speed
RefundSpeed · object

How fast refund has to be proecessed.

Example:
{
"requested": "STANDARD",
"accepted": "STANDARD",
"processed": "STANDARD",
"message": "Error message, if any"
}
forex_conversion_handling_charge
number

Cashfree forex conversion charges for refund processing.

forex_conversion_handling_tax
number

Cashfree forex conversion tax for refund processing.

forex_conversion_rate
number

Cashfree forex conversion rate for refund processing.

charges_currency
string

Cashfree refund charges currency for a refund.