Skip to main content
POST
/
payout
/
transfers
Process Validated Payout
curl --request POST \
  --url https://api.cashfree.com/payout/transfers \
  --header 'Content-Type: <content-type>' \
  --header 'x-api-version: <x-api-version>' \
  --header 'x-client-id: <x-client-id>' \
  --header 'x-client-secret: <x-client-secret>' \
  --data '
{
  "transfer_amount": "1",
  "transfer_id": "JUNOB2018142",
  "transfer_token": "0ea4a02e-ff8d-42c1-8800-73711fdbff16",
  "transfer_mode": "upi",
  "transfer_remarks": "test",
  "fundsource_id": "YESB_CONNECTED"
}
'
{
  "transfer_id": "JUNOB2018142",
  "cf_transfer_id": "339",
  "status": "SUCCESS",
  "status_code": "COMPLETED",
  "status_description": "The transfer has been initiated via the partner bank successfully.",
  "beneficiary_details": {
    "beneficiary_id": "B_gewrtgfsdfgfsdf_V1ZYFF",
    "beneficiary_instrument_details": {
      "vpa": "sXXXXXs@upi"
    }
  },
  "currency": "",
  "transfer_amount": 1,
  "transfer_service_charge": 0,
  "transfer_service_tax": 0,
  "transfer_mode": "upi",
  "transfer_utr": "1732088013492889",
  "added_on": "2024-11-20T13:03:31",
  "updated_on": "2024-11-20T13:03:33"
}

Documentation Index

Fetch the complete documentation index at: https://www.cashfree.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Headers

x-client-id
string
required

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

Example:

"<CLIENT_ID>"

x-client-secret
string
required

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

Example:

"<CLIENT_SECRET>"

x-api-version
string
required

Payouts API version for this request.

Example:

"2024-01-01"

Content-Type
string
required

MIME type of the request or response content.

Example:

"application/json"

X-Request-Id
string

Request ID for the API call. Can be used to resolve tech issues. Communicate this in your tech related queries to Cashfree.

Body

application/json

Amount, transfer identifiers, mode, and optional remarks for a Process Validated Payout. The transfer_id and transfer_token must come from the same Validate Payout API call.

transfer_amount
string
required

Amount to transfer for the payout.

Example:

"1"

transfer_id
string
required

Must match the transfer_id from your preceding Validate Payout API request for this payout.

Example:

"JUNOB2018142"

transfer_token
string
required

Single-use transfer token from the Validate Payout API. Expires in one hour and is consumed when the payout is initiated.

Example:

"0ea4a02e-ff8d-42c1-8800-73711fdbff16"

transfer_mode
enum<string>
required

Transfer mode. With a transfer token, only upi is supported.

Available options:
upi
Example:

"upi"

transfer_remarks
string

Optional transfer remarks.

Example:

"test"

fundsource_id
string

Optional. Identifier of the connected bank account to use as the fund source.

Example:

"YESB_CONNECTED"

Response

Always returns HTTP 200 when the payout request is accepted. Use status and status_code for the lifecycle; other fields capture amounts, beneficiary context, bank reference, and timestamps.

Canonical payout payload after submission: merchant and Cashfree IDs, lifecycle fields, beneficiary snapshot, monetary lines, rail reference when present, and audit times.

transfer_id
string

Merchant-provided transfer ID.

cf_transfer_id
string

Cashfree internal transfer ID.

status
string

High-level status.

status_code
string

Detailed status code (RECEIVED, COMPLETED, etc.).

status_description
string

Defines the current processing state from Cashfree or the partner bank.

beneficiary_details
object

Beneficiary identifiers and instrument details (for example masked VPA) associated with this payout.

currency
string

ISO currency code for the payout amount (empty when not applicable).

transfer_amount
number

Payout amount in major currency units as recorded for this transfer.

transfer_service_charge
number

Service charge applied to this payout, if any.

transfer_service_tax
number

Tax on the service charge, if applicable.

transfer_mode
string

Channel used for the payout (for example upi when a transfer token was supplied).

transfer_utr
string

Bank or network unique transaction reference, when assigned.

added_on
string

Timestamp when Cashfree first recorded this payout request.

updated_on
string

Timestamp of the last status update for this payout.