Cashfree Payments Transfers v2 API

The Transfers v2 API from Cashfree Payments — 2 operation(s) for transfers v2.

Operations 4

POST /transfers Standard Transfer V2 #
GET /transfers Get Transfer Status V2 #
POST /transfers/batch Batch Transfer V2 #
GET /transfers/batch Get Batch Transfer Status V2 #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cashfree-transfers-v2-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

cashfree-transfers-v2-api-openapi.yml Raw ↑
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