> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lead.bank/llms.txt
> Use this file to discover all available pages before exploring further.

# Create an Internal Transfer

> Creates an asynchronous Internal Transfer.



## OpenAPI

````yaml POST /v1/internal_transfer
openapi: 3.0.1
info:
  title: Lead Bank
  description: Lead Bank's APIs
  version: v1.0
servers:
  - url: https://api.sandbox.lead.bank
  - url: https://api.lead.bank
security:
  - bearerAuth: []
tags:
  - name: ACH
  - name: Account Number
  - name: OAuth
  - name: Events
  - name: Instant Payments
  - name: Lending
  - name: Simulation
  - name: Internal Transfer
  - name: Disbursement
  - name: Entity
  - name: Wire
  - name: Originator
  - name: Funding
  - name: Balances
  - name: Compliance
  - name: UserAccount
  - name: Blockchain Payment
paths:
  /v1/internal_transfer:
    post:
      tags:
        - Internal Transfer
      summary: Create an asynchronous Internal Transfer
      description: Creates an asynchronous Internal Transfer.
      operationId: create-an-internal-transfer-v1
      parameters:
        - name: Idempotency-Key
          in: header
          description: Idempotency key
          required: true
          schema:
            type: string
            maxLength: 255
            minLength: 5
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: CreateInternalTransferRequestV1
              type: object
              required:
                - sender_account_number_id
                - receiver_account_number_id
                - amount
                - description
                - currency_code
              properties:
                amount:
                  $ref: '#/components/schemas/InternalTransferAmount'
                currency_code:
                  $ref: '#/components/schemas/CurrencyCode'
                sender_account_number_id:
                  $ref: '#/components/schemas/AccountNumberID'
                receiver_account_number_id:
                  $ref: '#/components/schemas/AccountNumberID'
                description:
                  type: string
                  minLength: 5
                  maxLength: 34
                  description: Statement descriptor for the Internal Transfer
                  example: Internal treasury transfer
                metadata:
                  $ref: '#/components/schemas/Metadata'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalTransferV1'
              example:
                id: internal_transfer_xyz123
                amount: 5000
                currency_code: USD
                sender_account_id: account_xyz123
                sender_account_number_id: account_number_xyz123
                receiver_account_id: account_xyz123
                receiver_account_number_id: account_number_xyz123
                status: processing
                description: string
                metadata:
                  additionalProp: string
                created_at: '2022-06-27T11:22:33Z'
                updated_at: '2022-06-27T11:22:33Z'
        '400':
          description: >-
            We couldn't parse your request body, please check that your request
            body is valid JSON.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '422':
          description: Your request parameters did not validate.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
components:
  schemas:
    InternalTransferAmount:
      description: The amount of the internal transfer transaction in cents.
      type: integer
      format: int64
      example: 5000
      minimum: 1
      maximum: 9900000000
    CurrencyCode:
      description: A three-letter currency code as defined in ISO 4217.
      type: string
      example: USD
      enum:
        - USD
    AccountNumberID:
      type: string
      description: The ID of the Lead Bank Account Number object.
      example: account_number_xyz123
      pattern: ^account_number_\w+$
    Metadata:
      type: object
      additionalProperties:
        type: string
      description: >-
        A set of key-value pairs that can be used to store additional
        information related to this object.
    InternalTransferV1:
      type: object
      required:
        - id
        - amount
        - currency_code
        - sender_account_id
        - sender_account_number_id
        - receiver_account_id
        - receiver_account_number_id
        - status
        - description
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          description: The ID of the Internal Transfer object.
          example: internal_transfer_xyz123
          pattern: ^internal_transfer_\w+$
        amount:
          $ref: '#/components/schemas/Amount'
        currency_code:
          $ref: '#/components/schemas/CurrencyCode'
        sender_account_id:
          $ref: '#/components/schemas/AccountID'
        sender_account_number_id:
          $ref: '#/components/schemas/AccountNumberID'
        receiver_account_id:
          $ref: '#/components/schemas/AccountID'
        receiver_account_number_id:
          $ref: '#/components/schemas/AccountNumberID'
        status:
          $ref: '#/components/schemas/InternalTransferStatusV1'
        description:
          type: string
          description: Memo string for the transfer
        rejection:
          $ref: '#/components/schemas/InternalTransferRejectionReason'
        metadata:
          $ref: '#/components/schemas/Metadata'
        created_at:
          type: string
          format: date-time
          description: >-
            The RFC3339 timestamp at which the InternalTransfer object was
            created.
          example: '2022-06-27T11:22:33Z'
        updated_at:
          type: string
          format: date-time
          description: >-
            The RFC3339 timestamp at which the InternalTransfer object was last
            updated.
          example: '2022-06-27T11:22:33Z'
    APIError:
      type: object
      properties:
        code:
          type: string
          description: The error code.
        title:
          type: string
          description: The error title.
        detail:
          type: string
          description: A detailed error description.
        status:
          type: string
          description: The HTTP status code.
        invalid_parameters:
          type: array
          description: Invalid request parameters with reasons, if applicable.
          items:
            $ref: '#/components/schemas/InvalidParameterDetail'
        instance:
          type: string
          description: >-
            The object causing this specific occurrence of the error, if
            applicable.
    Amount:
      description: The amount of the transaction in cents.
      type: integer
      format: int64
      example: 5000
      minimum: 0
      maximum: 9900000000
    AccountID:
      type: string
      description: The ID of the Account object.
      example: account_xyz123
      pattern: ^account_\w+$
    InternalTransferStatusV1:
      description: The current status of the InternalTransfer object.
      type: string
      example: posted
      enum:
        - processing
        - posted
        - rejected
    InternalTransferRejectionReason:
      type: object
      properties:
        reason:
          type: string
          description: The rejection code that indicates the type of rejection
          example: account_number_not_active
          enum:
            - account_number_not_active
            - beneficiary_account_number_unrecognized
            - non_sufficient_funds
            - ofac_rejection
            - internal_error
        details:
          type: string
          description: Additional info about the rejection
          example: Account number account_123 is inactive.
    InvalidParameterDetail:
      type: object
      properties:
        parameter:
          type: string
          description: Which parameter is invalid.
          example: transaction_type
        reason:
          type: string
          description: Why the parameter is invalid.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````