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

# Create a batch crypto transfer

> Create a batch crypto transfer from a single wallet address to multiple wallet addresses among users.




## OpenAPI

````yaml https://production.hifi.com/api/v2/openapi.json post /v2/wallets/transfers/batches
openapi: 3.0.0
info:
  title: Hifi API
  version: 2.0.0
  description: API documentation for Hifi
servers:
  - url: https://production.hifibridge.com
    description: Production server
  - url: https://sandbox.hifibridge.com
    description: Sandbox server
security:
  - bearerAuth: []
tags:
  - name: Common
    description: Common endpoints
  - name: User
    description: User endpoints
  - name: Kyc
    description: Kyc endpoints
  - name: Wallet
    description: Wallet endpoints
  - name: Account
    description: Account endpoints
  - name: External Account
    description: External Account endpoints for managing beneficiary bank accounts
  - name: Fiat Account
    description: Fiat Account endpoints
  - name: Virtual Account
    description: Virtual Account endpoints
  - name: Onramp
    description: Onramp endpoints
  - name: Offramp
    description: Offramp endpoints
  - name: Orchestration Address
    description: >-
      Orchestration Address endpoints — persistent on-chain wallets that
      automatically off-ramp incoming stablecoin deposits to a USD bank account
  - name: Crypto Transfer
    description: Crypto Transfer endpoints
  - name: Cross-Chain Bridge
    description: Cross-Chain Bridge endpoints
  - name: Token Swap
    description: Token Swap endpoints
  - name: Canton Offers
    description: Canton Offers endpoints
  - name: Transfer Rules
    description: Transfer approval rules and configuration
  - name: Transfer Approvals
    description: Transfer approval workflow and admin actions
  - name: File
    description: File endpoints
  - name: Reporting
    description: Reporting and metrics endpoints
paths:
  /v2/wallets/transfers/batches:
    post:
      tags:
        - Crypto Transfer
      summary: Create a batch crypto transfer
      description: >
        Create a batch crypto transfer from a single wallet address to multiple
        wallet addresses among users.
      requestBody:
        $ref: '#/components/requestBodies/CreateBatchCryptoTransferBody'
      responses:
        '200':
          $ref: '#/components/responses/BatchCryptoTransferResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
