Skip to main content
POST
/
payout
/
validatePayout
Validate Payout
curl --request POST \
  --url https://api.cashfree.com/payout/validatePayout \
  --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_id": "123451XX",
  "vpa": "success@upi",
  "phone": "9999999999"
}
'
{
  "transfer_token": "9d37bc17-db08-476b-8206-f0f8ec9661ad",
  "vpa": "success@upi",
  "account_status": "VALID",
  "name_at_bank": "JOHN SNOW"
}

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

Identifies this validation attempt and the beneficiary to resolve on UPI. Send transfer_id plus exactly one of vpa or phone.

transfer_id
string
required

Unique ID for this transfer. Use only letters, numbers, hyphens, and underscores. Maximum 40 characters.

Example:

"123451XX"

vpa
string

Virtual Payment Address (VPA) on UPI to validate. In the request body, pass the value for exactly one of vpa or phone, not both.

Example:

"success@upi"

phone
string

Phone number used to resolve the beneficiary VPA on UPI. In the request body, pass the value for exactly one of phone or vpa, not both.

Example:

"9999999999"

Response

Always returns HTTP 200 when the request is accepted. Use account_status, transfer_token, and related fields to judge VPA validity and any advanced IFSC metadata.

Validation outcome: transfer token, account status, beneficiary name, and optional IFSC metadata when advanced responses are enabled.

transfer_token
string

Single-use token, valid for one hour, for the Process Validated Payout API. Empty string when account_status is INVALID.

vpa
string

Virtual Payment Address returned or confirmed for this validation.

account_status
enum<string>

Whether the resolved beneficiary account is VALID or INVALID for payout.

Available options:
VALID,
INVALID
name_at_bank
string

Present when account_status is VALID.

ifsc
string

Indian Financial System Code (IFSC), an 11-character identifier for a bank branch in India. Returned only when the response includes advanced VPA details (with ifsc_details).

ifsc_details
object

Branch metadata for the returned IFSC, including fields such as bank name, address, city, state, and which transfer rails (for example NEFT, IMPS, RTGS, UPI) are live. Returned only when the response includes advanced VPA details.