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.

Bulk Transfer Endpoints

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.

Upload Preview

Request

Content type must be multipart/form-data.

1
filefileRequired

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.

1
parsed_itemsarray

Array of successfully parsed transfer items from the uploaded file.

2
row_indexnumber

1-based row number corresponding to the row in the uploaded file.

3
chainstring

The blockchain network for the transfer (e.g., 'bitcoin', 'tron', 'ethereum').

4
currencystring

Currency code for the transfer: BTC, USDT, or USDC. Must match a supported currency on the specified chain.

5
addressstring

Recipient wallet address. Must be valid for the specified chain.

6
amountstring

Transfer amount as a decimal string (e.g., '0.001' for BTC, '1500.00' for USDT).

7
descriptionstring

Optional memo or label for the transfer item.

8
errorsarray

Array of rows that failed validation, each with the row number, address, and rejection reason.

9
row_indexnumber

1-based row number of the invalid row in the uploaded file.

10
addressstring

The wallet address from the invalid row as it appeared in the uploaded file.

11
reasonstring

Reason the row failed validation (e.g., 'Invalid Bitcoin address format', 'Unsupported currency').

12
accepted_countnumber

Number of rows that passed validation.

13
rejected_countnumber

Number of rows that failed validation.

Response

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.

Create Bulk Transfer Draft

Request Body

Include the transfer items and optional batch-level settings in the request body.

1
descriptionstring

Batch description for internal identification (e.g., 'March 2026 Payroll').

2
itemsarrayRequired

Array of transfer items to include in the batch, each requiring at minimum chain, currency, address, and amount.

3
row_indexnumber

Optional 1-based row number mapping this item back to its source file row, echoed in the response.

4
chainstringRequired

The blockchain network for the transfer (e.g., 'bitcoin', 'tron', 'ethereum').

5
currencystringRequired

Currency code for the transfer: BTC, USDT, or USDC. Must match a supported currency on the specified chain.

6
addressstringRequired

Recipient wallet address. Must be valid for the specified chain.

7
amountstringRequired

Transfer amount as a decimal string (e.g., '0.001' for BTC, '1500.00' for USDT).

8
descriptionstring

Optional memo or label for the transfer item.

9
allow_partialboolean

If true, valid items are processed even if some fail validation.

10
idempotency_keystring

Client-provided key to prevent duplicate batch creation.

Request Body

Response Body

The response includes the created batch and its items with their initial statuses.

1
idstring

Unique identifier (UUID) for the batch.

2
company_idstring

Identifier of the company account that owns this batch.

3
descriptionstring

Batch description for internal identification.

4
statusstring

Current batch status: draft, pending, processing, completed, failed, or cancelled.

5
total_itemsnumber

Total number of items in the batch.

6
success_countnumber

Number of items successfully completed.

7
failed_countnumber

Number of items that failed.

8
created_atstring

ISO 8601 timestamp when the batch was created.

9
submitted_atstring

ISO 8601 timestamp when the batch was confirmed. Empty if still in draft.

10
completed_atstring

ISO 8601 timestamp when all items finished processing. Empty if the batch has not yet completed.

11
itemsarray

Array of transfer item objects belonging to this batch.

12
idstring

Unique identifier (UUID) for this individual transfer item within the batch.

13
statusstring

Item status: pending, processing, confirmed, or failed.

14
failure_reasonstring

Reason the item failed. Empty if not failed.

15
retriesnumber

Number of retry attempts for this item.

16
withdrawal_idstring

Associated withdrawal ID once processed. Empty if not yet processed.

Response

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.

List Bulk Transfers

Response Body

Returns a paginated list of batches matching your filters, each with its processing status and item counts.

1
batchesarray

Array of bulk transfer batch objects matching the requested filters.

2
next_page_tokenstring

Cursor token for the next page of results. Empty when on the last page.

Note

The response body is identical to that of Create Bulk Transfer Draft. Refer to the Create Draft Response section for field explanations.

Response

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.

Get Bulk Transfer

Path Parameters

Specify the batch ID to retrieve.

1
batchIdstringRequired

UUID of the bulk transfer batch to retrieve.

Response Body

Returns the full batch object including all transfer items and their individual statuses.

Note

The response is identical to that of Create Bulk Transfer Draft. Refer to the Create Draft Response section for field explanations.

Response

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.

Confirm Bulk Transfer

Path Parameters

Specify the batch ID to confirm.

1
batchIdstringRequired

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.

1
idstring

Unique identifier (UUID) for the batch.

2
statusstring

Current batch status: draft, pending, processing, completed, failed, or cancelled.

3
submitted_atstring

ISO 8601 timestamp when the batch was confirmed.

Response

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.

Retry Failed Items

Path Parameters

Specify the batch containing the failed items.

1
batchIdstringRequired

UUID of the batch containing the failed items to retry.

Request Body

Provide the IDs of the specific items you want to retry.

1
item_idsarrayRequired

Array of UUIDs identifying the specific failed items to retry. Only items with 'failed' status will be re-queued.

Request Body

Response Body

The response shows the retried items with their updated status and retry count.

1
idstring

Unique identifier (UUID) for the batch.

2
statusstring

Current batch status: draft, pending, processing, completed, failed, or cancelled.

3
itemsarray

Array of the transfer items submitted for retry with their updated status and retry count.

4
idstring

Unique identifier (UUID) for this individual transfer item.

5
statusstring

Item status: pending, processing, confirmed, or failed.

6
retriesnumber

Number of retry attempts for this item.

Response

Did you find this page useful?