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

# Transfer Funds Between VAs

> Use this API to transfer funds between virtual accounts (VAs).



## OpenAPI

````yaml post /v1.2/internalTransfer
openapi: 3.0.0
info:
  title: Internal Transfer API
  version: 1.0.0
  description: API to create virtual accounts on existing connected fund sources.
servers:
  - url: https://sandbox.cashfree.com/payout
    description: Sandbox server
  - url: https://api.cashfree.com/payout
    description: Production server
security: []
tags: []
paths:
  /v1.2/internalTransfer:
    post:
      summary: Transfer Funds Between VAs
      description: Use this API to transfer funds between virtual accounts (VAs).
      parameters:
        - name: Authorization
          in: header
          description: Authorization header with tokens.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InternalTransferBetweenFundSourceRequest'
      responses:
        '200':
          description: Internal transfer successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutResponse'
              examples:
                success:
                  value:
                    status: SUCCESS
                    subCode: '200'
                    message: RefId-<TransferId>/<Remarks>-Internal Fund Transfer
                    data:
                      transferId: <TransferId>
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutResponse'
              examples:
                error:
                  value:
                    status: FAILURE
                    subCode: '400'
                    message: Bad request
        '422':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutResponse'
              examples:
                internal_transfer_not_allowed:
                  value:
                    status: ERROR
                    subCode: '422'
                    message: >-
                      Internal Fund Transfer is not allowed for the selected
                      Fund Sources
                account_not_configured:
                  value:
                    status: ERROR
                    subCode: '422'
                    message: >-
                      Account not configured. Please reach out to account
                      manager
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutResponse'
              examples:
                error:
                  value:
                    status: FAILURE
                    subCode: '500'
                    message: Internal server error
components:
  schemas:
    InternalTransferBetweenFundSourceRequest:
      type: object
      properties:
        amount:
          type: string
          format: decimal
          description: It is the transfer amount.
          example: 1000.5
        transferId:
          type: string
          description: It is the unique ID to identify the transfer request.
          example: JUNOb23
        toPaymentInstrumentId:
          type: string
          description: >-
            It is the unique ID of the payment instrument that you want to
            transfer the amount.
          example: YES_CONNECTED_484576_4f21dfa
        paymentInstrumentId:
          type: string
          description: >-
            It is the unique ID of the payment instrument that you want the
            debit the transfer amount.
          example: YES_CONNECTED_484576_4f21dfb
        remarks:
          type: string
          description: It is the additional remarks for the transfer.
          example: commission
      required:
        - amount
        - toPaymentInstrumentId
        - paymentInstrumentId
    PayoutResponse:
      type: object
      properties:
        status:
          type: string
          description: It displays the status of the request (SUCCESS/FAILURE).
          example: SUCCESS
        subCode:
          type: string
          description: It displays the sub code of the request.
          example: '200'
        message:
          type: string
          description: It displays the outcome of the request.
          example: FundSource Details Retrieved
        data:
          $ref: '#/components/schemas/FundSourceData'
          type: object
          description: Response data.
          oneOf:
            - $ref: '#/components/schemas/CreateVirtualAccountResponse'
            - $ref: '#/components/schemas/InternalTransferResponse'
    FundSourceData:
      type: object
      properties:
        id:
          type: integer
          description: It displays the unique ID of the fund source.
          example: 123
        fsDisplayType:
          type: string
          description: It displays the type of the fund source.
          example: Bank Account
        fsDescription:
          type: string
          nullable: true
          description: It displays the description of the fund source.
          example: Main operational account
        accountHolderName:
          type: string
          description: It displays the name of the account holder.
          example: John Doe
        bankName:
          type: string
          description: It displays the bank name.
          example: Bank of India
        balance:
          type: string
          format: decimal
          description: It displays the balance amount in the fund source.
          example: '1000.00'
        availableBalance:
          type: string
          format: decimal
          description: It displays the available balance amount in the fund source.
          example: '950.00'
        fundsOnHold:
          type: string
          description: It displays the amount on hold in the fund source.
          format: decimal
          example: '50.00'
        overdraft:
          type: string
          format: decimal
          description: It displays the overdraft amount of the fund source.
          example: '0.00'
        bankAccount:
          type: string
          description: It displays the bank account information of the fund source.
          example: '1234567890'
        ifsc:
          type: string
          description: It displays the IFSC information.
          example: BOFA0XXXXXX
        addedOn:
          type: string
          description: It displays the date and time of the fund source when added.
          format: date-time
          example: '2024-01-01T12:00:00Z'
        updatedOn:
          type: string
          description: It displays the latest updation date and time of the fund source.
          format: date-time
          example: '2024-08-01T12:00:00Z'
        fsName:
          type: string
          description: It displays the name of the fund source.
          example: Operational Account
        displayName:
          type: string
          description: It displays the display name of the fund source.
          example: Main Account
        virtualAccount:
          type: string
          description: It displays the virtual account information.
          example: VA1234567890
        status:
          type: string
          description: It displays the status of the fund source.
          example: ACTIVE

````