Skip to main content
POST
/
accounts
/
{account_id}
/
withdrawals
Initiate a new withdrawal
curl --request POST \
  --url https://service.bluumfinance.com/v1/accounts/{account_id}/withdrawals \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "amount": "500.00",
  "method": "ach",
  "currency": "USD",
  "description": "Monthly withdrawal to checking account",
  "wire_options": {}
}
'
{
  "withdrawal_id": "wdr_a1b2c3d4e5f6g7h8",
  "account_id": "3d0b0e65-35d3-4dcd-8df7-10286ebb4b4b",
  "wallet_id": "wal_x1y2z3a4b5c6d7e8",
  "method": "ach",
  "status": "processing",
  "amount": "500.00",
  "currency": "USD",
  "description": "Monthly payout",
  "method_details": {
    "providerTransferId": "trf_xyz789",
    "providerReference": "ref_abc123"
  },
  "destination_details": {
    "bankName": "Chase Bank",
    "accountMask": "****5678"
  },
  "initiated_at": "2026-01-17T09:00:00.000Z",
  "submitted_at": "2026-01-17T10:00:00.000Z",
  "completed_at": "2026-01-18T12:00:00.000Z",
  "failure_reason": "Invalid bank account",
  "created_at": "2026-01-17T08:00:00.000Z"
}

Documentation Index

Fetch the complete documentation index at: https://docs.bluumfinance.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

HTTP Basic Authentication using the API Key as username and API Secret as password.

Headers

Idempotency-Key
string

A unique key to ensure idempotency of the request. If a request with the same idempotency key has already been processed, the original response will be returned.

Path Parameters

account_id
string<uuid>
required

The unique identifier of the investor account.

Body

application/json
amount
string
required

The withdrawal amount as a decimal string with up to 2 decimal places.

Pattern: ^\d+(\.\d{1,2})?$
Example:

"500.00"

method
enum<string>
required

The funding method for the withdrawal:

  • ach: ACH bank transfer
  • wire: Wire transfer (future)
Available options:
ach,
wire
Example:

"ach"

currency
string
default:USD

The currency code (ISO 4217). Defaults to USD.

Required string length: 3
Example:

"USD"

description
string | null

Optional description for the withdrawal.

Maximum string length: 500
Example:

"Monthly withdrawal to checking account"

wire_options
object

Options for wire withdrawals. (Future implementation)

Example:
{}

Response

Withdrawal initiated successfully

Withdrawal record returned by the API.

withdrawal_id
string

Unique identifier for the withdrawal.

Example:

"wdr_a1b2c3d4e5f6g7h8"

account_id
string<uuid>

The investor account ID associated with the withdrawal.

Example:

"3d0b0e65-35d3-4dcd-8df7-10286ebb4b4b"

wallet_id
string

The wallet ID from which funds are withdrawn.

Example:

"wal_x1y2z3a4b5c6d7e8"

method
enum<string>

The funding method used.

Available options:
ach,
wire
Example:

"ach"

status
enum<string>

Current status of the withdrawal:

  • pending: Awaiting processing
  • processing: Being processed
  • submitted: Submitted to external provider
  • completed: Funds sent successfully
  • canceled: Cancelled by user or system
  • failed: Transfer failed
Available options:
pending,
processing,
submitted,
completed,
canceled,
failed
Example:

"processing"

amount
string

The withdrawal amount.

Example:

"500.00"

currency
string

The currency code.

Example:

"USD"

description
string | null

User-provided description.

Example:

"Monthly payout"

method_details
object

Method-specific details from the wallet provider.

Example:
{
"providerTransferId": "trf_xyz789",
"providerReference": "ref_abc123"
}
destination_details
object

Details about the destination bank account.

Example:
{
"bankName": "Chase Bank",
"accountMask": "****5678"
}
initiated_at
string<date-time> | null

When the withdrawal was initiated.

Example:

"2026-01-17T09:00:00.000Z"

submitted_at
string<date-time> | null

When the withdrawal was submitted to the external provider.

Example:

"2026-01-17T10:00:00.000Z"

completed_at
string<date-time> | null

When the withdrawal was completed and funds sent.

Example:

"2026-01-18T12:00:00.000Z"

failure_reason
string | null

Reason for failure, if applicable.

Example:

"Invalid bank account"

created_at
string<date-time>

When the withdrawal record was created.

Example:

"2026-01-17T08:00:00.000Z"