Withdrawals
Move funds from a platform-managed account to an external counterparty via supported rails.
Endpoints
POST
/withdrawals
Create withdrawal
POST
/withdrawals/{id}/accept
Accept withdrawal
POST
/withdrawals/{id}/cancel
Cancel withdrawal
GET
/withdrawals/{id}
Retrieve withdrawal
GET
/withdrawals/{id}/status
Retrieve withdrawal status
GET
/withdrawals/{id}/receipt
Retrieve withdrawal receipt
POST
/withdrawals
Create a withdrawal request to send funds to an external counterparty.
Request Body
| Field | Type | Description |
|---|---|---|
account_id required |
string | Source account ID |
counterparty_id required |
string | Destination counterparty ID |
amount required |
string | Withdrawal amount |
purpose required |
string | Purpose: PERSONAL_ACCOUNT, BUSINESS_PAYMENT, OTHER |
rail |
string | Payment rail (ACH, WIRE, FPS, SEPA) |
reference |
string | Optional reference |
Example Request
Request
{
"account_id": "acc_123456789",
"counterparty_id": "cpty_111222333",
"amount": "2500.00",
"purpose": "PERSONAL_ACCOUNT",
"rail": "ACH",
"reference": "Monthly transfer"
}
Response
201 Created
{
"id": "wth_777666555",
"account_id": "acc_123456789",
"counterparty_id": "cpty_111222333",
"amount": "2500.00",
"currency": "USD",
"rail": "ACH",
"purpose": "PERSONAL_ACCOUNT",
"status": "REQUESTED",
"created_at": "2026-01-15T10:30:00Z"
}
POST
/withdrawals/{id}/accept
Accept and authorize a withdrawal request.
Headers
| Header | Required | Description |
|---|---|---|
x-bultra-idempotency-id |
Recommended | Idempotency key for safe retries |
Response
200 OK
{
"id": "wth_777666555",
"status": "ACCEPTED",
"accepted_at": "2026-01-15T10:35:00Z",
"estimated_completion": "2026-01-17T17:00:00Z"
}
POST
/withdrawals/{id}/cancel
Cancel a pending withdrawal. Only withdrawals with status REQUESTED or ACCEPTED can be cancelled.
Response
200 OK
{
"id": "wth_777666555",
"status": "CANCELLED",
"cancelled_at": "2026-01-15T10:40:00Z"
}
GET
/withdrawals/{id}
Retrieve details of a specific withdrawal.
Response
200 OK
{
"id": "wth_777666555",
"account_id": "acc_123456789",
"counterparty_id": "cpty_111222333",
"amount": "2500.00",
"currency": "USD",
"rail": "ACH",
"purpose": "PERSONAL_ACCOUNT",
"status": "EXECUTED",
"reference": "Monthly transfer",
"created_at": "2026-01-15T10:30:00Z",
"accepted_at": "2026-01-15T10:35:00Z",
"executed_at": "2026-01-17T14:20:00Z"
}
GET
/withdrawals/{id}/status
Retrieve the current status and any RFI requirements for a withdrawal.
Response
200 OK
{
"id": "wth_777666555",
"status": "CHANGES_REQUESTED",
"required_documents": [
{
"id": "doc_req_001",
"type": "INVOICE",
"description": "Please provide invoice or receipt for this payment",
"status": "PENDING"
}
]
}
Withdrawal Status Values
| Status | Description |
|---|---|
REQUESTED |
Withdrawal created, awaiting acceptance |
ACCEPTED |
Withdrawal accepted, processing |
CHANGES_REQUESTED |
RFI triggered, documentation required |
IN_PROGRESS |
Funds in transit |
EXECUTED |
Withdrawal completed successfully |
FAILED |
Withdrawal failed |
CANCELLED |
Withdrawal was cancelled |
GET
/withdrawals/{id}/receipt
Download a receipt for a completed withdrawal.
Response
Returns the receipt as a PDF file.
200 OK
Content-Type: application/pdf
Content-Disposition: attachment; filename="withdrawal_receipt_wth_777666555.pdf"
[Binary PDF data]