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

# Create Transfer

> Moves funds out of an account. `type` selects the kind of movement (default `ledger`): `ledger` transfers credit between two ledger accounts and returns a Transfer; `wallet_send` sends USDT from the origin account's Ethereum wallet to a recipient; `claim_link` funds a shareable claim link anyone with the URL can redeem.



## OpenAPI

````yaml /openapi/api-v1-native.yml post /transfers
openapi: 3.1.0
info:
  title: Whop API
  description: >-
    Hand-written V1 endpoints. Merged into the GraphqlRestProxy-generated schema
    at build time.
  version: v1
servers:
  - url: https://{defaultHost}
    variables:
      defaultHost:
        default: api.whop.com/api/v1
security: []
paths:
  /transfers:
    parameters:
      - $ref: '#/components/parameters/ApiVersionDate'
    post:
      tags:
        - Transfers
      summary: Create Transfer
      description: >-
        Moves funds out of an account. `type` selects the kind of movement
        (default `ledger`): `ledger` transfers credit between two ledger
        accounts and returns a Transfer; `wallet_send` sends USDT from the
        origin account's Ethereum wallet to a recipient; `claim_link` funds a
        shareable claim link anyone with the URL can redeem.
      operationId: createTransfer
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - ledger
                    - wallet_send
                    - claim_link
                  description: The kind of money movement. Defaults to ledger.
                origin_id:
                  type: string
                  description: >-
                    The account sending the funds. A user ID (user_xxx), account
                    ID (biz_xxx), or ledger account ID (ldgr_xxx).
                destination_id:
                  type: string
                  description: >-
                    The recipient. Required for ledger and wallet_send (a
                    user_/biz_/ldgr_ ID, or — for sends — an email). Omit for
                    claim_link.
                amount:
                  type: number
                  description: >-
                    The amount to move, in the transfer currency. For example
                    25.00.
                currency:
                  type: string
                  description: Currency, such as `usd`. Required for ledger transfers.
                  example: usd
                idempotence_key:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Ledger transfers only. A unique key to prevent duplicate
                    transfers.
                notes:
                  type:
                    - string
                    - 'null'
                  description: Ledger transfers only. A short note describing the transfer.
                metadata:
                  type:
                    - object
                    - 'null'
                  additionalProperties: true
                  description: >-
                    Ledger transfers only. Custom key-value pairs attached to
                    the transfer. Max 50 keys, 100 chars per key, 500 chars per
                    string value.
                expires_at:
                  type:
                    - string
                    - 'null'
                  format: date-time
                  description: >-
                    claim_link only. Link expiry as an ISO 8601 timestamp.
                    Defaults to 24 hours from creation.
                redeemable_count:
                  type: integer
                  description: >-
                    claim_link only. How many different users can claim the
                    link. Defaults to 1.
              required:
                - origin_id
                - amount
        required: true
      responses:
        '201':
          description: money movement created
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    title: Transfer
                    description: A transfer of credit between two ledger accounts.
                    properties:
                      id:
                        type: string
                        description: Transfer ID.
                      amount:
                        type: number
                        description: Transfer amount.
                      currency:
                        type: string
                        description: Transfer currency.
                      created_at:
                        type: string
                        format: date-time
                        description: When the transfer was created.
                      fee_amount:
                        type:
                          - number
                          - 'null'
                        description: Fee charged for the transfer.
                      notes:
                        type:
                          - string
                          - 'null'
                        description: Transfer note.
                      metadata:
                        type:
                          - object
                          - 'null'
                        additionalProperties: true
                        description: Custom metadata attached to the transfer.
                      origin_ledger_account_id:
                        type: string
                        description: Source ledger account ID.
                      destination_ledger_account_id:
                        type: string
                        description: Destination ledger account ID.
                      origin:
                        oneOf:
                          - type: object
                            title: Company
                            properties:
                              typename:
                                type: string
                                enum:
                                  - Company
                              id:
                                type: string
                                description: Account ID.
                              route:
                                type:
                                  - string
                                  - 'null'
                                description: Account route.
                              title:
                                type:
                                  - string
                                  - 'null'
                                description: Account display name.
                            required:
                              - typename
                              - id
                          - type: object
                            title: User
                            properties:
                              typename:
                                type: string
                                enum:
                                  - User
                              id:
                                type: string
                                description: User ID.
                              name:
                                type:
                                  - string
                                  - 'null'
                                description: User display name.
                              username:
                                type: string
                                description: User's username.
                            required:
                              - typename
                              - id
                        discriminator:
                          propertyName: typename
                        description: Account or user sending funds.
                      destination:
                        oneOf:
                          - type: object
                            title: Company
                            properties:
                              typename:
                                type: string
                                enum:
                                  - Company
                              id:
                                type: string
                                description: Account ID.
                              route:
                                type:
                                  - string
                                  - 'null'
                                description: Account route.
                              title:
                                type:
                                  - string
                                  - 'null'
                                description: Account display name.
                            required:
                              - typename
                              - id
                          - type: object
                            title: User
                            properties:
                              typename:
                                type: string
                                enum:
                                  - User
                              id:
                                type: string
                                description: User ID.
                              name:
                                type:
                                  - string
                                  - 'null'
                                description: User display name.
                              username:
                                type: string
                                description: User's username.
                            required:
                              - typename
                              - id
                        discriminator:
                          propertyName: typename
                        description: Account or user receiving funds.
                    required:
                      - id
                      - amount
                      - currency
                      - created_at
                      - origin_ledger_account_id
                      - destination_ledger_account_id
                      - origin
                      - destination
                  - type: object
                    title: Send
                    description: >-
                      Returned for a wallet_send: an onchain USDT send to a
                      recipient.
                    properties:
                      object:
                        type: string
                        enum:
                          - send
                      tx_hash:
                        type: string
                      amount:
                        type: string
                      currency:
                        type: string
                      source:
                        type: object
                        properties:
                          account_id:
                            type: string
                          address:
                            type: string
                        required:
                          - account_id
                          - address
                      destination:
                        type: object
                        properties:
                          account_id:
                            type: string
                          address:
                            type: string
                        required:
                          - account_id
                          - address
                    required:
                      - object
                      - tx_hash
                      - amount
                      - currency
                      - source
                      - destination
                  - type: object
                    title: ClaimLink
                    description: >-
                      Returned for a claim_link: a shareable URL anyone can open
                      to claim the funds.
                    properties:
                      object:
                        type: string
                        enum:
                          - claim_link
                      id:
                        type: string
                      claim_url:
                        type: string
                      status:
                        type: string
                      amount:
                        type: string
                      currency:
                        type: string
                      redeemable_count:
                        type: integer
                      expires_at:
                        type:
                          - string
                          - 'null'
                        format: date-time
                      source:
                        type: object
                        properties:
                          account_id:
                            type: string
                        required:
                          - account_id
                    required:
                      - object
                      - id
                      - claim_url
                      - status
                      - amount
                      - currency
                      - redeemable_count
                      - expires_at
                      - source
        '400':
          $ref: '#/components/responses/InvalidParameters'
          description: request is invalid
        '401':
          $ref: '#/components/responses/Unauthorized'
          description: missing or invalid authentication
        '403':
          $ref: '#/components/responses/Forbidden'
          description: credential lacks the required scope
      security:
        - bearerAuth:
            - payout:transfer_funds
        - bearerAuth:
            - payout:withdraw_funds
        - bearerAuth:
            - airdrop_link:manage
components:
  parameters:
    ApiVersionDate:
      name: Api-Version-Date
      in: header
      required: false
      schema:
        type: string
        format: date
        example: '2026-07-01'
      description: Pins the request to a dated API version.
  responses:
    InvalidParameters:
      description: Invalid Parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
  schemas:
    V1ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              description: Machine-readable error code.
            message:
              type: string
              description: Human-readable error message.
          required:
            - type
            - message
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: auth-scheme
      description: >-
        An account API key, account scoped JWT, app API key, or user OAuth
        token.

````