API Test Keys
Make a Request Idempotent
POST
/v1/payouts
Click to copy
Watch Out!
Payout APIs are not available in Malaysia.
To make a request idempotent, add the header X-Payout-Idempotency
to the request and pass an idempotency key against it. Currently, idempotency is supported only on the Create Payout API and the Composite APIs.
Points to Consider:
- An idempotency key is a unique value generated by you. Our servers use this key to recognise subsequent retries of the same request.
- The idempotency key (4-36 characters) can only contain alphabets, numbers, hyphens, underscores and space. For example,
53cda91c-8f81-4e77-bbb9-7388f4ac6bf4
is an idempotency key. - When retrying a request, the request body must be the same as the first request for idempotency to work. A different payload will be rejected as a
BAD_REQUEST
. - The idempotency key in retries must be the same as the original request.
- Use unique idempotency keys for each unique request.
We recommend you generate the key using a version 4 (random) UUID generator.
Is this page helpful?
1curl -u [YOUR_KEY_ID]:[YOUR_KEY_SECRET] \2-X POST https://api.razorpay.com/v1/payouts \3-H "Content-Type: application/json" \4-H "X-Payout-Idempotency: 53cda91c-8f81-4e77-bbb9-7388f4ac6bf4" \5-d '{6"account_number": "7878780080316316",7"fund_account_id": "fa_00000000000001",8"amount": 1000000,9"currency": "INR",10"mode": "IMPS",11"purpose": "refund",12"queue_if_low_balance": true,13"reference_id": "Acme Transaction ID 12345",14"narration": "Acme Corp Fund Transfer",15"notes": {16"notes_key_1":"Tea, Earl Grey, Hot",17"notes_key_2":"Tea, Earl Grey… decaf."18}19}'
Success
Failure
1{2"id": "pout_00000000000001",3"entity": "payout",4"fund_account_id": "fa_00000000000001",5"amount": 1000000,6"currency": "INR",7"notes": {8"notes_key_1":"Tea, Earl Grey, Hot",9"notes_key_2":"Tea, Earl Grey… decaf."10},11"fees": 0,12"tax": 0,13"status": "queued",14"utr": null,15"mode": "IMPS",16"purpose": "refund",17"reference_id": "Acme Transaction ID 12345",18"narration": "Acme Corp Fund Transfer",19"batch_id": null,20"status_details": null,21"created_at": 154538303722}
Request Parameters
account_number
*
string
The account from which you want to make the payout. For example, 7878780080316316
.
-
Pass your customer identifier if you want money to be deducted from RazorpayX Lite.
-
Pass your Current Account number if you want money to be deducted from your Current Account.
Watch Out!
- This is not your Contact's bank account number. Log in to your and go to My Account & Settings → Banking → Customer Identifier.
- This value is different for Test Mode and Live Mode.
fund_account_id
*
string
The unique identifier linked to a fund account. For example, fa_00000000000001
.
amount
*
integer
The payout amount, in paise. For example, pass 1000000
to transfer an amount of ₹10,000. Minimum value 100
.
The value passed here does not include fees and tax. Fees and tax, if any, are deducted from your account balance.
currency
*
string
The payout currency. Here, it is INR
.
mode
*
string
The mode to be used to create the payout. Available modes:
NEFT
RTGS
IMPS
card
The payout modes are case-sensitive. When creating payouts using APIs, ensure payout modes are entered in upper case.
purpose
*
string
The purpose of the payout that is being created. The following classifications are available in the system by default:
refund
cashback
payout
salary
utility bill
vendor bill
Additional purposes for payouts can be created via the
and then used in the API. However, it is not possible to create a new purpose for the payout via the API.queue_if_low_balance
boolean
Possible values:
true
: The payout is queued when your business account does not have sufficient balance to process the payout.false
(default): The payout is never queued. The payout fails if your business account does not have sufficient balance to process the payout.
reference_id
string
A user-generated reference given to the payout. Maximum length is 40 characters. For example, Acme Transaction ID 12345
. You can use this field to store your own transaction ID, if any.
narration
string
Custom note that also appears on the bank statement. Maximum length 30 characters. Allowed characters: a-z, A-Z, 0-9 and space.
If no value is passed for this parameter, it defaults to the Merchant Billing Label. Ensure that the most important text forms the first 9 characters as banks may truncate the rest as per their standards.
notes
array of objects
Multiple key-value pairs that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, "note_key": "Beam me up Scotty”
.
Response Parameters
id
string
The unique identifier of the order. For example, pout_00000000000001
.
entity
string
The entity being created. Here, it will be payout
.
fund_account_id
string
The unique identifier linked to the fund account. For example, fa_00000000000001
.
amount
integer
The payout amount, in paise. For example, if you want to transfer ₹10,000, pass 1000000
. Minimum value 100
. The value passed here does not include fees and tax. Fees and tax, if any, are deducted from your account balance.
currency
string
The payout's currency. Here, it is INR
.
notes
array of objects
Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, "note_key": "Beam me up Scotty”
.
fees
integer
The fees for the payout. This value is returned only when the payout moves to the processing
state. For example, 5
.
tax
integer
The tax applicable for the fee being charged. This value is returned only when the payout moves to the processing
state. For example, 1
.
status
string
The status of the payout. Possible payout states:
queued
pending
(if you have enabled)rejected
(if you have enabled)processing
processed
cancelled
reversed
failed
Know more about
and .utr
string
The unique transaction number linked to a payout. For example, HDFCN00000000001
.
mode
string
The mode used to make the payout. Available modes:
NEFT
RTGS
IMPS
card
The payout modes are case-sensitive.
purpose
string
The purpose of the payout that is being created. The following classifications are available in the system by default:
refund
cashback
payout
salary
utility bill
vendor bill
reference_id
string
A user-generated reference given to the payout. Maximum length is 40 characters. For example, Acme Transaction ID 12345
. You can use this field to store your own transaction ID, if any.
narration
string
This is a custom note that also appears on the bank statement. Maximum length 30 characters. Allowed characters: a-z, A-Z, 0-9 and space.
If no value is passed for this parameter, it defaults to the Merchant Billing Label. Ensure that the most important text forms the first 9 characters as banks may truncate the rest as per their standards.
batch_id
string
This value is returned if the Contact was created as part of a bulk upload. For example, batch_00000000000001
.
status_details
object
This parameter returns the current status of the payout. For example, IMPS is not enabled on beneficiary account, Retry with different mode
.
Show child parameters (3)
created_at
integer
Indicates the Unix timestamp when this order was created.
fee_type
string
Indicates the fee type charged for the payout. Possible values is free_payout
.
Errors
Idempotency key is missing. Include idempotency header and key in the request.
Error Status: 400
Idempotency key is mandatory.
Solution
Make a Request Idempotent
POST
/v1/payouts
Click to copy
Watch Out!
Payout APIs are not available in Malaysia.
To make a request idempotent, add the header X-Payout-Idempotency
to the request and pass an idempotency key against it. Currently, idempotency is supported only on the Create Payout API and the Composite APIs.
Points to Consider:
- An idempotency key is a unique value generated by you. Our servers use this key to recognise subsequent retries of the same request.
- The idempotency key (4-36 characters) can only contain alphabets, numbers, hyphens, underscores and space. For example,
53cda91c-8f81-4e77-bbb9-7388f4ac6bf4
is an idempotency key. - When retrying a request, the request body must be the same as the first request for idempotency to work. A different payload will be rejected as a
BAD_REQUEST
. - The idempotency key in retries must be the same as the original request.
- Use unique idempotency keys for each unique request.
We recommend you generate the key using a version 4 (random) UUID generator.
Is this page helpful?
Request Parameters
account_number
*
string
The account from which you want to make the payout. For example, 7878780080316316
.
-
Pass your customer identifier if you want money to be deducted from RazorpayX Lite.
-
Pass your Current Account number if you want money to be deducted from your Current Account.
Watch Out!
- This is not your Contact's bank account number. Log in to your and go to My Account & Settings → Banking → Customer Identifier.
- This value is different for Test Mode and Live Mode.
fund_account_id
*
string
The unique identifier linked to a fund account. For example, fa_00000000000001
.
amount
*
integer
The payout amount, in paise. For example, pass 1000000
to transfer an amount of ₹10,000. Minimum value 100
.
The value passed here does not include fees and tax. Fees and tax, if any, are deducted from your account balance.
currency
*
string
The payout currency. Here, it is INR
.
mode
*
string
The mode to be used to create the payout. Available modes:
NEFT
RTGS
IMPS
card
The payout modes are case-sensitive. When creating payouts using APIs, ensure payout modes are entered in upper case.
purpose
*
string
The purpose of the payout that is being created. The following classifications are available in the system by default:
refund
cashback
payout
salary
utility bill
vendor bill
Additional purposes for payouts can be created via the
and then used in the API. However, it is not possible to create a new purpose for the payout via the API.queue_if_low_balance
boolean
Possible values:
true
: The payout is queued when your business account does not have sufficient balance to process the payout.false
(default): The payout is never queued. The payout fails if your business account does not have sufficient balance to process the payout.
reference_id
string
A user-generated reference given to the payout. Maximum length is 40 characters. For example, Acme Transaction ID 12345
. You can use this field to store your own transaction ID, if any.
narration
string
Custom note that also appears on the bank statement. Maximum length 30 characters. Allowed characters: a-z, A-Z, 0-9 and space.
If no value is passed for this parameter, it defaults to the Merchant Billing Label. Ensure that the most important text forms the first 9 characters as banks may truncate the rest as per their standards.
notes
array of objects
Multiple key-value pairs that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, "note_key": "Beam me up Scotty”
.
Response Parameters
id
string
The unique identifier of the order. For example, pout_00000000000001
.
entity
string
The entity being created. Here, it will be payout
.
fund_account_id
string
The unique identifier linked to the fund account. For example, fa_00000000000001
.
amount
integer
The payout amount, in paise. For example, if you want to transfer ₹10,000, pass 1000000
. Minimum value 100
. The value passed here does not include fees and tax. Fees and tax, if any, are deducted from your account balance.
currency
string
The payout's currency. Here, it is INR
.
notes
array of objects
Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, "note_key": "Beam me up Scotty”
.
fees
integer
The fees for the payout. This value is returned only when the payout moves to the processing
state. For example, 5
.
tax
integer
The tax applicable for the fee being charged. This value is returned only when the payout moves to the processing
state. For example, 1
.
status
string
The status of the payout. Possible payout states:
queued
pending
(if you have enabled)rejected
(if you have enabled)processing
processed
cancelled
reversed
failed
Know more about
and .utr
string
The unique transaction number linked to a payout. For example, HDFCN00000000001
.
mode
string
The mode used to make the payout. Available modes:
NEFT
RTGS
IMPS
card
The payout modes are case-sensitive.
purpose
string
The purpose of the payout that is being created. The following classifications are available in the system by default:
refund
cashback
payout
salary
utility bill
vendor bill
reference_id
string
A user-generated reference given to the payout. Maximum length is 40 characters. For example, Acme Transaction ID 12345
. You can use this field to store your own transaction ID, if any.
narration
string
This is a custom note that also appears on the bank statement. Maximum length 30 characters. Allowed characters: a-z, A-Z, 0-9 and space.
If no value is passed for this parameter, it defaults to the Merchant Billing Label. Ensure that the most important text forms the first 9 characters as banks may truncate the rest as per their standards.
batch_id
string
This value is returned if the Contact was created as part of a bulk upload. For example, batch_00000000000001
.
status_details
object
This parameter returns the current status of the payout. For example, IMPS is not enabled on beneficiary account, Retry with different mode
.
Show child parameters (3)
created_at
integer
Indicates the Unix timestamp when this order was created.
fee_type
string
Indicates the fee type charged for the payout. Possible values is free_payout
.
Errors
Idempotency key is missing. Include idempotency header and key in the request.
Error Status: 400
Idempotency key is mandatory.
Solution
1curl -u [YOUR_KEY_ID]:[YOUR_KEY_SECRET] \2-X POST https://api.razorpay.com/v1/payouts \3-H "Content-Type: application/json" \4-H "X-Payout-Idempotency: 53cda91c-8f81-4e77-bbb9-7388f4ac6bf4" \5-d '{6"account_number": "7878780080316316",7"fund_account_id": "fa_00000000000001",8"amount": 1000000,9"currency": "INR",10"mode": "IMPS",11"purpose": "refund",12"queue_if_low_balance": true,13"reference_id": "Acme Transaction ID 12345",14"narration": "Acme Corp Fund Transfer",15"notes": {16"notes_key_1":"Tea, Earl Grey, Hot",17"notes_key_2":"Tea, Earl Grey… decaf."18}19}'
Success
Failure
1{2"id": "pout_00000000000001",3"entity": "payout",4"fund_account_id": "fa_00000000000001",5"amount": 1000000,6"currency": "INR",7"notes": {8"notes_key_1":"Tea, Earl Grey, Hot",9"notes_key_2":"Tea, Earl Grey… decaf."10},11"fees": 0,12"tax": 0,13"status": "queued",14"utr": null,15"mode": "IMPS",16"purpose": "refund",17"reference_id": "Acme Transaction ID 12345",18"narration": "Acme Corp Fund Transfer",19"batch_id": null,20"status_details": null,21"created_at": 154538303722}