Skip to main content
POST
/
payout
/
v1.2
/
directTransfer
Direct Transfer V1.2
curl --request POST \
  --url https://payout-api.cashfree.com/payout/v1.2/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>"
  },
  "paymentInstrumentId": "<string>"
}'
"// 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 CodeStatusMessageNext Action
200SUCCESSTransfer completed successfully.-
201SUCCESSTransfer Scheduled for next working day.-
201PENDINGAwaiting confirmation from beneficiary bank.-
201PENDINGTransfer request pending at the bank.-
202PENDINGRequest received. Please check status after some time.-
400ERRORMultiple PaymentInstruments available for this payment mode.-
400ERRORSpecified paymentInstrumentId not valid for this payment mode.-
400ERRORSpecified paymentInstrumentId not available.Enter a different paymentInstrumentId.
400ERRORTransfer attempt failed at the bank.-
403ERRORToken is not validVerify the generated token
403ERRORIP not whitelistedWhitelist the IP address
403ERRORTransfer to this beneficiary not allowed.Enter different beneficiary details
403ERRORThis feature is not available for your account.
403ERRORTransfer mode is not available for your account.Enter a different transfer mode.
404ERRORBeneficiary does not exist.Enter a valid beneficiary ID.
409ERRORTransfer Id already exists.Enter a different transfer ID.
412ERRORToken missing in the request.Enter a valid token in the API request.
412ERRORBeneId missing in the request.Enter a valid beneficiary ID.
412ERRORAmount missing in the request.Enter a valid transfer amount.
412ERRORTransferId missing in the request.Enter a valid transfer ID.
412ERRORPlease wait 30 minutes after adding the beneficiary.-
412ERRORTransfer amount is less than minimum amount of Rs. 100.Enter a transfer amount that is equal to or more than Rs. 100.
412ERRORTransfer amount is greater than the maximum amount of Rs.100000.Enter a transfer amount that is equal to or less than Rs. 100000.
412ERRORTransfer limit for beneficiary exceeded.
412ERRORTransfer limit for your account exceeded.
412ERRORNot enough available balance in the account.Retry with sufficient balance in your account.
412ERRORInvalid Tag passed in the request.
412ERRORTransfer mode not enabled for the account.
412ERRORInvalid transfer mode passed in the request.
422ERRORInvalid amount passed.Enter a valid transfer amount.
422ERRORInvalid transferId passed.Enter a valid transferId.
422ERRORNo Payee Virtual Address associated with the beneficiary.
422ERRORRemarks can have only numbers, alphabets and whitespaces.
422ERRORBeneficiary details not valid.Enter valid beneficiary details.
422ERRORNo Bank account or IFSC associated with the beneficiary.Enter valid bank account details of the beneficiary.
422ERRORTransfer request to paytm wallet failed.
422ERRORInvalid IFSC code provided for bank account.Enter a valid IFSC for the provided bank account details.
422ERRORInvalid bank account number or IFSC provided.Enter valid bank account details.
520ERRORTransfer request triggered.No response from bank.

Headers

Authorization
string
required

Bearer auth token.

Content-Type
string
required

application/json

Body

application/json
amount
number
required

Amount to be transferred. Amount should be greater that INR 1.00. Decimals are allowed.

transferId
string
required

A unique ID to identify this transfer. Alphanumeric characters and underscores are allowed (40 character limit).

transferMode
string
required

It is the mode of transfer. Allowed values are: banktransfer, neft, imps, rtgs, upi, paytm, and amazonpay. The default transferMode is banktransfer.

beneDetails
object
required

Object with the beneficiary details to whom amount is to be transferred

paymentInstrumentId
string

Specify the fund source ID from where you want the amount to be debited.

Response

200

The response is of type any.