Deposit methods
ACH via Plaid
Pull funds from a linked bank account. Requires a linked bank account.Manual bank transfer
The user sends a bank transfer using instructions provided in the response:expires_at if funds are not received.
Tracking deposit status
| Status | Meaning | Next |
|---|---|---|
pending | Created, not yet initiated | Wait or cancel |
processing | ACH initiated with bank | Wait |
received | Funds received, settling | Wait |
completed | Funds in wallet, ready to trade | Trade |
failed | Transfer failed | Check failure_reason, retry |
transfer.deposit.*) for real-time status updates instead of polling.
Withdrawals
Withdraw funds to a linked bank account:Withdrawal statuses
| Status | Meaning |
|---|---|
pending | Created, can be canceled |
processing | ACH initiated |
submitted | Submitted to bank |
completed | Funds delivered |
failed | Transfer failed |
Canceling a withdrawal
Onlypending withdrawals can be canceled:
Idempotency
Always includeIdempotency-Key headers on deposit and withdrawal requests. This prevents duplicate transfers if a request is retried due to network issues or timeouts.
Error handling
| Error | Cause | Resolution |
|---|---|---|
BLUM-400-* | Invalid amount or missing fields | Check request body |
BLUM-422-* | Insufficient funds (withdrawal) | Check wallet balance |
BLUM-409-* | Duplicate idempotency key with different body | Use a new key for different operations |