Cashfree Payments Transfers v2 API
The Transfers v2 API from Cashfree Payments — 2 operation(s) for transfers v2.
The Transfers v2 API from Cashfree Payments — 2 operation(s) for transfers v2.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/cashfree-transfers-v2-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: '2025-01-01'
title: Cashfree Payment Gateway APIs Authorize Transfers v2 API
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
contact:
email: developers@cashfree.com
name: API Support
url: https://discord.com/invite/QdZkNSxXsB
description: Cashfree's Payment Gateway APIs provide developers with a streamlined pathway to integrate advanced payment processing capabilities into their applications, platforms and websites.
servers:
- url: https://sandbox.cashfree.com/pg
description: Sandbox server
- url: https://api.cashfree.com/pg
description: Production server
tags:
- name: Transfers v2
paths:
/transfers:
post:
summary: Standard Transfer V2
x-mcp:
enabled: true
config:
elicitation:
$ref: '#/components/x-elicitationConfig/createTransfer'
description: Use this API to initiate an amount transfer at Cashfree Payments. It is an async request by default.
tags:
- Transfers v2
operationId: PayoutInitiateTransfer
deprecated: false
security:
- XClientID: []
XClientSecret: []
parameters:
- $ref: '#/components/parameters/apiVersionHeader'
- $ref: '#/components/parameters/xRequestIDHeader'
requestBody:
description: Find the request parameters of the API request to transfer money to a beneficiary.
content:
application/json:
schema:
$ref: '#/components/schemas/CreateTransferRequest'
examples:
transfer_request:
$ref: '#/components/examples/transfer_request_v2'
transfer_request_with_bene_details:
$ref: '#/components/examples/transfer_request_v2_with_bene_details'
transfer_request_with_card_details:
$ref: '#/components/examples/transfer_request_v2_with_card_details'
transfer_request_with_fundsource_id:
$ref: '#/components/examples/transfer_request_v2_fundsource_id'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CreateTransferResponse'
examples:
transfer_received_response_v2:
$ref: '#/components/examples/transfer_received_response_v2'
transfer_pending_approval_response_v2:
$ref: '#/components/examples/transfer_pending_approval_response_v2'
transfer_pending_response_v2:
$ref: '#/components/examples/transfer_pending_response_v2'
transfer_completed_response:
$ref: '#/components/examples/transfer_completed_response_v2'
transfer_failed_response_v2:
$ref: '#/components/examples/transfer_failed_response_v2'
transfer_rejected_response_v2:
$ref: '#/components/examples/transfer_rejected_response_v2'
headers:
x-api-version:
$ref: '#/components/headers/x-api-version'
x-ratelimit-limit:
$ref: '#/components/headers/x-ratelimit-limit'
x-ratelimit-remaining:
$ref: '#/components/headers/x-ratelimit-remaining'
x-ratelimit-retry:
$ref: '#/components/headers/x-ratelimit-retry'
x-request-id:
$ref: '#/components/headers/x-request-id'
'400':
description: invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorV2'
examples:
transfer_id_missing:
$ref: '#/components/examples/transfer_id_missing'
transfer_id_invalid:
$ref: '#/components/examples/transfer_id_invalid'
transfer_amount_invalid:
$ref: '#/components/examples/transfer_amount_invalid'
transfer_amount_missing:
$ref: '#/components/examples/transfer_amount_missing'
transfer_mode_invalid:
$ref: '#/components/examples/transfer_mode_invalid'
beneficiary_id_invalid:
$ref: '#/components/examples/beneficiary_id_invalid'
beneficiary_name_invalid:
$ref: '#/components/examples/beneficiary_name_invalid'
beneficiary_bank_account_invalid:
$ref: '#/components/examples/beneficiary_bank_account_invalid'
beneficiary_bank_account_invalid_2:
$ref: '#/components/examples/beneficiary_bank_account_invalid_2'
beneficiary_bank_ifsc_invalid:
$ref: '#/components/examples/beneficiary_bank_ifsc_invalid'
beneficiary_bank_ifsc_invalid_2:
$ref: '#/components/examples/beneficiary_bank_ifsc_invalid_2'
beneficiary_vpa_invalid:
$ref: '#/components/examples/beneficiary_vpa_invalid'
beneficiary_vpa_invalid_2:
$ref: '#/components/examples/beneficiary_vpa_invalid_2'
'403':
description: Forbidden error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorV2'
examples:
APIDisabled:
$ref: '#/components/examples/APIsDisabledExampleV2'
'404':
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorV2'
examples:
APIDisabled:
$ref: '#/components/examples/BeneficiaryNotFoundV2'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorV2'
examples:
APIDisabled:
$ref: '#/components/examples/internal_server_error_v2'
AuthenticationError:
$ref: '#/components/examples/authentication_internal_server_error'
get:
summary: Get Transfer Status V2
x-mcp:
enabled: true
description: Use this API to get the status of the initiated transfer. You can use either the transfer_id or cf_transfer_id to fetch the details.
tags:
- Transfers v2
operationId: PayoutFetchTransfer
deprecated: false
security:
- XClientID: []
XClientSecret: []
parameters:
- $ref: '#/components/parameters/apiVersionHeader'
- $ref: '#/components/parameters/xRequestIDHeader'
- in: query
name: cf_transfer_id
description: It is the unique ID created by Cashfree Payments. You receive it in the response of the initiated standard transfer request. (Either cf_transfer_id or transfer_id is mandatory)
example: '10023'
schema:
type: string
- in: query
name: transfer_id
description: It is the unique ID you created to identify the standard transfer request.
example: Sample_test
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CreateTransferResponse'
examples:
transfer_received_response_v2:
$ref: '#/components/examples/transfer_received_response_v2'
transfer_pending_approval_response_v2:
$ref: '#/components/examples/transfer_pending_approval_response_v2'
transfer_pending_response_v2:
$ref: '#/components/examples/transfer_pending_response_v2'
transfer_completed_response:
$ref: '#/components/examples/transfer_completed_response_v2'
transfer_failed_response_v2:
$ref: '#/components/examples/transfer_failed_response_v2'
transfer_rejected_response_v2:
$ref: '#/components/examples/transfer_rejected_response_v2'
transfer_reversed_response_v2:
$ref: '#/components/examples/transfer_reversed_response_v2'
headers:
x-api-version:
$ref: '#/components/headers/x-api-version'
x-ratelimit-limit:
$ref: '#/components/headers/x-ratelimit-limit'
x-ratelimit-remaining:
$ref: '#/components/headers/x-ratelimit-remaining'
x-ratelimit-retry:
$ref: '#/components/headers/x-ratelimit-retry'
x-request-id:
$ref: '#/components/headers/x-request-id'
'403':
description: Forbidden error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorV2'
examples:
APIDisabled:
$ref: '#/components/examples/APIsDisabledExampleV2'
'404':
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorV2'
examples:
CfTransferIdNotFound:
$ref: '#/components/examples/cf_transfer_id_not_found'
TransferIdNotFound:
$ref: '#/components/examples/transfer_id_not_found'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorV2'
examples:
APIDisabled:
$ref: '#/components/examples/internal_server_error_v2'
AuthenticationError:
$ref: '#/components/examples/authentication_internal_server_error'
/transfers/batch:
post:
summary: Batch Transfer V2
x-mcp:
enabled: true
description: Use this API to initiate a batch transfer request at Cashfree Payments. You can transfer money to multiple beneficiaries. The batch transfer limit is 5,000 in the production environment and 1,000 by default in the test environment.
tags:
- Transfers v2
operationId: PayoutInitiateBatchTransfer
deprecated: false
security:
- XClientID: []
XClientSecret: []
parameters:
- $ref: '#/components/parameters/apiVersionHeader'
- $ref: '#/components/parameters/xRequestIDHeader'
requestBody:
description: Find the request parameters of the API request to transfer money to multiple beneficiaries.
content:
application/json:
schema:
$ref: '#/components/schemas/CreateBatchTransferRequest'
examples:
transfer_request:
$ref: '#/components/examples/batch_transfer_request_v2'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CreateBatchTransferResponse'
examples:
batch_transfer_received_response_v2:
$ref: '#/components/examples/batch_transfer_received_response_v2'
headers:
x-api-version:
$ref: '#/components/headers/x-api-version'
x-ratelimit-limit:
$ref: '#/components/headers/x-ratelimit-limit'
x-ratelimit-remaining:
$ref: '#/components/headers/x-ratelimit-remaining'
x-ratelimit-retry:
$ref: '#/components/headers/x-ratelimit-retry'
x-request-id:
$ref: '#/components/headers/x-request-id'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorV2'
examples:
batch_transfer_id_missing:
$ref: '#/components/examples/batch_transfer_id_missing'
batch_transfer_id_invalid:
$ref: '#/components/examples/batch_transfer_id_invalid'
transfer_id_invalid:
$ref: '#/components/examples/batchTransfer_transfer_id_invalid'
transfer_id_missing:
$ref: '#/components/examples/batchTransfer_transfer_id_missing'
transfer_amount_invalid:
$ref: '#/components/examples/batchTransfer_transfer_amount_invalid'
transfer_amount_missing:
$ref: '#/components/examples/batchTransfer_transfer_amount_missing'
transfer_mode_invalid:
$ref: '#/components/examples/batchTransfer_transfer_mode_invalid'
beneficiary_id_invalid:
$ref: '#/components/examples/batchTransfer_beneficiary_id_invalid'
beneficiary_name_invalid:
$ref: '#/components/examples/batchTransfer_beneficiary_name_invalid'
beneficiary_bank_account_invalid:
$ref: '#/components/examples/batchTransfer_beneficiary_bank_account_invalid'
beneficiary_bank_ifsc_invalid:
$ref: '#/components/examples/batchTransfer_beneficiary_bank_ifsc_invalid'
beneficiary_vpa_invalid:
$ref: '#/components/examples/batchTransfer_beneficiary_vpa_invalid'
'409':
description: Batch transfer_id already exists
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorV2'
examples:
APIDisabled:
$ref: '#/components/examples/batch_transfer_id_already_exists'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorV2'
examples:
APIDisabled:
$ref: '#/components/examples/internal_server_error_v2'
AuthenticationError:
$ref: '#/components/examples/authentication_internal_server_error'
get:
summary: Get Batch Transfer Status V2
x-mcp:
enabled: true
description: Use this API to get the status of the initiated batch transfer. You can use either the batch_transfer_id or cf_batch_transfer_id to fetch the details.
tags:
- Transfers v2
operationId: PayoutFetchBatchTransfer
deprecated: false
security:
- XClientID: []
XClientSecret: []
parameters:
- $ref: '#/components/parameters/apiVersionHeader'
- $ref: '#/components/parameters/xRequestIDHeader'
- in: query
name: cf_batch_transfer_id
description: It is the unique ID created by Cashfree Payments. You receive it in the response of the initiated batch transfer request. (Either cf_batch_transfer_id or batch_transfer_id is mandatory)
example: '10023'
schema:
type: string
- in: query
name: batch_transfer_id
description: It is the unique ID you created to identify the batch transfer request.
example: Sample_test
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/FetchBatchTransferResponse'
examples:
transfer_received_response:
$ref: '#/components/examples/batch_transfer_received_response_v2'
transfer_pending_response:
$ref: '#/components/examples/batch_transfer_pending_response_v2'
headers:
x-api-version:
$ref: '#/components/headers/x-api-version'
x-ratelimit-limit:
$ref: '#/components/headers/x-ratelimit-limit'
x-ratelimit-remaining:
$ref: '#/components/headers/x-ratelimit-remaining'
x-ratelimit-retry:
$ref: '#/components/headers/x-ratelimit-retry'
x-request-id:
$ref: '#/components/headers/x-request-id'
'404':
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorV2'
examples:
CfBatchTransferIdNotFound:
$ref: '#/components/examples/cf_batch_transfer_id_not_found'
BatchTransferIdNotFound:
$ref: '#/components/examples/batch_transfer_id_not_found'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorV2'
examples:
APIDisabled:
$ref: '#/components/examples/internal_server_error_v2'
AuthenticationError:
$ref: '#/components/examples/authentication_internal_server_error'
components:
examples:
batchTransfer_beneficiary_bank_ifsc_invalid:
description: Invalid bank account details
value:
type: invalid_request_error
code: transfers[0].beneficiary_details.beneficiary_instrument_details.bank_ifsc_invalid
message: bank_ifsc should be in standard ifsc format
batchTransfer_beneficiary_vpa_invalid:
description: Invalid beneficiary VPA
value:
type: invalid_request_error
code: transfers[0].beneficiary_details.beneficiary_instrument_details.vpa_invalid
message: vpa is in invalid format
beneficiary_bank_ifsc_invalid:
description: Invalid IFSC
value:
type: invalid_request_error
code: beneficiary_details.beneficiary_instrument_details.bank_ifsc_invalid
message: bank_ifsc should be in standard ifsc format
transfer_pending_response_v2:
summary: Transfer pending at the bank
description: Transfer initiated by Cashfree Payments and is pending at the bank's side
value:
transfer_id: JUNOB2018
cf_transfer_id: '123456'
status: PENDING
status_code: PENDING
status_description: The transfer is currently in a Pending state, as Cashfree is awaiting a final confirmation from the partner bank for a terminal status. You should rely only on Check Status API response or Webhooks to know the terminal state of the transfer request.
beneficiary_details:
beneficiary_id: JOHN18011
beneficiary_instrument_details:
bank_account_number: '7766671501729'
bank_ifsc: SBIN0000003
transfer_amount: 1
transfer_mode: BANK
transfer_utr: TESTR92023012200543116
fundsource_id: CASHFREE_1
added_on: '2021-11-24T13:39:25Z'
updated_on: '2021-11-24T13:40:27Z'
batchTransfer_transfer_mode_invalid:
description: Invalid transfer_mode
value:
type: invalid_request_error
code: transfers[0].transfer_mode_invalid
message: 'transfer_mode is invalid allowed values are : bank, imps, neft, rtgs, upi, paytm, amazonpay, card and cardupi'
transfer_rejected_response_v2:
summary: Transfer rejected
description: The transfer has been rejected by Cashfree Oatnebts. Please review the 'status_description' field to understand the reason for rejection.
value:
transfer_id: JUNOB2018
cf_transfer_id: '123456'
status: REJECTED
status_code: INVALID_MODE_FOR_PYID
status_description: The transfer has been rejected because the payment instrument does not support this mode of transfer. You should get this mode activated on the payment instrument ID by contacting Cashfree, and then initiate a new transfer request.
beneficiary_details:
beneficiary_id: JOHN18011
transfer_amount: 1
transfer_mode: BANK
fundsource_id: CASHFREE_1
added_on: '2021-11-24T13:39:25Z'
updated_on: '2021-11-24T13:40:27Z'
batchTransfer_transfer_amount_missing:
description: Missing transfer_amount
value:
type: invalid_request_error
code: transfers[0].transfer_amount_missing
message: transfer_amount is missing in the request
batchTransfer_transfer_id_missing:
description: Missing transfer_id
value:
type: invalid_request_error
code: transfers[0].transfer_id_missing
message: transfer_id is missing in the request
transfer_amount_invalid:
description: Invalid transfer_amount
value:
type: invalid_request_error
code: transfer_amount_invalid
message: transfer_amount should be greater then 1.00
batch_transfer_id_missing:
description: Missing batch_transfer_id
value:
type: invalid_request_error
code: batch_transfer_id_missing
message: batch_transfer_id is missing in the request
cf_batch_transfer_id_not_found:
summary: cf_batch_transfer_id not found
description: cf_batch_transfer_id not found
value:
type: invalid_request_error
code: cf_batch_transfer_id
message: cf_batch_transfer_id does not exist
batch_transfer_request_v2:
summary: Batch transfer request
description: The API request to initiate a batch transfer
value:
batch_transfer_id: test_batch_transfer_id
transfers:
- transfer_id: JUNOB2018
transfer_amount: 1
beneficiary_details:
beneficiary_id: JOHN18011
- transfer_id: JUNOB2018
transfer_amount: 1
transfer_mode: imps
beneficiary_details:
beneficiary_details:
beneficiary_instrument_details:
bank_account_number: '1234554321'
bank_ifsc: SBIN0001161
- transfer_id: JUNOB2018
transfer_amount: 1
transfer_mode: imps
beneficiary_details:
beneficiary_details:
beneficiary_id: JOHN18011
fundsource_id: CASHFREE_1
beneficiary_vpa_invalid_2:
description: VPA in the request does not match with the beneficiary's VPA
value:
type: invalid_request_error
code: beneficiary_details.beneficiary_instrument_details.vpa_invalid
message: 'Vpa passed in the request does not match with the beneficiary with beneficiary_id :: test_beneId'
batchTransfer_transfer_amount_invalid:
description: Invalid transfer_amount
value:
type: invalid_request_error
code: transfers[0].transfer_amount_invalid
message: transfer_amount should be greater then 1.00
transfer_mode_invalid:
description: Invalid transfer_mode
value:
type: invalid_request_error
code: transfer_mode_invalid
message: 'transfer_mode is invalid allowed values are : bank, imps, neft, rtgs, upi, paytm, amazonpay, card and cardupi'
beneficiary_bank_ifsc_invalid_2:
description: IFSC in the request does not match with the beneficiary's IFSC
value:
type: invalid_request_error
code: beneficiary_details.beneficiary_instrument_details.bank_ifsc_invalid
message: 'Bank ifsc passed in the request does not match with the beneficiary with beneficiary_id :: test_beneId'
transfer_id_not_found:
summary: transfer_id not found
description: transfer_id not found
value:
type: invalid_request_error
code: transfer_id_not_found
message: transfer_id does not exist
transfer_failed_response_v2:
summary: Transfer failed
description: Amount cannot be transferred to beneficiary as the transfer failed
value:
transfer_id: JUNOB2018
cf_transfer_id: '123456'
status: FAILED
status_code: IMPS_MODE_FAIL
status_description: The transfer has been reversed by the beneficiary bank because the beneficiary bank account doesnot support IMPS transfers. This rejection is done by the beneficiary bank for the specific beneficiary account. You can try NEFT or other channels to do the disbursals.
beneficiary_details:
beneficiary_id: JOHN18011
beneficiary_instrument_details:
bank_account_number: '7766671501729'
bank_ifsc: SBIN0000003
transfer_amount: 1
transfer_mode: BANK
fundsource_id: CASHFREE_1
added_on: '2021-11-24T13:39:25Z'
updated_on: '2021-11-24T13:40:27Z'
transfer_reversed_response_v2:
summary: Transfer reversed
description: The transfer has been reversed by bank. Please review the status_description field to understand the reason reversal.
value:
transfer_id: JUNOB2018
cf_transfer_id: '123456'
status: REVERSED
status_code: INVALID_ACCOUNT_FAIL
status_description: The transfer has been reversed by the beneficiary bank because the Account Number of the beneficiary is invalid. After correcting the account number, you can reinitiate the transfer via Cashfree so that the transfer can be reattempted again by Cashfree with the partner bank(s).
beneficiary_details:
beneficiary_id: JOHN18011
beneficiary_instrument_details:
bank_account_number: '7766671501729'
bank_ifsc: SBIN0000003
transfer_amount: 1
transfer_mode: BANK
fundsource_id: CASHFREE_1
added_on: '2021-11-24T13:39:25Z'
updated_on: '2021-11-24T13:40:27Z'
internal_server_error_v2:
summary: Internal server error
description: Error at Cashfree Payments' server
value:
type: api_error
code: internal_server_error
message: Error at cashfree's server
beneficiary_vpa_invalid:
description: Invalid beneficiary VPA
value:
type: invalid_request_error
code: beneficiary_details.beneficiary_instrument_details.vpa_invalid
message: vpa is in invalid format
batch_transfer_id_invalid:
description: Invalid batch_transfer_id
value:
type: invalid_request_error
code: batch_transfer_id_invalid
message: batch_transfer_id should be alphanumeric
transfer_id_invalid:
description: Invalid transfer_id
value:
type: invalid_request_error
code: transfer_id_invalid
message: transfer_id should be alphanumeric
transfer_pending_approval_response_v2:
summary: Transfer is pending for approval
description: Transfer is pending for approval.
value:
transfer_id: JUNOB2018
cf_transfer_id: '123456'
status: APPROVAL_PENDING
status_code: APPROVAL_PENDING
status_description: The transfer requires approval. You can approve or reject the transfer request from the Cashfree Merchant Dashboard.
beneficiary_details:
beneficiary_id: JOHN18011
transfer_amount: 1
transfer_mode: BANK
fundsource_id: CASHFREE_1
added_on: '2021-11-24T13:39:25Z'
updated_on: '2021-11-24T13:40:27Z'
beneficiary_id_invalid:
description: Invalid beneficiary_id
value:
type: invalid_request_error
code: beneficiary_details.beneficiary_id_invalid
message: beneficiary_id should be alphanumeric
APIsDisabledExampleV2:
summary: APIs disabled
description: Forbidden request. APIs are disabled
value:
type: invalid_request_error
code: apis_not_enabled
message: APIs not enabled. Please fill out the [Support Form](https://merchant.cashfree.com/merchants/landing?env=prod&raise_issue=1)
authentication_internal_server_error:
summary: Internal server error while authenticating request
description: Internal server error while authenticating request
value:
type: authentication_error
code: internal_server_error
message: Unable to authenticate the request. Please fill out the [Support Form](https://merchant.cashfree.com/merchants/landing?env=prod&raise_issue=1)
batch_transfer_pending_response_v2:
summary: Batch transfer pending
description: Batch Transfer pending at the bank. Please check the status of batch transfer after some time.
value:
batch_transfer_id: test_batch_transfer_id
cf_batch_transfer_id: '123456'
status: PENDING
transfers:
- transfer_id: JUNOB2018
cf_transfer_id: '123456'
status: SUCCESS
status_code: COMPLETED
status_description: The transfer has been initiated via the partner bank successfully, hence your account is debited and the request is successfuly processed by the beneficiary bank and has been credited to the end beneficiary.
beneficiary_details:
beneficiary_id: JOHN18011
beneficiary_instrument_details:
bank_account_number: '7766671501729'
bank_ifsc: SBIN0000003
transfer_amount: 1
transfer_service_charge: 1
transfer_service_tax: 0.18
transfer_mode: BANK
transfer_utr: TESTUTR
fundsource_id: CASHFREE_1
added_on: '2021-11-24T13:39:25Z'
updated_on: '2021-11-24T13:40:27Z'
- transfer_id: JUNOB2018
cf_transfer_id: '123457'
status: PENDING
status_code: PENDING
status_description: The transfer is currently in a Pending state, as Cashfree is awaiting a final confirmation from the partner bank for a terminal status. You should rely only on Check Status API response or Webhooks to know the terminal state of the transfer request.
beneficiary_details:
beneficiary_id: JOHN18011
beneficiary_instrument_details:
bank_account_number: '7766671501729'
bank_ifsc: SBIN0000003
transfer_amount: 1
transfer_mode: BANK
transfer_utr: TESTUTR2
fundsource_id: CASHFREE_1
added_on: '2021-11-24T13:39:25Z'
updated_on: '2021-11-24T13:40:27Z'
- transfer_id: JUNOB2018
cf_transfer_id: '123458'
status: REJECTED
status_code: INVALID_MODE_FOR_PYID
status_description: The transfer has been rejected because the payment instrument does not support this mode of transfer. You should get this mode activated on the payment instrument ID by contacting Cashfree, and then initiate a new transfer request.
beneficiary_details:
beneficiary_id: JOHN18011
transfer_amount: 1
transfer_mode: BANK
fundsource_id: CASHFREE_1
added_on: '2021-11-24T13:39:25Z'
updated_on: '2021-11-24T13:40:27Z'
transfer_received_response_v2:
summary: Transfer received
description: Transfer received by Cashfree Payments. Please check the status after some time.
value:
transfer_id: JUNOB2018
cf_transfer_id: '123456'
status: RECEIVED
status_code: RECEIVED
status_description: The transfer has been received by Cashfree successfully for further processing. You should use Check Status API response or Webhooks to know the terminal state of the transfer request.
beneficiary_details:
beneficiary_id: JOHN18011
transfer_amount: 1
transfer_mode: BANK
fundsource_id: CASHFREE_1
added_on: '2021-11-24T13:39:25Z'
updated_on: '2021-11-24T13:40:27Z'
beneficiary_bank_account_invalid:
description: Invalid beneficiary bank account details
value:
type: invalid_request_error
code: beneficiary_details.beneficiary_instrument_details.bank_account_number_invalid
message: bank_account_number should be alphanumeric
transfer_amount_missing:
description: Misisng transfer_amount
value:
type: invalid_request_error
code: transfer_amount_missing
message: transfer_amount is missing in the request
batchTransfer_transfer_id_invalid:
description: Invalid transfer_id
value:
type: invalid_request_error
code: transfers[0].transfer_id_invalid
message: transfer_id should be alphanumeric
batch_transfer_id_not_found:
summary: batch_transfer_id not found
description: batch_transfer_id not found
value:
type: invalid_request_error
code:
# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cashfree/refs/heads/main/openapi/cashfree-transfers-v2-api-openapi.yml