> ## 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.

# Batch Transfer V1.2

> Use this API to create transfers to multiple beneficiaries. This API accepts an array of transfer objects under the batch field.

<Warning> This API will be retired soon. Please plan to migrate to the latest version, [Transfers V2](/api-reference/payouts/v2/transfers-v2/get-transfer-status-v2). </Warning>

Please use this Authorization token in headers to call any payout API (Refresh this page if the token is expired)

<iframe src="https://www.cashfree.com/devstudio/preview/payouts/embed/bearerToken" width="600" />

<Note>
  **Get Batch Transfer Status**
  Use the [Get Batch Transfer Status V1.2](https://docs.cashfree.com/reference/get-batch-transfer-status-v1-2) API to get the status of the batch transfer request. The Get Transfer Status V1.2 API does not give you the status of the batch transfer requests. Read the [batch transfer document](https://docs.cashfree.com/docs/batch-transfer-1) to understand the flow of the API.
</Note>

<Accordion title="Click to view details about batch format.">
  | Value           | Description                                                                                                                                                                                                                                                           |
  | :-------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | BENEFICIARY\_ID | With this value, beneId and transferMode must be passed in the transfer object within the batch array alphanumeric and underscore allowed (60 character limit) If batchFormat is set to any of the below values, transfers will only be processed via specified mode. |
  | BANK\_ACCOUNT   | With this value, Additional details such as bankAccount, ifsc, name, email, phone must be passed in the transfer object within the batch array                                                                                                                        |
  | UPI             | With this value, Additional details such as vpa, name, email, phone must be passed in the transfer object within the batch array                                                                                                                                      |
  | PAYTM           | With this value, Additional details such as name, email, phone must be passed in the transfer object within the batch array                                                                                                                                           |
  | AMAZONPAY       | With this value, Additional details such as name, email, phone must be passed in the transfer object within the batch array                                                                                                                                           |
</Accordion>

<Accordion title="Click to view the details of transfer objects.">
  | Field name          | Description                                                                                                            |
  | ------------------- | ---------------------------------------------------------------------------------------------------------------------- |
  | transferId          | A unique transfer id.                                                                                                  |
  | amount              | Amount to be transferred.                                                                                              |
  | beneId              | The ID of the beneficiary. This field must be passed if the batch format option is BENEFICIARY\_ID.                    |
  | transferMode        | Required only when batchFormat is set to BENEFICIARY\_ID, mode of transfer for each transfer in batch needs to be set. |
  |                     | Allowed values are: banktransfer, upi, paytm, and amazonpay.                                                           |
  | bankAccount         | Bank account number for payout. This field must be passed if the batch format option is BANK\_ACCOUNT.                 |
  | ifsc                | IFSC of the corresponding bank account. This field must be passed if the batch format option is BANK\_ACCOUNT.         |
  | vpa \[optional]     | VPA of the corresponding user. This field must be passed if the batch format option is UPI.                            |
  | name                | Name of the account holder. This field must be passed if the batch format option is BANK\_ACCOUNT.                     |
  | email \[optional]   | Email of the beneficiary. This field must be passed if the batch format option is BANK\_ACCOUNT.                       |
  | phone               | The phone of the beneficiary. This field must be passed if the batch format option is BANK\_ACCOUNT/PAYTM/AMAZONPAY.   |
  | remarks \[optional] | Remarks, if any.                                                                                                       |

  Currently, batch transfer supports transfers to bank accounts, UPI, Paytm, and Amazon Pay. If the beneficiary object does not have valid details attached to it, the transfer fails.
</Accordion>

<Accordion title="Click to view the response codes.">
  | Sub code | Status  | Message                                                                          | Next action                                                |
  | :------- | :------ | :------------------------------------------------------------------------------- | :--------------------------------------------------------- |
  | 200      | SUCCESS | Batch Transfer requested successfully. Please check later for processing status. | -                                                          |
  | 200      | SUCCESS | beneficiary already exists with a different name. Please delete                  |                                                            |
  | 202      | PENDING | Request received. Please check status after some time.                           | -                                                          |
  | 403      | ERROR   | Token is not valid                                                               | Verify the generated token.                                |
  | 403      | ERROR   | Permission Denied                                                                |                                                            |
  | 409      | ERROR   | Invalid Batch Format                                                             | Enter valid batch format details.                          |
  | 409      | ERROR   | Batch TransferId already exists                                                  | Enter a valid batch transfer ID.                           |
  | 412      | ERROR   | Token missing in the request                                                     | Enter a valid token in the request.                        |
  | 422      | ERROR   | Batch transfer id is missing                                                     | Enter a valid batch transfer ID.                           |
  | 422      | ERROR   | Batch format is missing                                                          | Enter valid batch format details.                          |
  | 422      | ERROR   | Invalid Batch Transfer Id provided                                               | Enter a valid batch transfer ID.                           |
  | 422      | ERROR   | Please provide at least one transfer entry                                       | Enter at least one transfer entry.                         |
  | 422      | ERROR   | The maximum number of entries allowed per file is 500, please try again.         | Enter only a maximum of 500 entries per file.              |
  | 422      | ERROR   | Transfer Parameters  missing in the request                                      | Enter all the required transfer parameters in the request. |
  | 520      | ERROR   | Unknown error occurred at batchTransfer                                          |                                                            |
  | 520      | ERROR   | Batch Transfer request failed                                                    |                                                            |
  | 520      | ERROR   | Error in batch transfer                                                          |                                                            |
  | 520      | ERROR   | Unknown error occurred                                                           |                                                            |
</Accordion>


## OpenAPI

````yaml post /payout/v1.2/requestBatchTransfer
openapi: 3.0.0
info:
  title: Payouts
  version: 3.0.0
servers:
  - url: https://payout-api.cashfree.com
    description: Production
  - url: https://payout-gamma.cashfree.com
    description: Sandbox
security:
  - {}
paths:
  /payout/v1.2/requestBatchTransfer:
    post:
      summary: Batch Transfer V1.2
      description: >-
        Use this API to create transfers to multiple beneficiaries. This API
        accepts an array of transfer objects under the batch field.
      operationId: batch-transfer-v1-21
      parameters:
        - name: Authorization
          in: header
          description: Bearer auth token
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          description: application/json
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1_2_requestBatchTransfer_body'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    status: SUCCESS
                    subCode: '200'
                    message: >-
                      Batch Transfer requested successfully. Please check later
                      for processing status.
                    data:
                      referenceId: 486
        '403':
          description: '403'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_403'
        '409':
          description: '409'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_409_3'
        '422':
          description: '422'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_422_5'
      deprecated: false
      security: []
components:
  schemas:
    v1_2_requestBatchTransfer_body:
      required:
        - batch
        - batchFormat
        - batchTransferId
      type: object
      properties:
        batchTransferId:
          type: string
          description: >-
            Unique Id of the Batch Transfer, alphanumeric and underscore allowed
            (60 character limit)
        batchFormat:
          type: string
          description: >-
            Format of the batch transfers, valid values are, BENEFICIARY_ID,
            BANK_ACCOUNT, UPI, PAYTM, AMAZONPAY. Details are available below.
        deleteBene:
          type: boolean
          description: >-
            Flag to delete and read new beneficiaries if a beneficiary with the
            same Beneficiary Id is available. When the batch transfer format is
            BANK_ACCOUNT
        batch:
          type: array
          description: An array of transfer objects
          items:
            type: string
        paymentInstrumentId:
          type: string
          description: >-
            Specify the payment instrument from where you want the amount to be
            debited.
    inline_response_403:
      type: object
      properties:
        status:
          type: string
          example: ERROR
        subCode:
          type: string
          example: '403'
        message:
          type: string
          example: >-
            APIs not enabled. Please fill out the [Support
            Form](https://merchant.cashfree.com/merchants/landing?env=prod&raise_issue=1)
    inline_response_409_3:
      type: object
      properties:
        status:
          type: string
          example: ERROR
        subCode:
          type: string
          example: '409'
        message:
          type: string
          example: Batch TransferId batch_req_21 already exists
    inline_response_422_5:
      type: object
      properties:
        status:
          type: string
          example: ERROR
        subCode:
          type: string
          example: '422'
        message:
          type: string
          example: Specified paymentInstrumentId not available.

````