components:
  requestBodies:
    CreateBatchCryptoTransferBody:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateBatchCryptoTransfer'
  responses:
    BatchCryptoTransferResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BatchCryptoTransferObject'
    UnauthorizedResponse:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Unauthorized'
    NotFoundResponse:
      description: Resource not found
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                enum:
                  - error
              error:
                type: object
                properties:
                  code:
                    type: string
                  message:
                    type: string
    InternalServerErrorResponse:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalServerError'
  schemas:
    CreateBatchCryptoTransfer:
      type: object
      required:
        - requestId
        - currency
        - chain
        - source
        - destination
      properties:
        requestId:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        currency:
          type: string
          enum:
            - usdc
            - usdt
            - usdg
            - pyusd
          example: usdc
        chain:
          type: string
          enum:
            - POLYGON
            - ETHEREUM
            - SOLANA
            - BASE
            - BSC
            - FLOW_EVM
            - TRON
          example: POLYGON
        source:
          type: object
          required:
            - userId
          properties:
            userId:
              type: string
              format: uuid
              example: a1f70737-3844-4782-a321-ad481108a8ec
        destination:
          type: object
          required:
            - batch
          properties:
            batch:
              type: array
              maxItems: 50
              items:
                type: object
                required:
                  - amount
                properties:
                  userId:
                    type: string
                    format: uuid
                    example: a1f70737-3844-4782-a321-ad481108a8ec
                  walletAddress:
                    type: string
                    pattern: ^0x[a-fA-F0-9]{40}$
                    example: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'
                  amount:
                    type: string
                    example: '0.01'
        requireApproval:
          type: boolean
          description: |
            Whether this batch transfer requires approval before processing.
            - `true`: Transfer will enter approval workflow
            - `false` or omitted: Transfer proceeds immediately
          default: false
          example: false
    BatchCryptoTransferObject:
      type: object
      required:
        - transferType
        - transferDetails
      properties:
        transferType:
          type: string
          example: WALLET.TRANSFER.BATCH
        transferDetails:
          type: object
          required:
            - id
            - requestId
            - createdAt
            - updatedAt
            - chain
            - currency
            - contractAddress
            - status
            - source
            - destination
            - receipt
          properties:
            id:
              type: string
              format: uuid
              example: 879af7af-67bf-469f-b718-d262a39d4857
            requestId:
              type: string
              format: uuid
              example: 14a84906-b72e-4847-b34d-51b9048fa6a5
            createdAt:
              type: string
              format: date-time
              example: '2025-04-05T00:55:50.609Z'
            updatedAt:
              type: string
              format: date-time
              example: '2025-04-05T00:56:33.236Z'
            chain:
              type: string
              enum:
                - POLYGON
              example: POLYGON
            currency:
              type: string
              enum:
                - usdc
              example: usdc
            contractAddress:
              type: string
              example: '0x41e94eb019c0762f9bfcf9fb1e58725bfb0e7582'
            status:
              type: string
              enum:
                - NOT_INITIATED
                - CREATED
                - INITIATED
                - PENDING
                - COMPLETED
                - FAILED
                - UNKNOWN
              example: COMPLETED
            source:
              type: object
              required:
                - userId
                - walletAddress
                - walletType
              properties:
                userId:
                  type: string
                  format: uuid
                  example: 6a13bd30-b3a3-4d44-af33-0b32e58261be
                walletAddress:
                  type: string
                  pattern: ^0x[a-fA-F0-9]{40}$
                  example: '0x99a8c5ED386d217BC6ff0AA1b3585606D475432B'
                walletType:
                  type: string
                  enum:
                    - INDIVIDUAL
                    - BUSINESS
                  example: INDIVIDUAL
            destination:
              type: object
              required:
                - batch
              properties:
                batch:
                  type: array
                  maxItems: 50
                  items:
                    type: object
                    required:
                      - amount
                    properties:
                      amount:
                        type: string
                        example: '0.04'
                      userId:
                        type: string
                        format: uuid
                        example: 6a13bd30-b3a3-4d44-af33-0b32e58261be
            receipt:
              type: object
              required:
                - transactionHash
              properties:
                transactionHash:
                  type: string
                  example: >-
                    0x57f0cd3429ea425d982882243428ef4a1eda5f1be2157c1b34ea48b49b24fe7f
                userOpHash:
                  type: string
                  example: >-
                    0xef7bdb071b1fcfb5df629bd4d27ffa6dc32d0a5df676f26fb8c25311df1185ac
                approval:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      example: 006737ca-42d5-4780-b3c2-aeb63279c591
                    status:
                      type: string
                      example: PENDING
                    createdAt:
                      type: string
                      format: date-time
                      example: '2025-02-03T16:11:36.654998+00:00'
                    updatedAt:
                      type: string
                      format: date-time
                      example: '2025-02-03T16:12:41.503+00:00'
                    transferId:
                      type: string
                      format: uuid
                      example: 006737ca-42d5-4780-b3c2-aeb63279c591
                    transferType:
                      type: string
                      example: WALLET.TRANSFER.BATCH
                    fromDashboard:
                      type: boolean
                      example: true
                    initiatorProfileId:
                      type: string
                      format: uuid
                      example: aec66b02-4f3f-471c-839a-94820b36abb2
                    votes:
                      type: array
                      description: >-
                        Array of approval votes (only present when status is
                        PENDING_APPROVAL or REJECTED)
                      items:
                        type: object
                        properties:
                          approverId:
                            type: string
                            format: uuid
                            example: aec66b02-4f3f-471c-839a-94820b36abb2
                          vote:
                            type: string
                            enum:
                              - APPROVE
                              - REJECT
                            example: REJECT
                          comment:
                            type: string
                            example: Transfer amount exceeds daily limit
                          createdAt:
                            type: string
                            format: date-time
                            example: '2025-02-03T16:12:41.503+00:00'
      example:
        transferType: WALLET.TRANSFER.BATCH
        transferDetails:
          id: 879af7af-67bf-469f-b718-d262a39d4857
          requestId: 14a84906-b72e-4847-b34d-51b9048fa6a5
          createdAt: '2025-04-05T00:55:50.609Z'
          updatedAt: '2025-04-05T00:56:33.236Z'
          chain: POLYGON
          currency: usdc
          contractAddress: '0x41e94eb019c0762f9bfcf9fb1e58725bfb0e7582'
          status: COMPLETED
          source:
            userId: 6a13bd30-b3a3-4d44-af33-0b32e58261be
            walletAddress: '0x99a8c5ED386d217BC6ff0AA1b3585606D475432B'
            walletType: INDIVIDUAL
          destination:
            batch:
              - amount: '0.04'
                userId: 6a13bd30-b3a3-4d44-af33-0b32e58261be
              - amount: '0.05'
                userId: 6a13bd30-b3a3-4d44-af33-0b32e58261be
              - amount: '0.06'
                userId: 6a13bd30-b3a3-4d44-af33-0b32e58261be
              - amount: '0.03'
                userId: 6a13bd30-b3a3-4d44-af33-0b32e58261be
              - amount: '0.03'
                userId: 6a13bd30-b3a3-4d44-af33-0b32e58261be
          receipt:
            transactionHash: '0x57f0cd3429ea425d982882243428ef4a1eda5f1be2157c1b34ea48b49b24fe7f'
            userOpHash: '0xef7bdb071b1fcfb5df629bd4d27ffa6dc32d0a5df676f26fb8c25311df1185ac'
    Unauthorized:
      type: object
      properties:
        code:
          type: integer
          description: Error code
        error:
          type: string
          description: Error type
        errorDetails:
          type: string
          description: Detailed error message
    InternalServerError:
      type: object
      properties:
        code:
          type: integer
          description: Error code
        error:
          type: string
          description: Error type
        errorDetails:
          type: string
          description: Detailed error message
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````