Skip to main content
POST
Request a withdrawal

Authorizations

Authorization
string
header
required

Your API key, sent as Authorization: Bearer <key>. Live and test keys are separate; the key you send decides which world the call acts in. To try calls, use a test key (it starts with lst_test_): no real courier is sent and no real money moves, but webhooks fire and the dropoff.phone you give can receive WhatsApp messages, so use your own number. A live key (it starts with lst_live_) books and charges real deliveries.

Body

application/json

How much to move out of your balance.

amount_cents
integer
required

What your bank receives, in centavos.

Required range: x >= 1
kind
enum<string> | null

Defaults to standard.

Available options:
standard,
same_day,
null

Response

Created.

A request to move money out of your balance to your bank account.

id
string
required

The withdrawal id, wd_ prefixed.

Example:

"wd_2xN6bK9mR4tQ7vC1sZ8pLwYe"

amount_cents
integer
required

What your bank receives. On a same_day withdrawal the fee is a SECOND debit rather than a deduction, so this figure is what lands either way and fee_cents is what your balance loses on top of it.

fee_cents
integer
required

What the withdrawal cost, IVA included. Always 0 on a standard withdrawal. Always present.

currency
enum<string>
required
Available options:
MXN
kind
enum<string>
required

standard is the free path: your released balance only, sent in 1 to 3 business days. same_day costs fee_cents, can reach cash still on hold, and is sent the same day within the hours in POST /v1/withdrawals.

Available options:
standard,
same_day
status
enum<string>
required

pending until a human settles it. The move to paid or failed is what withdrawal.updated announces.

Available options:
pending,
paid,
failed
requested_at
string<date-time> | null
required
due_at
string<date-time> | null
required

When a same_day withdrawal is due to have been sent, stamped when you requested it and never recalculated afterwards. Null on every standard withdrawal: the free path promises a range of business days rather than an instant.

resolved_at
string<date-time> | null
required

Null while still pending.

clave_de_rastreo
string | null
required

The SPEI tracking key for the transfer: the identifier your own bank uses to locate the deposit. This is what you reconcile a payout against a bank statement with, and it is the same key you see in the dashboard for this withdrawal.

Always present, null until the transfer is sent. It stays null forever on a failed withdrawal, because no transfer happened.

Example:

"MBAN01002608120001234567"

test
boolean
required