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

# Create Wallet Payout

> Processes a withdrawal request from a partner wallet to an on-chain blockchain address. Supports USDC, USDT withdrawals on Ethereum, Polygon, and Base networks.



## OpenAPI

````yaml POST /partners/wallets/payouts
openapi: 3.1.0
info:
  title: HyperRail
  description: HyperRail documentation
  license:
    name: MIT
  version: 1.0.0
servers:
  - description: Live server
    url: https://api.hyperrails.io/api/v1
security:
  - bearerAuth: []
paths:
  /partners/wallets/payouts:
    post:
      tags:
        - Withdrawals
      summary: Initiate Wallet Withdrawal
      description: >-
        Processes a withdrawal request from a partner wallet to an on-chain
        blockchain address. Supports USDC, USDT withdrawals on Ethereum,
        Polygon, and Base networks.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayoutRequest'
            examples:
              usdcWithdrawal:
                summary: USDC withdrawal on Ethereum
                value:
                  reference: wallet-payout-001
                  chain: ethereum
                  asset: usdc
                  amount: 100
                  toAddress: '0x742d35Cc6634C0532925a3b844Bc9e7595f0beB0'
              usdtWithdrawal:
                summary: USDT withdrawal on Polygon
                value:
                  reference: wallet-payout-002
                  chain: polygon
                  asset: usdt
                  amount: 50
                  toAddress: '0x742d35Cc6634C0532925a3b844Bc9e7595f0beB0'
      responses:
        '200':
          description: Withdrawal initiated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutResponse'
              example:
                reference: wallet-payout-001
                withdrawalId: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                walletId: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                chain: ethereum
                token: usdc
                amount: 100
                estimatedFee: 2.5
                toAddress: '0x742d35Cc6634C0532925a3b844Bc9e7595f0beB0'
                status: PENDING
                transactionHash: null
        '400':
          description: Bad request - Invalid withdrawal details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                insufficientBalance:
                  summary: Insufficient balance
                  value:
                    code: INSUFFICIENT_BALANCE
                    message: >-
                      Wallet balance (50 USDC) is less than requested amount
                      (100 USDC) plus fees
                invalidAddress:
                  summary: Invalid address
                  value:
                    code: INVALID_ADDRESS
                    message: toAddress is not a valid Ethereum address
                duplicateReference:
                  summary: Duplicate reference
                  value:
                    code: DUPLICATE_REFERENCE
                    message: >-
                      Withdrawal with reference 'wallet-payout-001' already
                      exists
        '401':
          description: Unauthorized - Invalid or missing authentication token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not found - Wallet not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: WALLET_NOT_FOUND
                message: No active wallet found for partner
        '422':
          description: Unprocessable entity - Withdrawal below minimum threshold
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: AMOUNT_TOO_LOW
                message: Minimum withdrawal amount is 10 USDC
components:
  schemas:
    PayoutRequest:
      type: object
      required:
        - reference
        - chain
        - asset
        - amount
        - toAddress
      properties:
        reference:
          type: string
          description: >-
            Unique idempotency reference for this withdrawal. Used to prevent
            duplicate withdrawals.
          example: wallet-payout-001
          minLength: 1
          maxLength: 100
        chain:
          type: string
          description: Blockchain network for the withdrawal
          example: ethereum
          enum:
            - ethereum
            - polygon
            - base
            - arbitrum
            - optimism
        asset:
          type: string
          description: Token/asset to withdraw
          example: usdc
          enum:
            - usdc
            - usdt
        amount:
          type: number
          description: 'Amount to withdraw (in token units, not subunits). Minimum: 10'
          example: 100
          minimum: 10
        toAddress:
          type: string
          description: Destination blockchain address (must be valid EVM address)
          example: '0x742d35Cc6634C0532925a3b844Bc9e7595f0beB0'
          pattern: ^0x[a-fA-F0-9]{40}$
        memo:
          type: string
          description: Optional memo/note for the withdrawal
          example: Payment to supplier
          maxLength: 255
    PayoutResponse:
      type: object
      properties:
        reference:
          type: string
          description: Unique reference provided in the request
          example: wallet-payout-001
        withdrawalId:
          type: string
          format: uuid
          description: System-generated withdrawal identifier
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        walletId:
          type: string
          format: uuid
          description: Partner wallet identifier
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        chain:
          type: string
          description: Blockchain network
          example: ethereum
          enum:
            - ethereum
            - polygon
            - base
            - arbitrum
            - optimism
        token:
          type: string
          description: Token being withdrawn
          example: usdc
          enum:
            - usdc
            - usdt
        amount:
          type: number
          description: Withdrawal amount
          example: 100
        estimatedFee:
          type: number
          description: Estimated gas fee in token units
          example: 2.5
        toAddress:
          type: string
          description: Destination address
          example: '0x742d35Cc6634C0532925a3b844Bc9e7595f0beB0'
        status:
          type: string
          description: Withdrawal status
          enum:
            - PENDING
            - PROCESSING
            - COMPLETED
            - FAILED
            - CANCELLED
          example: PENDING
        transactionHash:
          type: string
          description: Blockchain transaction hash (null until broadcast)
          example: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'
          nullable: true
        createdAt:
          type: string
          format: date-time
          description: Withdrawal creation timestamp
          example: '2026-04-24T10:30:00Z'
        estimatedCompletionAt:
          type: string
          format: date-time
          description: Estimated completion time
          example: '2026-04-24T10:35:00Z'
    Error:
      required:
        - code
        - message
      type: object
      properties:
        code:
          type: string
          description: Error code
          example: INVALID_CURRENCY
        message:
          type: string
          description: Error message
          example: 'Invalid source currency. Supported: NGN, GHS'
        details:
          type: object
          description: Additional error details
          additionalProperties: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: API key authentication using Bearer token

````