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

# Direct Transfer

> Use this API to initiate amount transfers directly to the beneficiary account via a bank transfer or UPI. You can add the beneficiary details in the same API request.

<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" />

<Accordion title="Click to view the response codes.">
  | Sub code | Status  | Message                                                          | Next action                                                       |
  | :------- | :------ | :--------------------------------------------------------------- | :---------------------------------------------------------------- |
  | 200      | SUCCESS | Transfer completed successfully.                                 | -                                                                 |
  | 201      | SUCCESS | Transfer Scheduled for next working day.                         | -                                                                 |
  | 201      | PENDING | Awaiting confirmation from beneficiary bank.                     | -                                                                 |
  | 201      | PENDING | Transfer request pending at the bank.                            | -                                                                 |
  | 202      | PENDING | Request received. Please check status after some time.           | -                                                                 |
  | 400/520  | ERROR   | Transfer attempt failed at the bank.                             | -                                                                 |
  | 403      | ERROR   | Token is not valid                                               | Verify the generated token.                                       |
  | 403      | ERROR   | IP not whitelisted                                               | Whitelist the IP address.                                         |
  | 403      | ERROR   | This feature is not available for your account.                  | -                                                                 |
  | 403      | ERROR   | Transfer mode is not available for your account.                 | Enter a different transfer mode.                                  |
  | 403      | ERROR   | Transfer to this beneficiary not allowed.                        | Enter different beneficiary details.                              |
  | 404      | ERROR   | Beneficiary does not exist.                                      | Enter a valid beneficiary ID.                                     |
  | 409      | ERROR   | Transfer Id already exists.                                      | Enter a different transfer ID.                                    |
  | 412      | ERROR   | Token missing in the request.                                    | Enter a valid token in the API request.                           |
  | 412      | ERROR   | BeneId missing in the request.                                   | Enter a valid beneficiary ID.                                     |
  | 412      | ERROR   | Amount missing in the request.                                   | Enter a valid transfer amount.                                    |
  | 412      | ERROR   | TransferId missing in the request.                               | Enter a valid transfer ID.                                        |
  | 412      | ERROR   | Invalid Tag passed in the request.                               |                                                                   |
  | 412      | ERROR   | Invalid transfer mode passed in the request.                     |                                                                   |
  | 412      | ERROR   | Transfer mode not enabled for the account.                       |                                                                   |
  | 412      | ERROR   | Transfer limit for your account exceeded.                        |                                                                   |
  | 412      | ERROR   | Transfer limit for beneficiary exceeded.                         |                                                                   |
  | 412      | ERROR   | Not enough available balance in the account.                     | Retry with sufficient balance in your account.                    |
  | 412      | ERROR   | Please wait 30 minutes after adding the beneficiary.             | -                                                                 |
  | 412      | ERROR   | Transfer amount is less than minimum amount of Rs. 100.          | Enter a transfer amount that is equal to or more than Rs. 100.    |
  | 412      | ERROR   | Transfer amount is greater than the maximum amount of Rs.100000. | Enter a transfer amount that is equal to or less than Rs. 100000. |
  | 422      | ERROR   | Invalid IFSC code provided for bank account.                     | Enter a valid IFSC for the provided bank account details.         |
  | 422      | ERROR   | Invalid bank account number or IFSC provided.                    | Enter valid bank account details.                                 |
  | 422      | ERROR   | Transfer request to paytm wallet failed.                         |                                                                   |
  | 422      | ERROR   | No Bank account or IFSC associated with the beneficiary.         | Enter valid bank account details of the beneficiary.              |
  | 422      | ERROR   | Invalid transferId passed.                                       | Enter a valid transferId.                                         |
  | 422      | ERROR   | Beneficiary details not valid.                                   | Enter valid beneficiary details.                                  |
  | 422      | ERROR   | Remarks can have only numbers, alphabets and whitespaces.        | -                                                                 |
  | 422      | ERROR   | Invalid amount passed.                                           | Enter a valid transfer amount.                                    |
  | 422      | ERROR   | No Payee Virtual Address associated with the beneficiary.        |                                                                   |
  | 520      | ERROR   | Transfer request triggered. No response from bank.               |                                                                   |
</Accordion>


## OpenAPI

