Cashfree Payouts API
REST API for automating fund transfers to beneficiaries — vendors, employees, refund recipients, loan disbursements, and insurance claims. Supports batch payouts, beneficiary management, and connected banking.
REST API for automating fund transfers to beneficiaries — vendors, employees, refund recipients, loan disbursements, and insurance claims. Supports batch payouts, beneficiary management, and connected banking.
{
"openapi": "3.0.0",
"info": {
"version": "2024-01-01",
"title": "Cashfree Payout APIs",
"license": {
"name": "Apache 2.0",
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
},
"contact": {
"email": "[email protected]",
"name": "API Support",
"url": "https://discord.com/invite/QdZkNSxXsB"
},
"description": "Cashfree's Payout APIs provide developers with a streamlined pathway to integrate advanced payout capabilities into their applications, platforms and websites."
},
"externalDocs": {
"url": "https://api.cashfree.com/payout",
"description": "This url will have the information of all the APIs."
},
"servers": [
{
"url": "https://sandbox.cashfree.com/payout",
"description": "Sandbox server"
},
{
"url": "https://api.cashfree.com/payout",
"description": "Production server"
}
],
"tags": [
{
"name": "V2 Apis",
"description": "Collection of APIs to transfer funds to beneficiaries and manage beneficiaries."
}
],
"components": {
"securitySchemes": {
"XClientID": {
"type": "apiKey",
"in": "header",
"name": "x-client-id",
"description": "Client ID. You can find your app id in the [Merchant Dashboard](https://merchant.cashfree.com/payouts/developers/api-keys)."
},
"XClientSecret": {
"type": "apiKey",
"in": "header",
"name": "x-client-secret",
"description": "Client secret key. You can find your secret in the [Merchant Dashboard](https://merchant.cashfree.com/payouts/developers/api-keys)."
}
},
"schemas": {
"ErrorV2": {
"title": "Error",
"description": "Error Response for non-2XX cases",
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of the error received"
},
"code": {
"type": "string",
"description": "Code of the error received"
},
"message": {
"type": "string",
"description": "Detailed message explaining the response"
}
}
},
"Beneficiary": {
"title": "Create Beneficiary success response",
"description": "Contains the information of the created beneficiary",
"type": "object",
"properties": {
"beneficiary_id": {
"example": "JOHN18011343",
"type": "string",
"description": "It displays the unique Id you created to identify the beneficiary."
},
"beneficiary_name": {
"example": "John Doe",
"type": "string",
"description": "It displays the name of the beneficiary."
},
"beneficiary_instrument_details": {
"type": "object",
"description": "It displays the payment instrument details of the beneficiary.",
"properties": {
"bank_account_number": {
"example": "00111122233",
"type": "string",
"description": "It displays the bank account of the beneficiary."
},
"bank_ifsc": {
"example": "HDFC0000001",
"type": "string",
"description": "It displays the IFSC information of the beneficiary's bank account."
},
"vpa": {
"example": "test@upi",
"type": "string",
"description": "It displays the UPI VPA information of the beneficiary."
}
}
},
"beneficiary_contact_details": {
"type": "object",
"description": "It displays the contact details of the beneficiary.",
"properties": {
"beneficiary_email": {
"example": "[email protected]",
"type": "string",
"description": "It displays the email address of the beneficiary."
},
"beneficiary_phone": {
"example": "9876543210",
"type": "string",
"description": "It displays the phone number of the beneficiary without the country code."
},
"beneficiary_country_code": {
"example": "+91",
"type": "string",
"description": "It displays the country code of the beneficiary's phone number."
},
"beneficiary_address": {
"example": "177A Bleecker Street",
"type": "string",
"description": "It displays the address of the beneficiary."
},
"beneficiary_city": {
"example": "New York City",
"type": "string",
"description": "It displays the name of the city as present in the beneficiary's address."
},
"beneficiary_state": {
"example": "New York",
"type": "string",
"description": "It displays the name of the state as present in the beneficiary's address."
},
"beneficiary_postal_code": {
"example": "560001",
"type": "string",
"description": "It displays the PIN code as present in the beneficiary's address."
}
}
},
"beneficiary_status": {
"example": "VERIFIED",
"type": "string",
"enum": [
"VERIFIED",
"INVALID",
"INITIATED",
"CANCELLED",
"FAILED",
"DELETED"
],
"description": "It displays the current status of the beneficiary. Possible values are as follows\n- `VERIFIED`: Beneficiary is verified and is available for payouts\n- `INVALID`: Beneficiary is invalid\n- `INITIATED`: Beneficiary verification initiated\n- `CANCELLED`: Beneficiary verification cancelled\n- `FAILED`: Failed to verify beneficiary\n- `DELETED`: Beneficiary is deleted"
},
"added_on": {
"example": "2023-11-22T12:38:22Z",
"type": "string",
"description": "It displays the time of the addition of the beneficiary in UTC."
}
}
},
"CreateBeneficiaryRequest": {
"title": "Create Beneficiary request body",
"description": "Find the request parameters to create a beneficiary",
"type": "object",
"required": [
"beneficiary_id",
"beneficiary_name"
],
"properties": {
"beneficiary_id": {
"example": "JOHN18011343",
"type": "string",
"maxLength": 50,
"description": "It is the unique ID you create to identify the beneficiary. Alphanumeric, underscore ( _ ), pipe ( | ), and dot ( . ) are allowed."
},
"beneficiary_name": {
"example": "John Doe",
"type": "string",
"description": "It is the name of the beneficiary. The maximum character limit is 100. Only alphabets and whitespaces are allowed.",
"maxLength": 100
},
"beneficiary_instrument_details": {
"type": "object",
"description": "Beneficiary instrument details",
"properties": {
"bank_account_number": {
"example": "00111122233",
"type": "string",
"maxLength": 25,
"minLength": 4,
"description": "It is the beneficiary bank account number. The value should be between 9 and 18 characters. Alphanumeric characters are allowed. You need to input bank_ifsc if bank_account_number is passed."
},
"bank_ifsc": {
"example": "HDFC0000001",
"type": "string",
"description": "It is the IFSC information of the beneficiary's bank account in the standard IFSC format. The value should be 11 characters. (The first 4 characters should be alphabets, the 5th character should be a 0, and the remaining 6 characters should be numerals.). You need to input bank_account_number if bank_ifsc is passed."
},
"vpa": {
"example": "test@upi",
"type": "string",
"description": "It is the UPI VPA information of the beneficiary. Only valid UPI VPA information is accepted. It can be an Alphanumeric value with only period (.), hyphen (-), underscore ( _ ), and at the rate of (@). Hyphen (-) is accepted only before at the rate of (@)."
}
}
},
"beneficiary_contact_details": {
"type": "object",
"description": "It should contain the contact details of the beneficiary.",
"properties": {
"beneficiary_email": {
"example": "[email protected]",
"type": "string",
"maxLength": 200,
"description": "It is the email address of the beneficiary. The maximum character limit is 200. It should contain dot (.) and at the rate of (@)."
},
"beneficiary_phone": {
"example": "9876543210",
"type": "string",
"description": "It is the phone number of the beneficiary. Only reigstered Indian phone numbers are allowed. The value should be between 8 and 12 characters after stripping +91."
},
"beneficiary_country_code": {
"example": "+91",
"type": "string",
"description": "It is the country code (+91) of the beneficiary's phone number"
},
"beneficiary_address": {
"example": "177A Bleecker Street",
"type": "string",
"description": "It is the address information of the beneficiary."
},
"beneficiary_city": {
"example": "New York City",
"type": "string",
"description": "It is the name of the city as present in the beneficiary's address."
},
"beneficiary_state": {
"example": "New York",
"type": "string",
"description": "It is the name of the state as present in the beneficiary's address."
},
"beneficiary_postal_code": {
"example": "560001",
"type": "string",
"description": "It is the PIN code information as present in the beneficiary's address. The maximum character limit is 6. Only numbers are allowed."
}
}
}
}
},
"CreateTransferRequest": {
"title": "Standard Transfer V2",
"description": "Standard Transfer V2",
"type": "object",
"properties": {
"transfer_id": {
"type": "string",
"description": "It is the unique ID you create to identify the transfer. You can use a maximum of 40 characters to create a transfer_id. Alphanumeric and underscore ( _ ) are allowed.",
"maxLength": 40
},
"transfer_amount": {
"type": "number",
"format": "double",
"description": "It is the transfer amount. Decimal values are allowed. The minimum value should be equal to or greater than 1.00. (>= 1.00)"
},
"transfer_currency": {
"type": "string",
"description": "It is the currency of the transfer amount. The default value is INR."
},
"transfer_mode": {
"type": "string",
"description": "It is the mode of transfer. Allowed values are banktransfer, imps, neft, rtgs, upi, paytm, amazonpay, card. The default transfer_mode is banktransfer.",
"enum": [
"banktransfer",
"imps",
"neft",
"rtgs",
"upi",
"paytm",
"amazonpay",
"card",
"cardupi"
],
"maxLength": 20
},
"beneficiary_details": {
"type": "object",
"description": "It should contain the details of the beneficiary who receives the transfer amount.",
"properties": {
"beneficiary_id": {
"type": "string",
"description": "It is the unique ID you created to identify the beneficiary. Alphanumeric characters are allowed."
},
"beneficiary_name": {
"type": "string",
"description": "It is the name of the beneficiary. The maximum character limit is 100. Only alphabets and whitespaces are allowed. It is required if beneficiary_id is not present."
},
"beneficiary_instrument_details": {
"type": "object",
"description": "It should contain the details of where the beneficiary will receive the money. You input these details if you haven't added the beneficiary in the Payouts dashboard.",
"properties": {
"bank_account_number": {
"type": "string",
"description": "It is the beneficiary bank account number. The value should be between 9 and 18 characters. Alphanumeric characters are allowed. This value is required if beneficiary_id is not present and if the transfer_mode is banktransfer, imps, neft,rtgs mode."
},
"bank_ifsc": {
"type": "string",
"description": "It is the IFSC information of the beneficiary's bank account in the standard IFSC format. The value should be 11 characters. (The first 4 characters should be alphabets, the 5th character should be a 0, and the remaining 6 characters should be numerals.)"
},
"vpa": {
"type": "string",
"description": "It is the UPI VPA information of the beneficiary. Only valid UPI VPA information is accepted. It can be an Alphanumeric value with only period (.), hyphen (-), underscore ( _ ), and at the rate of (@). Hyphen (-) is accepted only before at the rate of (@). This value is required if the transfer_mode is upi."
},
"card_details": {
"type": "object",
"description": "It should contain the card details of the beneficiary.",
"properties": {
"card_token": {
"type": "string",
"description": "It is the tokenised card number or card token for this transfer."
},
"card_network_type": {
"type": "string",
"description": "It is the network type of the card - VISA/MASTERCARD.",
"enum": [
"VISA",
"MASTERCARD"
]
},
"card_cryptogram": {
"type": "string",
"description": "It is the formatted chip/cryptogram data relating to the token cryptogram. The maximum character limit is 600. It is optional for MASTERCARD and not required for VISA."
},
"card_token_expiry": {
"type": "string",
"description": "It is applicable only for MASTERCARD. The format for the valid token expiry date should be YYYY-MM. It cannot be null. Provide a valid tokenExpiry if collected from the customers. If unavailable, populate a static value with a forward year and month in the correct format (YYYY-MM). The maximum character limit is 10."
},
"card_type": {
"type": "string",
"description": "It is the type of the card. DEBIT and CREDIT are the only values allowed. The default value is CREDIT if the parameter does not exist or not specified."
},
"card_token_PAN_sequence_number": {
"type": "string",
"description": "A maximum of 3 alphanumeric characters are allowed. It is an optional parameter for MASTERCARD."
}
}
}
}
},
"beneficiary_contact_details": {
"type": "object",
"description": "It should contain the contact details of the beneficiary.",
"properties": {
"beneficiary_email": {
"type": "string",
"description": "It is the email address of the beneficiary. The maximum character limit is 200. It should contain dot (.) and at the rate of (@)."
},
"beneficiary_phone": {
"type": "string",
"description": "It is the phone number of the beneficiary. Only registered Indian phone numbers are allowed. The value should be between 8 and 12 characters after stripping +91."
},
"beneficiary_country_code": {
"type": "string",
"description": "It is the country code (+91) of the beneficiary's phone number."
},
"beneficiary_address": {
"type": "string",
"description": "It should contain the address of the beneficiary. The maximum character limit is 150. Alphanumeric characters and whitespaces are allowed."
},
"beneficiary_city": {
"type": "string",
"description": "It is the name of the city as present in the beneficiary address. The maximum character limit is 50. Alphanumeric characters and whitespaces are allowed."
},
"beneficiary_state": {
"type": "string",
"description": "It is the name of the state as present in the beneficiary address. The maximum character limit is 50. Alphanumeric characters and whitespaces are allowed."
},
"beneficiary_postal_code": {
"type": "string",
"description": "It is the PIN code as present in the address. It should be a 6 character numeric value."
}
}
}
}
},
"transfer_remarks": {
"type": "string",
"description": "It can contain any additional remarks for the transfer. Alphanumeric and whitespaces are allowed. The maximum character limit is 70.",
"maxLength": 70
},
"fundsource_id": {
"type": "string",
"description": "It is the ID of the fund source from which the transfer amount will be debited."
}
},
"required": [
"transfer_amount",
"transfer_id",
"beneficiary_details"
]
},
"CreateBatchTransferRequest": {
"title": "Batch Transfer V2",
"description": "Batch Transfer V2",
"type": "object",
"properties": {
"batch_transfer_id": {
"type": "string",
"description": "It is the unique ID you create to identify the batch transfer request. The maximum character limit is 60. Alphanumeric and underscore ( _ ) characters are allowed.",
"maxLength": 60
},
"transfers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"transfer_id": {
"type": "string",
"description": "It is the unique ID you create to identify the transfer. You can use a maximum of 40 characters to create a transfer_id. Alphanumeric and underscore ( _ ) are allowed.",
"maxLength": 40
},
"transfer_amount": {
"type": "number",
"format": "double",
"description": "It is the transfer amount. Decimal values are allowed. The minimum value should be equal to or greater than 1.00. (>= 1.00)"
},
"transfer_currency": {
"type": "string",
"description": "It is the currency of the transfer amount. The default value is INR."
},
"transfer_mode": {
"type": "string",
"description": "It is the mode of transfer. Allowed values are banktransfer, imps, neft, rtgs, upi, paytm, amazonpay, card. The default transfer_mode is banktransfer.",
"enum": [
"banktransfer",
"imps",
"neft",
"rtgs",
"upi",
"paytm",
"amazonpay",
"card",
"cardupi"
],
"maxLength": 20
},
"beneficiary_details": {
"type": "object",
"description": "It should contain the details of the beneficiary who receives the transfer amount.",
"properties": {
"beneficiary_id": {
"type": "string",
"description": "It is the unique ID you created to identify the beneficiary. Alphanumeric characters are allowed."
},
"beneficiary_name": {
"type": "string",
"description": "It is the name of the beneficiary. The maximum character limit is 100."
},
"beneficiary_instrument_details": {
"type": "object",
"description": "It should contain the details of where the beneficiary will receive the money. You input these details if you haven't added the beneficiary in the Payouts dashboard.",
"properties": {
"bank_account_number": {
"type": "string",
"description": "It is the beneficiary bank account number. The value should be between 9 and 18 characters. Alphanumeric characters are allowed. This value is required if beneficiary_id is not present and if the transfer_mode is banktransfer, imps, neft, rtgs mode."
},
"bank_ifsc": {
"type": "string",
"description": "It is the IFSC information of the beneficiary's bank account in the standard IFSC format. The value should be 11 characters. (The first 4 characters should be alphabets, the 5th character should be a 0, and the remaining 6 characters should be numerals.)"
},
"vpa": {
"type": "string",
"description": "It is the UPI VPA information of the beneficiary. Only valid UPI VPA information is accepted. It can be an Alphanumeric value with only period (.), hyphen (-), underscore ( _ ), and at the rate of (@). Hyphen (-) is accepted only before at the rate of (@). This value is required if the transfer_mode is upi."
}
}
},
"beneficiary_contact_details": {
"type": "object",
"description": "It should contain the contact details of the beneficiary.",
"properties": {
"beneficiary_email": {
"type": "string",
"description": "It is the email address of the beneficiary. The maximum character limit is 200. It should contain dot (.) and at the rate of (@)."
},
"beneficiary_phone": {
"type": "string",
"description": "It is the phone number of the beneficiary. Only registered Indian phone numbers are allowed. The value should be between 8 and 12 characters after stripping +91."
},
"beneficiary_country_code": {
"type": "string",
"description": "It is the country code (+91) of the beneficiary's phone number."
},
"beneficiary_address": {
"type": "string",
"description": "It should contain the address of the beneficiary. The maximum character limit is 150. Alphanumeric characters and whitespaces are allowed."
},
"beneficiary_city": {
"type": "string",
"description": "It is the name of the city as present in the beneficiary address. The maximum character limit is 50. Alphanumeric characters and whitespaces are allowed."
},
"beneficiary_state": {
"type": "string",
"description": "It is the name of the state as present in the beneficiary address. The maximum character limit is 50. Alphanumeric characters and whitespaces are allowed."
},
"beneficiary_postal_code": {
"type": "string",
"description": "It is the PIN code as present in the address. It should be a 6 character numeric value."
}
}
}
}
},
"transfer_remarks": {
"type": "string",
"description": "It can contain any additional remarks for the transfer. Alphanumeric and whitespaces are allowed. The maximum character limit is 70.",
"maxLength": 70
},
"fundsource_id": {
"type": "string",
"description": "It is the ID of the fund source from where you want to debit the transfer amount."
}
},
"required": [
"transfer_amount",
"transfer_id"
]
}
}
},
"required": [
"batch_transfer_id"
]
},
"CreateTransferResponse": {
"title": "Standard Transfer V2 Response",
"description": "Standard Transfer V2 Response",
"type": "object",
"properties": {
"transfer_id": {
"description": "It displays the unique ID you created to identify the transfer.",
"type": "string"
},
"cf_transfer_id": {
"description": "It displays the unique ID created by Cashfree Payments. You receive this ID in the response after initiating the standard transfer request.",
"type": "string"
},
"status": {
"description": "It displays the status of the transfer.",
"type": "string"
},
"beneficiary_details": {
"type": "object",
"description": "It displays the details of the beneficiary.",
"properties": {
"beneficiary_id": {
"description": "It displays the unique ID to identify the beneficiary to whom you initiated the transfer request.",
"type": "string"
},
"beneficiary_instrument_details": {
"type": "object",
"description": "It displays the details of where the beneficiary will receive the money.",
"properties": {
"bank_account_number": {
"type": "string",
"description": "It displays the bank account number of the beneficiary."
},
"ifsc": {
"type": "string",
"description": "It displays the IFSC information of the beneficiary's bank account."
},
"vpa": {
"type": "string",
"description": "It displays the UPI VPA information of the beneficiary."
}
}
}
}
},
"transfer_amount": {
"description": "It displays the transfer amount initiated in the request.",
"type": "number",
"format": "double"
},
"transfer_service_charge": {
"description": "It displays the service charge applicable for the successful transfer request.",
"type": "number",
"format": "double"
},
"transfer_service_tax": {
"description": "It displays the service tax applicable for the successful transfer request.",
"type": "number",
"format": "double"
},
"transfer_mode": {
"description": "It displays the mode of the transfer.",
"type": "string"
},
"transfer_utr": {
"description": "It displays the unique number that is generated to recognise any fund transfer that is created by the bank that facilitates the transfer.",
"type": "string"
},
"fundsource_id": {
"description": "It displays the ID of the fund source from where the money was debited for this transfer request.",
"type": "string"
},
"added_on": {
"description": "It displays the time of when the transfer request was added to the system.",
"type": "string"
},
"updated_on": {
"description": "It displays the updated time for the transfer.",
"type": "string"
}
}
},
"CreateBatchTransferResponse": {
"title": "Batch Transfer V2 Response",
"description": "Batch Transfer V2 Response",
"type": "object",
"properties": {
"batch_transfer_id": {
"type": "string",
"description": "It displays the unique ID you created to identify the batch transfer request."
},
"cf_batch_transfer_id": {
"type": "string",
"description": "It displays the unique ID created by Cashfree Payments. You receive this ID in the response after initiating the batch transfer request."
},
"status": {
"type": "string",
"description": "It displays the status of the API request."
}
}
},
"FetchBatchTransferResponse": {
"title": "Batch Transfer Status V2 Response",
"description": "Batch Transfer Status V2 Response",
"type": "object",
"properties": {
"batch_transfer_id": {
"description": "It displays the unique ID you created to identify the batch transfer.",
"type": "string"
},
"cf_batch_transfer_id": {
"description": "It displays the unique ID created by Cashfree Payments. You receive this ID in the response after initiating the batch transfer request.",
"type": "string"
},
"status": {
"description": "It displays the status of the batch transfer.",
"type": "string"
},
"transfers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CreateTransferResponse"
}
}
}
},
"inline_response_401": {
"type": "object",
"properties": {
"status": {
"type": "string",
"example": "ERROR"
},
"subCode": {
"type": "string",
"example": "401"
},
"message": {
"type": "string",
"example": "Invalid clientId and clientSecret combination"
}
}
},
"inline_response_200_10": {
"type": "object",
"properties": {
"status": {
"type": "string",
"example": "SUCCESS"
},
# --- truncated at 32 KB (127 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cashfree/refs/heads/main/openapi/openapi-payouts.json