Skip to main content
POST
/
payout
/
v1
/
requestAsyncTransfer
Standard Transfer Async
curl --request POST \
  --url https://payout-api.cashfree.com/payout/v1/requestAsyncTransfer \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: <content-type>' \
  --data '{
  "beneId": "<string>",
  "amount": 123,
  "transferId": "<string>",
  "transferMode": "<string>",
  "remarks": "<string>"
}'
"{\n    \"status\": \"ACCEPTED\",\n    \"subCode\": \"201\",\n    \"message\": \"Transfer Initiated\",\n    \"data\": {\n        \"referenceId\": \"107260\"\n    }\n}"
This API will be retired soon. Please plan to migrate to the latest version, Transfers V2.
Once you trigger the requestAsyncTransfer API, Cashfree Payments verifies your request and returns the Cashfree referenceId. The transfer to beneficiary account will be attempted within the next 60 seconds and you may query the transfer status after 60 seconds. Use this API to process very high volumes. Benefits:
  1. The API response is much faster for the async transfer endpoint. The async transfer response takes <100 ms as compared to a median value of 2-5 sec for the sync payout transfer API.
  2. The asynchronous API can handle a higher TPM (transactions per minute) as compared to the synchronous API. The async API allows us to handle up to 1000 transactions per minute.
Please use this Authorization token in headers to call any payout API (Refresh this page if the token is expired)
Sub CodeStatusMessage
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.
403ERRORToken is not valid
403ERRORIP not whitelisted
403ERRORThis feature is not available for your account.
403ERRORTransfer mode is not available for your account.
412ERRORToken missing in the request.
412ERRORBeneId missing in the request.
412ERRORAmount missing in the request.
412ERRORTransferId missing in the request.
422ERRORInvalid amount passed.
422ERRORInvalid transferId passed.
422ERRORNo Payee Virtual Address associated with the beneficiary.
422ERRORRemarks can have only numbers, alphabets and whitespaces.
409ERRORTransfer Id already exists.
404ERRORBeneficiary does not exist.
422ERRORBeneficiary details not valid.
422ERRORNo Bank account or IFSC associated with the beneficiary.
412ERRORNot enough available balance in the account.
412ERRORPlease wait 30 minutes after adding the beneficiary.
412ERRORTransfer amount is less than minimum amount of Rs. 100.
412ERRORTransfer amount is greater than the maximum amount of Rs.100000.
422ERRORInvalid IFSC code provided for bank account.
422ERRORInvalid bank account number or IFSC provided.
422ERRORTransfer request to paytm wallet failed.
400/520ERRORTransfer attempt failed at the bank.
520ERRORTransfer request triggered.No response from bank.
403ERRORTransfer to this beneficiary not allowed.
412ERRORTransfer limit for beneficiary exceeded.
412ERRORTransfer limit for your account exceeded.
412ERRORInvalid transfer mode passed in the request.
412ERRORTransfer mode not enabled for the account.
412ERRORInvalid Tag passed in the request.

Headers

Authorization
string
required

Bearer auth token

Content-Type
string
required

application/json

Body

application/json
beneId
string
required

Beneficiary ID. Alphanumeric characters allowed.

amount
number
required

Amount to be transferred. Decimal allowed (>= 1.00)

transferId
string
required

A unique id to identify this transfer. Alphanumeric and underscore (_) allowed (40 character limit).

transferMode
string

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

remarks
string

Additional remarks, if any. alphanumeric and white spaces allowed (70 characters limit)

Response

200

status
string
Example:

"ACCEPTED"

subCode
string
Example:

"201"

message
string
Example:

"Transfer Initiated"

data
object