````yaml post /payout/v1/directTransfer
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/directTransfer:
    post:
      summary: Direct Transfer
      description: >-
        Use this API to initiate amount transfers directly to the beneficiary
        account via a bank transfer or UPI. You can add the beneficiary details
        in the same API request.
      operationId: direct-transfer1
      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_directTransfer_body'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_200_20'
              examples:
                Case1Pending:
                  summary: Payout pending at partner bank
                  value:
                    status: PENDING
                    subCode: '201'
                    message: Transfer request pending at the bank
                    data:
                      referenceId: '23457526'
                      utr: ''
                      acknowledged: 0
                Case2Success:
                  summary: Successful Transfer
                  value:
                    status: SUCCESS
                    subCode: '200'
                    message: Transfer completed successfully
                    data:
                      referenceId: '10023'
                      utr: P16111765023806
                      acknowledged: 1
                Case3Error:
                  summary: Error in Transfer
                  value:
                    status: ERROR
                    subCode: '400'
                    message: Transfer Id already exists
        '403':
          description: '403'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_403'
      deprecated: false
      security: []
components:
  schemas:
    v1_directTransfer_body:
      required:
        - amount
        - beneDetails
        - transferId
        - transferMode
      type: object
      description: >-
        Amount, transfer ID, transfer mode, and inline beneficiary details for a
        synchronous direct transfer (including Process Validated Payout when you
        pass the transfer token from [Validate
        Payout](/api-reference/payouts/v1/validate-payout-v1)).
      properties:
        amount:
          type: number
          description: >-
            Amount to be transferred. Amount should be greater that INR 1.00.
            Decimals are allowed.
          format: float
        transferId:
          type: string
          description: >-
            A unique ID to identify this transfer. Alphanumeric characters and
            underscores are allowed (40 character limit).
        transferMode:
          type: string
          description: >-
            It is the mode of transfer. Allowed values are: banktransfer, neft,
            imps, rtgs, upi, paytm, and amazonpay. The default transferMode is
            banktransfer.
        beneDetails:
          $ref: '#/components/schemas/payoutv1directTransfer_beneDetails'
    inline_response_200_20:
      type: object
      properties:
        status:
          type: string
          description: >-
            High-level state of the transfer request (for example SUCCESS,
            PENDING, or ERROR).
          example: SUCCESS
        subCode:
          type: string
          description: Numeric sub-code that qualifies the `status` value.
          example: '200'
        message:
          type: string
          example: Transfer completed successfully
        data:
          $ref: '#/components/schemas/inline_response_200_20_data'
    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)
    payoutv1directTransfer_beneDetails:
      required:
        - address1
        - email
        - name
        - phone
      type: object
      properties:
        bankAccount:
          type: string
          description: >-
            Beneficiary bank account (9 - 18 alphanumeric character limit)
            (Required in case of banktransfer, imps, neft mode)
        ifsc:
          type: string
          description: >-
            Accounts IFSC (standard IFSC format) - length 11, first four bank
            IFSC and 5th digit 0 (Required in case of banktransfer, imps, neft
            mode)
        name:
          type: string
          description: >-
            Beneficiary name, only alphabets and white space (100 character
            limit)
        phone:
          type: string
          description: >-
            Beneficiary phone number, phone number registered in India (only
            digits, 8 - 12 characters after stripping +91)
        email:
          type: string
          description: >-
            Beneficiary email address, string in email Id format (Ex:
            johndoe_1@cashfree.com) - should contain @ and dot (.) - (200
            character limit)
        vpa:
          type: string
          description: >-
            Beneficiary VPA, alphanumeric, dot (.), hyphen (-), at sign (@), and
            underscore () allowed (100 character limit). Note: underscore () and
            dot (.) gets accepted before and after at sign (@), but hyphen (-)
            get only accepted before at sign (@) (Required in case of UPI)
        address1:
          type: string
          description: >-
            Beneficiary address. Alphanumeric characters and space allowed (150
            character limit).
      description: Object with the beneficiary details to whom amount is to be transferred
    inline_response_200_20_data:
      type: object
      description: >-
        Partner-facing references for the accepted transfer, including the
        Cashfree reference ID, bank or network UTR when issued, and partner
        acknowledgement.
      properties:
        referenceId:
          type: string
          description: Cashfree reference identifier for this transfer request.
          example: '10023'
        utr:
          type: string
          description: >-
            Unique transaction reference from the partner bank or network, when
            available.
          example: P16111765023806
        acknowledged:
          type: integer
          description: >-
            Flag indicating whether the partner has acknowledged receipt of the
            transfer (1 acknowledged, 0 otherwise).
          example: 1

````