Skip to main content
POST
Get Transfer Detail/Status
Use the Get Transfer Details API to get the details of the transfer request.
OTP verification
Call Verify Transfer OTP with the OTP before the transfer is sent for bank processing.

4XX errors


Authorizations

x-client-id
string
header
required

Your unique client identifier issued by Cashfree. You can find this in your Merchant Dashboard.

x-client-secret
string
header
required

The secret key associated with your client ID. Use this to authenticate your API requests. You can find this in your Merchant Dashboard.

Headers

x-api-version
string
default:2025-11-01
required

API version to be used. Format is in YYYY-MM-DD.

Example:

"2025-11-01"

Body

application/json

Request parameters to initiate a transfer from a user's sub-wallet to a beneficiary.

user_id
string
required

Unique identifier for the user, as provided by you during PPI user creation. Only alphanumeric characters, periods (.), hyphens (-), and underscores (_) are allowed.

Required string length: 1 - 50
Example:

"USER827364"

wallet_id
string
required

Unique identifier for the wallet, as provided by you during wallet creation. Only alphanumeric characters, periods (.), hyphens (-), and underscores (_) are allowed.

Required string length: 1 - 50
Example:

"WALLET936721"

cf_sub_wallet_id
string
required

Unique identifier of the sub-wallet from which the amount will be transferred. Only numeric characters are allowed.

Required string length: 1 - 19
Example:

"35246543210987654321"

transfer_id
string
required

Unique identifier that you create to identify the transfer transaction in your system. Only alphanumeric characters, periods (.), hyphens (-), and underscores (_) are allowed.

Required string length: 1 - 50
Example:

"TRANSFER123456"

amount
number<double>
required

Amount to transfer. Decimal values are allowed. The minimum value should be equal to or greater than 1.00 (>= 1.00).

Required range: x >= 1
Example:

1250.5

transfer_mode
enum<string>
required

Mode of transfer:

  • RTGS: Real Time Gross Settlement (for amounts ≥ ₹2 lakhs)
  • NEFT: National Electronic Funds Transfer
  • IMPS: Immediate Payment Service
  • UPI: Unified Payments Interface
Available options:
RTGS,
NEFT,
IMPS,
UPI
Example:

"IMPS"

bene_details
object
required

Beneficiary details for the transfer. Either use existing beneficiary (bene_id + bene_instrument_id) or provide new instrument details.

auth
object
required

Authentication for the transfer. When mode is OTP_VERIFICATION, Cashfree generates an OTP and delivers it to the end user on the channels listed in data.notification_modes.

purpose
string

Purpose of the transfer. Common values:

  • BUSINESS: Business transactions
  • PERSONAL: Personal transfers
  • REFUND: Refund payments
  • OTHER: Other purposes
Maximum string length: 50
Example:

"SALARY"

remarks
string

Additional remarks for the transfer. Alphanumeric and whitespaces are allowed.

Maximum string length: 500
Example:

"Monthly groceries transfer"

notes
object

Optional key-value pairs for any extra information. Keys and values must be strings. The following constraints apply:

  • Maximum 10 entries.
  • Keys: maximum 50 characters. Alphanumeric characters, underscores (_), periods (.), commas (,), single quotes ('), ampersands (&), hyphens (-), and spaces are allowed.
  • Values: maximum 200 characters. Same character set as keys.

Response

Success response for initiating a wallet transfer.

Response for Initiate Transfer.

user_id
string

Unique identifier for the user, as provided by you during PPI user creation.

Example:

"USER827364"

wallet_id
string

Unique identifier for the wallet, as provided by you during wallet creation.

Example:

"WALLET936721"

cf_transfer_id
string

Unique identifier for the transfer transaction, generated by Cashfree.

Example:

"8901234567890123456"

transfer_id
string

Unique identifier for the transfer transaction, as provided by you during the transfer request.

Example:

"TRANSFER123456"

amount
number<double>

Amount to be transferred.

Example:

1250.5

transfer_mode
enum<string>

Mode of transfer used.

Available options:
RTGS,
NEFT,
IMPS,
UPI
Example:

"IMPS"

sub_wallet
object
status
enum<string>

Status of the transfer operation.

Available options:
RECEIVED,
PENDING,
SUCCESS,
FAILED,
REJECTED,
VALIDATION_PENDING,
REVERSED,
APPROVAL_PENDING,
QUEUED,
MANUALLY_REJECTED
Example:

"RECEIVED"

bank_ref_no
string | null

Bank reference number for the transfer. Will be null if transfer is not yet processed.

Example:

"BNK202502101530001"

status_code
string

Status code for detailed tracking of transfer progress.

Example:

"RECEIVED"

bene_details
object

Beneficiary details used for the transfer.

auth
object

Authentication for the transfer. When mode is OTP_VERIFICATION, Cashfree generates an OTP and delivers it to the end user on the channels listed in data.notification_modes.

purpose
string

Purpose of the transfer.

Example:

"SALARY"

remarks
string

Remarks for the transfer transaction.

Example:

"Monthly groceries transfer"

notes
object

Optional key-value pairs for any extra information. Keys and values must be strings. The following constraints apply:

  • Maximum 10 entries.
  • Keys: maximum 50 characters. Alphanumeric characters, underscores (_), periods (.), commas (,), single quotes ('), ampersands (&), hyphens (-), and spaces are allowed.
  • Values: maximum 200 characters. Same character set as keys.
initiated_at
string<date-time>

Timestamp when the transfer transaction was initiated.

Example:

"2025-09-02T10:15:30Z"

processed_at
string<date-time> | null

Timestamp when the transfer transaction was processed. Will be null if still pending.

Example:

"2025-09-02T10:17:45Z"