v2025-01-01
- Overview
- Orders
- Payments
- Payment Links
- Refunds
- Customers
- Payment Methods
- Offers
- Settlements
- Simulation
- Utilities
Direct Transfer
Use this API to initiate amount transfers directly to the beneficiary account via a bank transfer or UPI. You can add the beneficiary details in the same API request.
POST
/
payout
/
v1
/
directTransfer
Copy
curl --request POST \
--url https://payout-api.cashfree.com/payout/v1/directTransfer \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '{
"amount": 123,
"transferId": "<string>",
"transferMode": "<string>",
"beneDetails": {
"bankAccount": "<string>",
"ifsc": "<string>",
"name": "<string>",
"phone": "<string>",
"email": "<string>",
"vpa": "<string>",
"address1": "<string>"
}
}'
Copy
"// case 1 PENDING\n{\n \"status\": \"PENDING\",\n \"subCode\": \"201\",\n \"message\": \"Transfer request pending at the bank\",\n \"data\": {\n \"referenceId\": \"23457526\",\n \"utr\": \"\",\n \"acknowledged\": 0\n }\n}\n\n// Case 2 SUCCESS\n{\n \"status\":\"SUCCESS\", \n \"subCode\":\"200\", \n \"message\":\"Transfer completed successfully\", \n \"data\": \n {\n \"referenceId\":\"10023\",\n \"utr\":\"P16111765023806\",\n \"acknowledged\": 1\n }\n}\n\n// Case 3 ERROR\n\n{\n \"status\": \"ERROR\",\n \"subCode\": \"400\",\n \"message\": \"Transfer Id already exists\"\n}\n"
This API will be retired soon. Please plan to migrate to the latest version, Transfers V2.
Please use this Authorization token in headers to call any payout API (Refresh this page if the token is expired)
Sub Code | Status | Message | Next Action |
---|---|---|---|
200 | SUCCESS | Transfer completed successfully. | - |
201 | SUCCESS | Transfer Scheduled for next working day. | - |
201 | PENDING | Awaiting confirmation from beneficiary bank. | - |
201 | PENDING | Transfer request pending at the bank. | - |
202 | PENDING | Request received. Please check status after some time. | - |
400/520 | ERROR | Transfer attempt failed at the bank. | - |
403 | ERROR | Token is not valid | Verify the generated token. |
403 | ERROR | IP not whitelisted | Whitelist the IP address. |
403 | ERROR | This feature is not available for your account. | - |
403 | ERROR | Transfer mode is not available for your account. | Enter a different transfer mode. |
403 | ERROR | Transfer to this beneficiary not allowed. | Enter different beneficiary details. |
404 | ERROR | Beneficiary does not exist. | Enter a valid beneficiary ID. |
409 | ERROR | Transfer Id already exists. | Enter a different transfer ID. |
412 | ERROR | Token missing in the request. | Enter a valid token in the API request. |
412 | ERROR | BeneId missing in the request. | Enter a valid beneficiary ID. |
412 | ERROR | Amount missing in the request. | Enter a valid transfer amount. |
412 | ERROR | TransferId missing in the request. | Enter a valid transfer ID. |
412 | ERROR | Invalid Tag passed in the request. | |
412 | ERROR | Invalid transfer mode passed in the request. | |
412 | ERROR | Transfer mode not enabled for the account. | |
412 | ERROR | Transfer limit for your account exceeded. | |
412 | ERROR | Transfer limit for beneficiary exceeded. | |
412 | ERROR | Not enough available balance in the account. | Retry with sufficient balance in your account. |
412 | ERROR | Please wait 30 minutes after adding the beneficiary. | - |
412 | ERROR | Transfer amount is less than minimum amount of Rs. 100. | Enter a transfer amount that is equal to or more than Rs. 100. |
412 | ERROR | Transfer amount is greater than the maximum amount of Rs.100000. | Enter a transfer amount that is equal to or less than Rs. 100000. |
422 | ERROR | Invalid IFSC code provided for bank account. | Enter a valid IFSC for the provided bank account details. |
422 | ERROR | Invalid bank account number or IFSC provided. | Enter valid bank account details. |
422 | ERROR | Transfer request to paytm wallet failed. | |
422 | ERROR | No Bank account or IFSC associated with the beneficiary. | Enter valid bank account details of the beneficiary. |
422 | ERROR | Invalid transferId passed. | Enter a valid transferId. |
422 | ERROR | Beneficiary details not valid. | Enter valid beneficiary details. |
422 | ERROR | Remarks can have only numbers, alphabets and whitespaces. | - |
422 | ERROR | Invalid amount passed. | Enter a valid transfer amount. |
422 | ERROR | No Payee Virtual Address associated with the beneficiary. | |
520 | ERROR | Transfer request triggered.No response from bank. |
Body
application/json
Response
200
application/json
200
The response is of type any
.
Copy
curl --request POST \
--url https://payout-api.cashfree.com/payout/v1/directTransfer \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '{
"amount": 123,
"transferId": "<string>",
"transferMode": "<string>",
"beneDetails": {
"bankAccount": "<string>",
"ifsc": "<string>",
"name": "<string>",
"phone": "<string>",
"email": "<string>",
"vpa": "<string>",
"address1": "<string>"
}
}'
Copy
"// case 1 PENDING\n{\n \"status\": \"PENDING\",\n \"subCode\": \"201\",\n \"message\": \"Transfer request pending at the bank\",\n \"data\": {\n \"referenceId\": \"23457526\",\n \"utr\": \"\",\n \"acknowledged\": 0\n }\n}\n\n// Case 2 SUCCESS\n{\n \"status\":\"SUCCESS\", \n \"subCode\":\"200\", \n \"message\":\"Transfer completed successfully\", \n \"data\": \n {\n \"referenceId\":\"10023\",\n \"utr\":\"P16111765023806\",\n \"acknowledged\": 1\n }\n}\n\n// Case 3 ERROR\n\n{\n \"status\": \"ERROR\",\n \"subCode\": \"400\",\n \"message\": \"Transfer Id already exists\"\n}\n"
Assistant
Responses are generated using AI and may contain mistakes.