Overview
The Withdraw API allows third-party partners to initiate cryptocurrency withdrawals on behalf of users and retrieve withdrawal history. All endpoints require API token authentication and are scoped to specific users.All endpoints require authentication via the
Authorization: Bearer <token> header. Contact your LootRush account manager to obtain your API token.Authentication
All requests must include an API token in the Authorization header:Create Withdrawal
Initiates a cryptocurrency withdrawal request for a user. The withdrawal is created as a queued transaction and processed asynchronously.Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | The unique identifier of the user making the withdrawal |
Request Body
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
amount | string | Yes | - | The amount to withdraw (as a string to support precision) |
currency | string | No | USDT | The cryptocurrency to withdraw (e.g., USDT, USDC) |
network | string | No | polygon | The blockchain network (e.g., polygon, ethereum) |
to | string | Yes | - | The recipient identifier. Can be an email address, user ID (UUID), or wallet address (0x-prefixed, 42 chars) |
externalId | string | No | - | An optional external identifier for tracking this withdrawal in your system |
Recipient Identifier (to parameter)
The to parameter accepts three formats:
-
Email address: Must contain
@symbol- Example:
[email protected]
- Example:
-
User ID: Must be a valid UUID
- Example:
550e8400-e29b-41d4-a716-446655440000
- Example:
-
Wallet address: Must start with
0xand be exactly 42 characters- Example:
0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb
- Example:
When an email or user ID is provided, the system will automatically resolve it to the user’s verified smart wallet address. If a wallet address is provided directly, it will be used as-is.
Example Request
Response
Status message indicating the withdrawal was created
Example Response
Error Responses
Error message describing what went wrong
| Status Code | Error Message | Description |
|---|---|---|
401 | Unauthorized | Invalid or missing API token |
401 | User not allowed | The specified user is not in the allowed list |
404 | User not found | The specified userId does not exist |
404 | Error finding user verified wallet | Could not resolve the recipient identifier |
404 | Wallet not found | The resolved wallet address is invalid |
403 | Receiver is not eligible to receive tokens | The recipient wallet is blocked from receiving tokens |
List Withdrawals
Retrieves a paginated list of withdrawal transactions for a user. Supports filtering by various criteria.Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | The unique identifier of the user whose withdrawals to retrieve |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
page | number | No | Page number (1-indexed). Default: 1 |
perPage | number | No | Number of results per page. Default: 20, Maximum: 200 |
bulkId | string | No | Filter by bulk payment ID (UUID) |
transactionHash | string | No | Filter by blockchain transaction hash |
status | string | No | Filter by withdrawal status (e.g., pending, queued, completed) |
externalId | string | No | Filter by external identifier you provided when creating the withdrawal |
Example Request
Response
Status message
Array of withdrawal objects. Each withdrawal includes:
Entry ID
Bulk payment ID
Current status of the withdrawal entry
Amount to be paid (as string for precision)
Currency code (e.g., USDT)
Recipient wallet address
External identifier, if provided
Blockchain transaction hash (if transaction has been processed)
Status of the token transfer on the blockchain
Error message, if the withdrawal failed
ISO 8601 timestamp of when the withdrawal was created
ISO 8601 timestamp of when the withdrawal was last updated
Example Response
Error Responses
| Status Code | Error Message | Description |
|---|---|---|
401 | Unauthorized | Invalid or missing API token |
401 | User not allowed | The specified user is not in the allowed list |
404 | User not found | The specified userId does not exist |
Withdrawal Statuses
Withdrawals progress through the following statuses:| Status | Description |
|---|---|
queued | Withdrawal has been created and is waiting to be processed |
pending | Withdrawal is being prepared for processing |
processing | Withdrawal transaction is being executed on the blockchain |
completed | Withdrawal has been successfully processed |
failed | Withdrawal failed (check errorMessage for details) |
Withdrawals are processed asynchronously. After creating a withdrawal, use the
bulkId returned in the response to query the withdrawal status via the List Withdrawals endpoint.Rate Limits
Best Practices
-
Store the
bulkId: Always store thebulkIdreturned from the Create Withdrawal endpoint for tracking and reconciliation purposes. -
Use
externalId: Provide a uniqueexternalIdwhen creating withdrawals to easily track them in your system. -
Poll for status: After creating a withdrawal, periodically query the List Withdrawals endpoint using the
bulkIdorexternalIdto check the status. - Handle errors gracefully: Implement retry logic for transient errors, and handle blocked receivers appropriately.
- Validate amounts: Ensure amounts are provided as strings to maintain precision for decimal values.
-
Monitor transaction hashes: Once a withdrawal has a
transactionHash, you can track it on the blockchain explorer for the respective network.
Support
For API support, please contact:- Email: [email protected]
- Dashboard: LootRush Dashboard