Skip to main content
POST
/
beneficiary
curl --request POST \
--url https://sandbox.cashfree.com/payout/beneficiary \
--header 'Content-Type: application/json' \
--header 'x-api-version: <x-api-version>' \
--header 'x-client-id: <api-key>' \
--header 'x-client-secret: <api-key>' \
--data '{
"beneficiary_id": "JOHN18011343",
"beneficiary_name": "John Doe",
"beneficiary_instrument_details": {
"bank_account_number": "1223334444",
"bank_ifsc": "HDFC0000001",
"vpa": "test@upi"
},
"beneficiary_contact_details": {
"beneficiary_email": "sample@cashfree.com",
"beneficiary_phone": "9876543210",
"beneficiary_country_code": "+91",
"beneficiary_address": "177A Bleecker Street",
"beneficiary_city": "New York City",
"beneficiary_state": "New York",
"beneficiary_postal_code": "560011"
}
}'
{
"beneficiary_id": "JOHN18011343",
"beneficiary_name": "John Doe",
"beneficiary_instrument_details": {
"bank_account_number": "1223334444",
"bank_ifsc": "HDFC0000001",
"vpa": "test@upi"
},
"beneficiary_contact_details": {
"beneficiary_email": "sample@cashfree.com",
"beneficiary_phone": "9876543210",
"beneficiary_country_code": "+91",
"beneficiary_address": "177A Bleecker Street",
"beneficiary_city": "New York City",
"beneficiary_state": "New York",
"beneficiary_postal_code": "560011"
},
"beneficiary_status": "VERIFIED",
"added_on": "2023-12-04T15:50:00Z"
}
Note: Cashfree no longer support adding beneficiaries with Paytm UPI handles.
HTTP Status CodeError CodeMessageNext Action
201---
400beneficiary_id_length_exceededbeneficiary_id : should not be more than 50 characters long. value received: test_bene_idEnter a valid beneficiary_id.
400beneficiary_id_invalidbeneficiary_id : should contain only letters, numbers, hyphen, underscore, pipe, and dot. Value received: .\qewqefwqevEnter a valid beneficiary_id.
400bank_ifsc_missingbank_ifsc : should be provided with the request if bank_account_number is providedProvide a valid bank_ifsc if bank_account_number is provided.
400bank_account_number_missingbank_account_number: should be provided with the request if bank_ifsc is providedProvide a valid bank_account_number is bank_ifsc is provided.
400bank_account_number_length_exceededbank_account_number : should not be more than 25 characters long. value received: 235142352346523462456345263452345Provide a valid bank_account_number.
400bank_account_number_length_shortbank_account_number : should not be less than 4 characters long. value received: 12Provide a valid bank_account_number.
400bank_account_number_invalidbank_account_number : should be alphanumeric. value received: 123@Provide a valid bank_account_number.
400bank_ifsc_invalidbank_ifsc : please provide a valid IFSC. value received: SBIN00708410Provide a valid bank_ifsc.
400beneficiary_purpose_invalidbeneficiary_purpose : invalid value provided. Value received: paytmProvide a valid beneficiary_purpose.
409beneficiary_id_already_existsBeneficiary already exists with the given beneficiary_idProvide a beneficiary_id that is not in use
409beneficiary_already_existsBeneficiary already exists with the given bank_account_number and bank_ifscUse the GET API to get the details of the existing beneficiary using bank_account_number and bank_ifsc
422bank_account_number_same_as_sourcebank_account_number provided is the same as source bank accountEnter a bank_account_number that is different from the source bank account
422vba_beneficiary_not_allowedVirtual bank account as bank_account_number for the beneficiary is not allowedEnter the actual bank_account_number instead of the virtual account number

Authorizations

x-client-id
string
header
required

Client ID. You can find your app id in the Merchant Dashboard.

x-client-secret
string
header
required

Client secret key. You can find your secret in the Merchant Dashboard.

Headers

x-api-version
string
default:2024-01-01
required

It is the API version to be used. The accepted format is YYYY-MM-DD.

x-request-id
string

It is the request ID for the API call. This ID can be used to resolve tech realted issues. Communicate this in your tech related queries to Cashfree Payments.

x-cf-signature
string

Signature to be sent if IP is not whitelisted

Body

application/json

Find the request parameters to create a beneficiary

beneficiary_id
string
required

It is the unique ID you create to identify the beneficiary. Alphanumeric, underscore ( _ ), pipe ( | ), and dot ( . ) are allowed.

Maximum length: 50
Example:

"JOHN18011343"

beneficiary_name
string
required

It is the name of the beneficiary. The maximum character limit is 100. Only alphabets and whitespaces are allowed.

Maximum length: 100
Example:

"John Doe"

beneficiary_instrument_details
object

Beneficiary instrument details

beneficiary_contact_details
object

It should contain the contact details of the beneficiary.

Response

OK

Contains the information of the created beneficiary

beneficiary_id
string

It displays the unique Id you created to identify the beneficiary.

Example:

"JOHN18011343"

beneficiary_name
string

It displays the name of the beneficiary.

Example:

"John Doe"

beneficiary_instrument_details
object

It displays the payment instrument details of the beneficiary.

beneficiary_contact_details
object

It displays the contact details of the beneficiary.

beneficiary_status
enum<string>

It displays the current status of the beneficiary. Possible values are as follows

  • VERIFIED: Beneficiary is verified and is available for payouts
  • INVALID: Beneficiary is invalid
  • INITIATED: Beneficiary verification initiated
  • CANCELLED: Beneficiary verification cancelled
  • FAILED: Failed to verify beneficiary
  • DELETED: Beneficiary is deleted
Available options:
VERIFIED,
INVALID,
INITIATED,
CANCELLED,
FAILED,
DELETED
Example:

"VERIFIED"

added_on
string

It displays the time of the addition of the beneficiary in UTC.

Example:

"2023-11-22T12:38:22Z"