Skip to main content
Use this endpoint to create a payout to card using Composite Payout API, without saving the details.
Watch Out!Ensure you allowlist IPs and pass the idempotency key to make a successful payout.Payout to Cards is only available for PCI DSS compliant merchants. To enable the feature, raise a request on the RazorpayX Dashboard. Refer to the payouts to cards documentation.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.name
      • fund_account.contact.email
      • fund_account.contact.contact
      • fund_account.contact.type
      • fund_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 Update Contact API if you want to make changes to an existing contact.
  • Fund Account
    • A new fund account is created if any combination of the following details is unique:
      • fund_account.card.name
      • fund_account.card.number
      • fund_account.contact.name
      • fund_account.contact.email
      • fund_account.contact.contact
      • fund_account.contact.type
      • fund_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.
To understand the status of the payouts, refer to Payout Status Details.

Request

Curl

Response

Success

Parameters

account_numbermandatory : 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 RazorpayX Dashboard and go to My Account & Settings → Banking → Customer Identifier.
  • This value is different for Test Mode and Live Mode.
amount mandatory : integer The payout amount, in paise. For example, if you want to transfer ₹10000, pass 1000000. Minimum value is 100.currency mandatory : string The payout currency. Here, it is INR.modemandatory : string The mode to be used to create the payout. Available modes:
  • NEFT
  • RTGS
  • IMPS
  • UPI
  • card
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
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.
fund_account mandatory : object The account to which you want to make the payout.account_type mandatory : string The type of account linked to the contact id. Here, it will be card.card mandatory : object The details of the card used.input_type mandatory : string Here, the value is card.number mandatory : string Same field can accept card numbers or card tokens.name optional : string The name on the card.expiry_month optional : string The expiry month of the entered card.expiry_year optional : string The expiry year of the entered card.contact mandatory : object The Contact’s details.name mandatory : string Name of the contact. This field is case-sensitive. A minimum of 3 characters and a maximum of 50 characters are allowed. Name cannot end with a special character, except .. Supported characters: a-z, A-Z, 0-9, space, , - , _ , / , ( , ) and .. For example, Gaurav Kumar.email optional : string The contact’s email address. For example, gaurav.kumar@example.com.contact optional : string The contact’s phone number. For example, 9000090000.type optional : string Classification for the contact being created. For example, employee. Possible values: vendor, customer, employee, self.reference_id optional : string A user-generated reference given to the contact. For example, Acme Contact ID 12345. This field can have a maximum length of 40 characters.notes optional : object 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”.reference_id optional : string Maximum length is 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 optional : 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 optional : 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”.

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. fund_account : object Contact and fund account details to which the payout was made. id : string The unique identifier linked to the fund account. For example, fa_00000000000001. entity : string Here it will be fund_account. contact_id : string The unique identifier linked to the contact. For example, cont_00000000000001. contact : object Details of the contact to whom the payout is being made. id : string The unique identifier linked to the contact. For example, cont_00000000000001. entity : string The entity being created. Here, it will be contact. name : string The contact’s name. For example, Gaurav Kumar. contact : string The contact’s phone number. For example, 9000090000. email : string The contact’s email address. For example, gaurav.kumar@example.com. type : string Classification for the contact being created. For example, employee. Classifications are available by default:
  • vendor
  • customer
  • employee
  • self
reference_id : string A reference you entered for the contact. For example, Acme Contact ID 12345. batch_id : string This value is returned if the contact was created as part of a bulk upload. For example, batch_00000000000001. active : boolean Possible values:
  • true: active
  • false: inactive
notes : object User-entered notes for internal reference. This is a key-value pair. You can enter a maximum of 15 key-value pairs. For example, "note_key": "Beam me up Scotty”. created_at : integer Timestamp, in Unix, when the contact was created. For example, 1545320320. account_type : string The type of fund account being created. It can be a bank_account, vpa, card. bank_account : object The contact’s bank account details. ifsc : string Unique identifier of a bank branch. For example, HDFC0000053. bank_name : string The contact’s bank name. For example, HDFC. name : string Account holder’s name. For example,Gaurav Kumar. account_number : string Beneficiary account number. For example, 765432123456789. notes : object User-entered notes for internal reference. vpa : object The contact’s virtual payment address (VPA) details. username : string The user name from the virtual payment address. For example, gauravkumar. handle : string The handle from the virtual payment address. For example, exampleupi. address : string The virtual payment address. For example, gauravkumar@exampleupi. card : object Details of the credit card that is being used to create the fund account. name : string The credit card holder’s name. For example,Gaurav Kumar. last4 : string The last four digits of the credit card. For example, 0001. network : string The credit card issuing network. Possible values are:
  • Visa
  • Mastercard
  • American Express
  • Diners Club
type : string Currently, this can only be credit. issuer : string The name of bank that issued the card. For example, HDFC. Refer to the Supported Banks and Payout Modes section section for more details. batch_id : string This value is returned if the fund account was created as part of a bulk upload. For example, batch_00000000000001. active : boolean Possible values:
  • true: active
  • false: inactive
created_at : integer Timestamp, in Unix, when the fund account was created. For example, 1545320320. amount : integer Minimum value 100. The payout amount, in paise. For example, if you want to transfer ₹10,000, pass 1000000. The value passed here does not include fees and tax. Fee and tax, if any, is deducted from your account balance. currency : string The payout currency. Here, it is INR. notes : object User-entered notes for internal reference. This is a key-value pair. You can enter a maximum of 15 key-value pairs. 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 that is 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 payout status. Possible payout states: purpose : string The purpose of the payout. Classifications available by default:
  • refund
  • cashback
  • payout
  • salary
  • utility bill
  • vendor bill
utr : string The unique transaction number linked to a payout. For example, HDFCN00000000001. mode : string The mode used to make the payout. Refer to the Payouts section for more details. Available modes:
  • NEFT
  • RTGS
  • IMPS
  • UPI
  • card
reference_id : string A reference you entered for the payout. 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. If no value is passed for this parameter, it defaults to the Merchant Billing Label. 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. description : string A description for the error. For example, IMPS is not enabled on beneficiary account, please retry with different mode. source : string Possible values:
  • gateway: Technical error at Razorpay Partner bank.
  • beneficiary_bank: Technical error at beneficiary bank.
  • business: Merchant action required.
  • internal: Technical error at Razorpay’s server.
reason : string The error reason. For example, imps_not_allowed. Payout Status Details and Next Steps. created_at : integer Timestamp, in Unix, at which the payout was created. For example, 1545320320. fee_type : string Indicates the fee type charged for the payout. Possible value is free_payout.