Bulk Transfers
The Bulk Transfers API allows you to send multiple crypto transfers in a single batch. Upload a CSV or spreadsheet, preview the parsed items, create a draft, confirm execution, and retry failed items. You can also schedule recurring bulk transfers using templates.
Upload Preview
Use Case
Upload a CSV or XLSX file to preview the parsed transfer items before creating a batch. The response separates valid items from rows with errors, allowing you to review and correct before submission.
Request
Content type must be multipart/form-data.
CSV or XLSX file containing transfer rows with columns for chain, currency, address, amount, and an optional description. Maximum file size: 5MB.
Response Body
The preview response separates valid items from invalid rows, giving you a chance to review before creating a batch.
Array of successfully parsed transfer items from the uploaded file.
1-based row number corresponding to the row in the uploaded file.
The blockchain network for the transfer (e.g., 'bitcoin', 'tron', 'ethereum').
Currency code for the transfer: BTC, USDT, or USDC. Must match a supported currency on the specified chain.
Recipient wallet address. Must be valid for the specified chain.
Transfer amount as a decimal string (e.g., '0.001' for BTC, '1500.00' for USDT).
Optional memo or label for the transfer item.
Array of rows that failed validation, each with the row number, address, and rejection reason.
1-based row number of the invalid row in the uploaded file.
The wallet address from the invalid row as it appeared in the uploaded file.
Reason the row failed validation (e.g., 'Invalid Bitcoin address format', 'Unsupported currency').
Number of rows that passed validation.
Number of rows that failed validation.
Create Bulk Transfer Draft
Use Case
Creates a new bulk transfer batch in draft status from an array of transfer items. The batch must be confirmed before any transfers are executed.
Request Body
Include the transfer items and optional batch-level settings in the request body.
Batch description for internal identification (e.g., 'March 2026 Payroll').
Array of transfer items to include in the batch, each requiring at minimum chain, currency, address, and amount.
Optional 1-based row number mapping this item back to its source file row, echoed in the response.
The blockchain network for the transfer (e.g., 'bitcoin', 'tron', 'ethereum').
Currency code for the transfer: BTC, USDT, or USDC. Must match a supported currency on the specified chain.
Recipient wallet address. Must be valid for the specified chain.
Transfer amount as a decimal string (e.g., '0.001' for BTC, '1500.00' for USDT).
Optional memo or label for the transfer item.
If true, valid items are processed even if some fail validation.
Client-provided key to prevent duplicate batch creation.
Response Body
The response includes the created batch and its items with their initial statuses.
Unique identifier (UUID) for the batch.
Identifier of the company account that owns this batch.
Batch description for internal identification.
Current batch status: draft, pending, processing, completed, failed, or cancelled.
Total number of items in the batch.
Number of items successfully completed.
Number of items that failed.
ISO 8601 timestamp when the batch was created.
ISO 8601 timestamp when the batch was confirmed. Empty if still in draft.
ISO 8601 timestamp when all items finished processing. Empty if the batch has not yet completed.
Array of transfer item objects belonging to this batch.
Unique identifier (UUID) for this individual transfer item within the batch.
Item status: pending, processing, confirmed, or failed.
Reason the item failed. Empty if not failed.
Number of retry attempts for this item.
Associated withdrawal ID once processed. Empty if not yet processed.
List Bulk Transfers
Use Case
Retrieves all bulk transfer batches with optional filtering and pagination. Use this to display batch history, monitor processing status, or search for specific batches.
Response Body
Returns a paginated list of batches matching your filters, each with its processing status and item counts.
Array of bulk transfer batch objects matching the requested filters.
Cursor token for the next page of results. Empty when on the last page.
The response body is identical to that of Create Bulk Transfer Draft. Refer to the Create Draft Response section for field explanations.
Get Bulk Transfer
Use Case
Retrieves a specific bulk transfer batch along with all its items. Use this to check the status of individual transfers within a batch and identify any failed items.
Path Parameters
Specify the batch ID to retrieve.
UUID of the bulk transfer batch to retrieve.
Response Body
Returns the full batch object including all transfer items and their individual statuses.
The response is identical to that of Create Bulk Transfer Draft. Refer to the Create Draft Response section for field explanations.
Confirm Bulk Transfer
Use Case
Confirms a draft batch and initiates execution of all transfers. This is an irreversible action — once confirmed, the transfers will begin processing.
Path Parameters
Specify the batch ID to confirm.
UUID of the draft batch to confirm. The batch must be in 'draft' status.
Response Body
The response confirms the batch has moved to processing status.
Unique identifier (UUID) for the batch.
Current batch status: draft, pending, processing, completed, failed, or cancelled.
ISO 8601 timestamp when the batch was confirmed.
Retry Failed Items
Use Case
Retries specific failed items in a batch. Use this after resolving the issue that caused the failure (e.g., topping up your balance) to re-process only the items that need it.
Path Parameters
Specify the batch containing the failed items.
UUID of the batch containing the failed items to retry.
Request Body
Provide the IDs of the specific items you want to retry.
Array of UUIDs identifying the specific failed items to retry. Only items with 'failed' status will be re-queued.
Response Body
The response shows the retried items with their updated status and retry count.
Unique identifier (UUID) for the batch.
Current batch status: draft, pending, processing, completed, failed, or cancelled.
Array of the transfer items submitted for retry with their updated status and retry count.
Unique identifier (UUID) for this individual transfer item.
Item status: pending, processing, confirmed, or failed.
Number of retry attempts for this item.