Payouts

Lists the APIs to create, update and retrieve details of a payout in RazorpayX.


A payout is the transfer of funds from your business account to a contact's fund account.

Handy Tips

  • No OTP authorization is required when creating a payout using APIs.
  • You can improve payout processing times by creating fund accounts in advance.

You can try out our APIs on the Razorpay Postman Public Workspace.

Run in Postman

Create a Payout🔗

Bank Accounts🔗

Use the below endpoint to create a payout.

/payouts

Request Parameters🔗

account_numbermandatory
string The account from which you want to make the payout. For example, 7878780080316316.
  • Pass your virtual account number if you want money to be deducted from your virtual account.
  • 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 into your RazorpayX Dashboard and go to My Account & Settings → Banking → Account No..
fund_account_idmandatory
string The unique identifier linked to a fund account. For example, fa_00000000000001.
amountmandatory
integer The payout amount, in paise. For example, if you want to transfer ₹10,000, pass 1000000. Minimum value 100. Handy Tips
The value passed here does not include fees and tax. Fees and tax, if any, are deducted from your account balance.
currencymandatory
string The payout currency. Here, it is INR.
modemandatory
string The mode to be used to create the payout. Available modes:
  • NEFT
  • RTGS
  • IMPS
  • card

    Watch Out!
    The payout modes are case sensitive. When creating payouts using APIs, ensure payout modes are entered in upper case.
purposemandatory
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

    Handy Tips
    Additional purposes for payouts can be created via the Dashboard 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_balanceoptional
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_idoptional
string Maximum length 40 characters. 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.
narrationoptional
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.

Handy Tips
  • 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.
notesoptional
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 linked to the payout. 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. Handy Tips
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.
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 field is populated only when the payout moves to the processing state. For example, 5.
tax
integer 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.
status
string The status of the payout. Possible payout states:
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

    Watch Out!
    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

    Handy Tips
    Additional purposes for payouts can be created via the Dashboard and then used in the API. However, it is not possible to create a new purpose for the payout via the API.
reference_id
string Maximum length 40 characters. 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.
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.

Handy Tips
  • 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 parameter is populated 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.
created_at
integer Timestamp, in Unix, when the contact was created. For example, 1545320320.

VPA (UPI ID)🔗

Use the below endpoint to create a payout.

/payouts

Request Parameters🔗

account_numbermandatory
string The account from which you want to make the payout. For example, 7878780080316316.
  • Pass your virtual account number if you want money to be deducted from your virtual account.
  • 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 into your RazorpayX Dashboard and go to My Account & Settings → Banking → Account No..
fund_account_idmandatory
string The unique identifier linked to a fund account. For example, fa_00000000000001.
amountmandatory
integer The payout amount, in paise. For example, if you want to transfer ₹10,000, pass 1000000. Minimum value 100. Handy Tips
The value passed here does not include fees and tax. Fees and tax, if any, are deducted from your account balance.
currencymandatory
string The payout currency. Here, it is INR.
modemandatory
string The mode to be used to create the payout. Available modes:
  • UPI

    Watch Out!
    The payout modes are case sensitive. When creating payouts using APIs, ensure payout modes are entered in upper case.
purposemandatory
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

    Handy Tips
    Additional purposes for payouts can be created via the Dashboard 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_balanceoptional
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_idoptional
string Maximum length 40 characters. 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.
narrationoptional
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.

Handy Tips
  • 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.
notesoptional
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”.

Response Parameters🔗

id
string The unique identifier linked to the payout. 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 ₹10000, pass 1000000. Minimum value 100. Handy Tips
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.
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 field is populated only when the payout moves to the processing state. For example, 5.
tax
integer 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.
status
string The status of the payout. Possible payout states:
utr
string The unique transaction number linked to a payout. For example, HDFCN00000000001.
mode
string The mode used to make the payout. Available modes:
  • UPI

    Watch Out!
    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

    Handy Tips
    Additional purposes for payouts can be created via the Dashboard and then used in the API. However, it is not possible to create a new purpose for the payout via the API.
reference_id
string Maximum length 40 characters. 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.
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.

Handy Tips
  • 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 parameter is populated 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.
created_at
integer Timestamp, in Unix, when the contact was created. For example, 1545320320.

Fetch All Payouts🔗

Use the below endpoint to fetch details of all available payouts in the system.

Watch Out!
We DO NOT recommend using the Fetch Payout API to check the status of the payouts. Instead, we recommend that you subscribe to our Webhooks to get instant notifications.

/payouts?account_number={account number}

Path Parameters🔗

account_numbermandatory
string The account from which you want to make the payout. For example, 7878780080316316.
  • Pass your virtual account number if you want money to be deducted from your virtual account.
  • 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 into your RazorpayX Dashboard and go to My Account & Settings → Banking → Account No..

Query Parameter🔗

contact_id
string The unique identifier of the contact for which you want to fetch payouts. For example, cont_00000000000001.
fund_account_id
string The unique identifier of the fund account for which you want to fetch payouts. For example, fa_00000000000001.
mode
string The mode for which payouts are to be fetched. You can use one of the following payout modes:
  • NEFT
  • RTGS
  • IMPS
  • UPI
  • card
  • amazonpay

    Watch Out!
    The payout modes are case sensitive. Ensure payout modes are entered in upper case.
reference_id
string Maximum length 40 characters. The user-generated reference for which payouts are to be fetched. For example, Acme Transaction ID 12345.
status
string The payout status. Possible payout states:
from
integer Timestamp, in Unix, from when you want to fetch payouts.
to
integer Timestamp, in Unix, till when you want to fetch payouts.
count
integer Number of payouts to be fetched. Default value is 10. Maximum value is 100. This can be used for pagination, in combination with skip.
skip
integer Numbers of payouts to be skipped. Default value is 0. This can be used for pagination, in combination with count.

Fetch a Payout by ID🔗

Use the below endpoint to fetch details of the required payout.

/payouts/:id

Path Parameters🔗

idmandatory
string This is the unique identifier linked to the payout. For example, pout_00000000000001.

Cancel a Queued Payout🔗

Handy Tips
You can only cancel payouts that are in the queued state. It is not possible to cancel payouts that have any other status.

Use the below endpoint to cancel a payout.

/payouts/:id/cancel

Path Parameters🔗

idmandatory
string This is the unique identifier linked to the payout. For example, pout_00000000000001.
×