Skip to main content
POST
Withdraw from account balance

Authorizations

Authorization
string
header
required

Firebase ID token from /auth or any paid route, sent as a Bearer token: Authorization: Bearer <id_token> (the Bearer prefix is required).

Headers

Idempotency-Key
string

Optional client-generated unique key (a UUID works) that makes this write safe to retry. A retry with the same key within 24 hours returns the recorded response of the original request, marked with an Idempotency-Replayed: true header, instead of performing the write again. Reusing a key with a different body or route is rejected with 422 (code: idempotency_key_reused); a retry that arrives while the original is still running gets 409 (code: idempotency_key_in_progress), so wait a moment and retry with the same key. Keys are scoped to the authenticated account.

Maximum string length: 255

Body

application/json
amount
number
required

Amount to withdraw in USD

Required range: x >= 0.01
solana_address
string
required

Solana wallet address that receives the USDC. Must be a valid base58 Solana address.

Response

Withdrawal accepted. The withdrawal is recorded in a pending state and the USDC is sent on Solana within a few minutes, so this response reports that the request was accepted, not that it settled. Poll status_url (also returned in the Location header) until withdrawal.state reaches a terminal value.

success
boolean
status_url
string<uri>

Absolute URL to poll for this withdrawal's state. Always present, including on an idempotent replay, so prefer it over the Location header.

Example:

"https://laso.finance/get-withdrawal-status?withdrawal_id=abc123"

withdrawal
object

A withdrawal record.