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

# Create an async entity transfer request

> 
    Creates a pending (async) entity transfer request that will be processed by Endaoment.
    The transfer will be in a pending state until it is fully processed.
    
    Entity transfers support Fund to Fund, Org to Org, and Org to Fund transfers.
    
    This endpoint requires authentication and the user must have permission to create transfers
    from the specified origin entity.
    



## OpenAPI

````yaml https://api.endaoment.org/oas-json post /v1/transfers/async-entity-transfers
openapi: 3.0.0
info:
  title: Endaoment API
  description: The official Endaoment API endpoints
  version: 0.0.1
  contact: {}
servers:
  - url: https://api.endaoment.org
    description: Production
security: []
tags: []
paths:
  /v1/transfers/async-entity-transfers:
    post:
      tags:
        - Transfers
      summary: Create an async entity transfer request
      description: |2-

            Creates a pending (async) entity transfer request that will be processed by Endaoment.
            The transfer will be in a pending state until it is fully processed.
            
            Entity transfers support Fund to Fund, Org to Org, and Org to Fund transfers.
            
            This endpoint requires authentication and the user must have permission to create transfers
            from the specified origin entity.
            
      operationId: InternalTransfersController_createAsyncEntityTransfer
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiateAsyncEntityTransferInputDto'
      responses:
        '200':
          description: Async entity transfer request successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityTransferDto'
        '400':
          description: Invalid input data provided
        '401':
          description: User is not authenticated
        '403':
          description: >-
            User does not have permission to create transfers from the specified
            origin entity
      security:
        - bearer: []
components:
  schemas:
    InitiateAsyncEntityTransferInputDto:
      type: object
      properties:
        idempotencyKey:
          type: string
          description: Unique identifier to prevent duplicate transfer requests
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        originFundId:
          type: string
          description: >-
            ID of the fund that is the origin of the transfer. Mutually
            exclusive with originOrgId.
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        originOrgId:
          type: string
          description: >-
            ID of the organization that is the origin of the transfer. Mutually
            exclusive with originFundId.
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        destinationFundId:
          type: string
          description: >-
            ID of the fund that will receive the transfer. Mutually exclusive
            with destinationOrgId.
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        destinationOrgId:
          type: string
          description: >-
            ID of the organization that will receive the transfer. Mutually
            exclusive with destinationFundId.
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        chainId:
          type: object
          description: >-
            The chain ID for the transfer. Required when originOrgId is
            provided. Ignored when originFundId is provided.
          example: 1
        requestedAmount:
          type: string
          description: >-
            The amount in USDC to be transferred, in the smallest currency unit
            (1000000 = 1 USD)
          example: '1000000'
          format: bigint
        shareMyEmail:
          type: boolean
          description: >-
            Indicates if the initiator agrees to share their email with the
            receiving entity
          default: false
      required:
        - idempotencyKey
        - requestedAmount
    EntityTransferDto:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the transfer
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        type:
          type: string
          description: Type of transfer, always "entity" for EntityTransferDto
          enum:
            - GrantTransfer
            - EntityTransfer
          example: entity
        status:
          type: string
          description: Status of the transfer (deprecated)
          enum:
            - PendingReview
            - Approved
            - Rejected
          example: approved
          deprecated: true
        transactionHash:
          type: object
          description: Transaction hash of the donation made to the target entity
          example: '0x1234567890abcdef'
          nullable: true
        netAmount:
          type: object
          description: >-
            Net output amount for the transfer (total - fees) in USDC smallest
            currency unit (1000000 = 1 USD)
          example: '1000000'
          nullable: true
        fee:
          type: object
          description: >-
            Fee charged on this transfer in USDC smallest currency unit (1000000
            = 1 USD)
          example: '10000'
          nullable: true
        createdAtUtc:
          type: string
          description: UTC timestamp when the transfer was created
          format: date-time
          example: '2024-03-20T10:30:00Z'
        requestedAmount:
          type: object
          description: >-
            Requested amount for the transfer in USDC smallest currency unit
            (1000000 = 1 USD) (only for async transfers)
          example: '1000000'
          nullable: true
        updatedAtUtc:
          type: string
          description: UTC timestamp when the transfer was last updated
          format: date-time
          example: '2024-03-20T10:30:00Z'
        asyncStatus:
          type: string
          description: Current status of the async transfer request
          enum:
            - PendingLiquidation
            - Liquidated
            - Cancelled
          example: pending
        chainId:
          type: object
          description: Chain ID where the transfer occurred (null for async transfers)
          example: 1
          nullable: true
      required:
        - id
        - type
        - status
        - transactionHash
        - netAmount
        - fee
        - createdAtUtc
        - requestedAmount
        - updatedAtUtc
        - asyncStatus
        - chainId
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````