API Test Keys
Create a Payout to a Mobile Number Using the Composite API
POST/v1/payoutsClick to copy
Use this endpoint to create a payout to a mobile number using Composite Payout API.
Watch Out!
- Ensure you and pass the to make a successful payout.
- You can send payouts to VPA (UPI) linked mobile numbers only.
Consider the points given below before firing this API:
- Contact
- A new contact is created if any combination of the following details is unique:
fund_account.contact.namefund_account.contact.emailfund_account.contact.contactfund_account.contact.typefund_account.contact.reference_id
- If all the above details match the details of an existing contact, the API returns details of the existing contact.
- Use the if you want to make changes to an existing contact.
- A new contact is created if any combination of the following details is unique:
- Fund Account
- A new fund account is created if any combination of the following details is unique:
fund_account.card.namefund_account.card.numberfund_account.contact.namefund_account.contact.emailfund_account.contact.contactfund_account.contact.typefund_account.contact.reference_id
- If all the above details match the details of an existing fund account, the API returns details of the existing fund account.
- You cannot edit the details of a fund account.
- A new fund account is created if any combination of the following details is unique:
To understand the status of the payouts, refer to
.Is this page helpful?
1curl -u <YOUR_KEY>:<YOUR_SECRET>2-X POST https://api.razorpay.com/v1/payouts3-H "Content-Type: application/json"4-H "X-Payout-Idempotency: 53cda91c-8f81-4e77-bbb9-7388f4ac6bf4"5-d '{6"account_number": "7878780080316316",7"amount": 1000,8"currency": "INR",9"mode": "UPI",10"purpose": "cashback",11"fund_account": {12"account_type": "mobile",13"mobile": {14"number": "9876543210",15"account_holder_name": "Gaurav Kumar"16},17"contact": {18"name": "Gaurav Kumar",19"email": "gaurav.kumar@example.com",20"contact": "9000090000",21"type": "self",22"reference_id": "Acme Contact ID 12345",23"notes": {24"notes_key_1": "Tea, Earl Grey, Hot",25"notes_key_2": "Tea, Earl Grey… decaf."26}27}28},29"queue_if_low_balance": true,30"reference_id": "Acme Transaction ID 12345",31"narration": "Acme Corp Fund Transfer",32"notes": {33"notes_key_1": "Beam me up Scotty",34"notes_key_2": "Engage"35}36}'
Success
Failure
1{2"id": "pout_F681qslJ3ba70q",3"entity": "payout",4"fund_account_id": "fa_F681qr6Bqy1Je7",5"fund_account": {6"id": "fa_F681qr6Bqy1Je7",7"entity": "fund_account",8"contact_id": "cont_F681qmU11CfPDl",9"contact": {10"id": "cont_F681qmU11CfPDl",11"entity": "contact",12"name": "Gaurav Kumar",13"contact": "9000090000",14"email": "gaurav.kumar@example.com",15"type": "employee",16"reference_id": "Acme Contact ID 12345",17"batch_id": null,18"active": true,19"notes": {20"notes_key_1": "Tea, Earl Grey, Hot",21"notes_key_2": "Tea, Earl Grey… decaf."22},23"created_at": 159292901624},25"account_type": "mobile",26"mobile": {27"number": "9876543210",28"account_holder_name": "Gaurav Kumar"29},30"vpa": {31"username": null,32"handle": "exampleupi",33"address": null,34},35"batch_id": null,36"active": true,37"created_at": 159292901638},39"amount": 1000,40"currency": "INR",41"notes": {42"notes_key_1": "Beam me up Scotty",43"notes_key_2": "Engage"44},45"fees": 59,46"tax": 9,47"status": "processed",48"purpose": "refund",49"utr": "UPI2928292020",50"mode": "UPI",51"reference_id": "Acme Transaction ID 12345",52"narration": "Acme Corp Fund Transfer",53"batch_id": null,54"status_details": null,55"created_at": 1592929017,56"fee_type": "",57"error": {58"description": null,59"source": null,60"reason": null61}62}
Request Parameters
account_number *
string The account from which you want to make the payout.
Account details can be found on the RazorpayX Dashboard. 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.
amount *
integer The payout amount, in paise. For example, pass 1000000 to transfer an amount of ₹10,000. Minimum value is 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. Here, it is UPI.
The payout modes are case-sensitive. When creating payouts using APIs, ensure payout modes are entered in upper case.
purpose *
stringThe purpose of the payout. Classifications available in the system by default:
refundcashbackpayoutsalaryutility billvendor 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.fund_account *
objectDetails of the contact and fund account to which the payout should be made.
Show child parameters (3)
queue_if_low_balance booleanPossible 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 Maximum length is 40 characters. A reference you enter for the payout. For example, Acme Transaction ID 12345. You can use this field to store your own transaction ID, if any.
narration string Maximum length 30 characters. Allowed characters: a-z, A-Z, 0-9 and space. This is a custom note that also appears on the bank statement. If no value is passed for this parameter, it defaults to the Merchant Billing Label.
Enter the important text in the first 9 characters as banks truncate the rest as per their standards.
notes array 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”.
Response Parameters
idstring The unique identifier linked to the payout. For example, pout_00000000000001.
entitystring The entity being created. Here, it will be payout.
fund_account_idstring The unique identifier linked to the fund account. For example, fa_00000000000001.
fund_accountstringContact and fund account details to which the payout was made.
Show child parameters (10)
amountinteger The payout amount, in paise. For example, if the amount transferred is ₹100, it will display 10000.
This value does not include fees and tax. Fees and tax, if any, are deducted from your account balance.
currencystring The payout currency. Here, it is INR.
notesobject 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”.
feesinteger The fees for the payout. This field is populated only when the payout moves to the processing state. For example, 5.
taxinteger The tax that is applicable for the fee being charged. This field is populated only when the payout moves to the processing state. For example, 1.
statusstringThe payout status. Possible payout states:
queuedpending(if you have enabled)rejected(if you have enabled)processingprocessedcancelledreversed
purposestringThe purpose of the payout. Classifications available by default:
refundcashbackpayoutsalaryutility billvendor bill
utrstring The unique transaction number linked to a payout. For example, HDFCN00000000001.
modestring Here, it is UPI.
reference_idstring A user-generated reference given to the payout. For example, Acme Transaction ID 12345. You can use this field to store your own transaction ID, if any.
narrationstring This is a custom note that also appears on the bank statement.
If no value is passed for this parameter, it defaults to the Merchant Billing Label.
batch_idstring This parameter is populated if the contact was created as part of a bulk upload. For example, batch_00000000000001.
status_detailsobject 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_atinteger Timestamp, in Unix, when the payout was created. For example, 1545320320.
fee_typestring Indicates the fee type charged for the payout. Possible values is free_payout.
Errors
No linked account details found
Error Status: 400
No linked VPA (UPI) found for the entered mobile number.
Solution
Account holder name not matching with bank provided name
Error Status: 400
Account holder name is not matching with the name fetched from the bank.
Solution
Mobile number should be 10-digit long
Error Status: 400
Entered mobile number is not 10-digit long.
Solution
We are facing trouble fetching account details. Please try again shortly
Error Status: 500
Server error. Unable to fetch account details from the server.
Solution
Create a Payout to a Mobile Number Using the Composite API
POST/v1/payoutsClick to copy
Use this endpoint to create a payout to a mobile number using Composite Payout API.
Watch Out!
- Ensure you and pass the to make a successful payout.
- You can send payouts to VPA (UPI) linked mobile numbers only.
Consider the points given below before firing this API:
- Contact
- A new contact is created if any combination of the following details is unique:
fund_account.contact.namefund_account.contact.emailfund_account.contact.contactfund_account.contact.typefund_account.contact.reference_id
- If all the above details match the details of an existing contact, the API returns details of the existing contact.
- Use the if you want to make changes to an existing contact.
- A new contact is created if any combination of the following details is unique:
- Fund Account
- A new fund account is created if any combination of the following details is unique:
fund_account.card.namefund_account.card.numberfund_account.contact.namefund_account.contact.emailfund_account.contact.contactfund_account.contact.typefund_account.contact.reference_id
- If all the above details match the details of an existing fund account, the API returns details of the existing fund account.
- You cannot edit the details of a fund account.
- A new fund account is created if any combination of the following details is unique:
To understand the status of the payouts, refer to
.Is this page helpful?
Request Parameters
account_number *
string The account from which you want to make the payout.
Account details can be found on the RazorpayX Dashboard. 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.
amount *
integer The payout amount, in paise. For example, pass 1000000 to transfer an amount of ₹10,000. Minimum value is 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. Here, it is UPI.
The payout modes are case-sensitive. When creating payouts using APIs, ensure payout modes are entered in upper case.
purpose *
stringThe purpose of the payout. Classifications available in the system by default:
refundcashbackpayoutsalaryutility billvendor 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.fund_account *
objectDetails of the contact and fund account to which the payout should be made.
Show child parameters (3)
queue_if_low_balance booleanPossible 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 Maximum length is 40 characters. A reference you enter for the payout. For example, Acme Transaction ID 12345. You can use this field to store your own transaction ID, if any.
narration string Maximum length 30 characters. Allowed characters: a-z, A-Z, 0-9 and space. This is a custom note that also appears on the bank statement. If no value is passed for this parameter, it defaults to the Merchant Billing Label.
Enter the important text in the first 9 characters as banks truncate the rest as per their standards.
notes array 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”.
Response Parameters
idstring The unique identifier linked to the payout. For example, pout_00000000000001.
entitystring The entity being created. Here, it will be payout.
fund_account_idstring The unique identifier linked to the fund account. For example, fa_00000000000001.
fund_accountstringContact and fund account details to which the payout was made.
Show child parameters (10)
amountinteger The payout amount, in paise. For example, if the amount transferred is ₹100, it will display 10000.
This value does not include fees and tax. Fees and tax, if any, are deducted from your account balance.
currencystring The payout currency. Here, it is INR.
notesobject 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”.
feesinteger The fees for the payout. This field is populated only when the payout moves to the processing state. For example, 5.
taxinteger The tax that is applicable for the fee being charged. This field is populated only when the payout moves to the processing state. For example, 1.
statusstringThe payout status. Possible payout states:
queuedpending(if you have enabled)rejected(if you have enabled)processingprocessedcancelledreversed
purposestringThe purpose of the payout. Classifications available by default:
refundcashbackpayoutsalaryutility billvendor bill
utrstring The unique transaction number linked to a payout. For example, HDFCN00000000001.
modestring Here, it is UPI.
reference_idstring A user-generated reference given to the payout. For example, Acme Transaction ID 12345. You can use this field to store your own transaction ID, if any.
narrationstring This is a custom note that also appears on the bank statement.
If no value is passed for this parameter, it defaults to the Merchant Billing Label.
batch_idstring This parameter is populated if the contact was created as part of a bulk upload. For example, batch_00000000000001.
status_detailsobject 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_atinteger Timestamp, in Unix, when the payout was created. For example, 1545320320.
fee_typestring Indicates the fee type charged for the payout. Possible values is free_payout.
Errors
No linked account details found
Error Status: 400
No linked VPA (UPI) found for the entered mobile number.
Solution
Account holder name not matching with bank provided name
Error Status: 400
Account holder name is not matching with the name fetched from the bank.
Solution
Mobile number should be 10-digit long
Error Status: 400
Entered mobile number is not 10-digit long.
Solution
We are facing trouble fetching account details. Please try again shortly
Error Status: 500
Server error. Unable to fetch account details from the server.
Solution
1curl -u <YOUR_KEY>:<YOUR_SECRET>2-X POST https://api.razorpay.com/v1/payouts3-H "Content-Type: application/json"4-H "X-Payout-Idempotency: 53cda91c-8f81-4e77-bbb9-7388f4ac6bf4"5-d '{6"account_number": "7878780080316316",7"amount": 1000,8"currency": "INR",9"mode": "UPI",10"purpose": "cashback",11"fund_account": {12"account_type": "mobile",13"mobile": {14"number": "9876543210",15"account_holder_name": "Gaurav Kumar"16},17"contact": {18"name": "Gaurav Kumar",19"email": "gaurav.kumar@example.com",20"contact": "9000090000",21"type": "self",22"reference_id": "Acme Contact ID 12345",23"notes": {24"notes_key_1": "Tea, Earl Grey, Hot",25"notes_key_2": "Tea, Earl Grey… decaf."26}27}28},29"queue_if_low_balance": true,30"reference_id": "Acme Transaction ID 12345",31"narration": "Acme Corp Fund Transfer",32"notes": {33"notes_key_1": "Beam me up Scotty",34"notes_key_2": "Engage"35}36}'
Success
Failure
1{2"id": "pout_F681qslJ3ba70q",3"entity": "payout",4"fund_account_id": "fa_F681qr6Bqy1Je7",5"fund_account": {6"id": "fa_F681qr6Bqy1Je7",7"entity": "fund_account",8"contact_id": "cont_F681qmU11CfPDl",9"contact": {10"id": "cont_F681qmU11CfPDl",11"entity": "contact",12"name": "Gaurav Kumar",13"contact": "9000090000",14"email": "gaurav.kumar@example.com",15"type": "employee",16"reference_id": "Acme Contact ID 12345",17"batch_id": null,18"active": true,19"notes": {20"notes_key_1": "Tea, Earl Grey, Hot",21"notes_key_2": "Tea, Earl Grey… decaf."22},23"created_at": 159292901624},25"account_type": "mobile",26"mobile": {27"number": "9876543210",28"account_holder_name": "Gaurav Kumar"29},30"vpa": {31"username": null,32"handle": "exampleupi",33"address": null,34},35"batch_id": null,36"active": true,37"created_at": 159292901638},39"amount": 1000,40"currency": "INR",41"notes": {42"notes_key_1": "Beam me up Scotty",43"notes_key_2": "Engage"44},45"fees": 59,46"tax": 9,47"status": "processed",48"purpose": "refund",49"utr": "UPI2928292020",50"mode": "UPI",51"reference_id": "Acme Transaction ID 12345",52"narration": "Acme Corp Fund Transfer",53"batch_id": null,54"status_details": null,55"created_at": 1592929017,56"fee_type": "",57"error": {58"description": null,59"source": null,60"reason": null61}62}