---
title: "Create a batch crypto transfer"
method: POST
path: "/v2/wallets/transfers/batches"
tags: ["Crypto Transfer"]
---

# Create a batch crypto transfer

`POST /v2/wallets/transfers/batches`

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

## Request body

- CreateBatchCryptoTransfer
  - `requestId` string, uuid, required
  - `currency` 'usdc', required
  - `chain` 'POLYGON', required
  - `source` object, required
    - `userId` string, uuid, required
  - `destination` object, required
    - `batch` object[], required
      - `userId` string, uuid
      - `walletAddress` string
      - `amount` string, required
  - `requireApproval` boolean — Whether this batch transfer requires approval before processing. - `true`: Transfer will enter approval workflow - `false` or omitted: Transfer proceeds immediately

## Response `200`

Success

- BatchCryptoTransferObject
  - `transferType` string, required
  - `transferDetails` object, required
    - `id` string, uuid, required
    - `requestId` string, uuid, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `chain` 'POLYGON', required
    - `currency` 'usdc', required
    - `contractAddress` string, required
    - `status` 'NOT_INITIATED' | 'CREATED' | 'INITIATED' | 'PENDING' | 'COMPLETED' | 'FAILED' | 'UNKNOWN', required
    - `source` object, required
      - `userId` string, uuid, required
      - `walletAddress` string, required
      - `walletType` 'INDIVIDUAL' | 'BUSINESS', required
    - `destination` object, required
      - `batch` object[], required
        - `amount` string, required
        - `userId` string, uuid
    - `receipt` object, required
      - `transactionHash` string, required
      - `userOpHash` string
      - `approval` object
        - `id` string, uuid
        - `status` string
        - `createdAt` string, date-time
        - `updatedAt` string, date-time
        - `transferId` string, uuid
        - `transferType` string
        - `fromDashboard` boolean
        - `initiatorProfileId` string, uuid
        - `votes` object[] — Array of approval votes (only present when status is PENDING_APPROVAL or REJECTED)
          - `approverId` string, uuid
          - `vote` 'APPROVE' | 'REJECT'
          - `comment` string
          - `createdAt` string, date-time

## Other responses

- `401` — Unauthorized
- `404` — Resource not found
- `500` — Internal Server Error

---

[API](https://skmtc.net/hifibridge/apis/hifi-api.md) · [All operations](https://skmtc.net/hifibridge/apis/hifi-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hifibridge/hifi-api/revisions/74d9e530fbea/schema)
