Request a withdrawal
Requests a withdrawal from the user’s spendable balance. Two rails: bank (default) pays a saved destination by wire; address sends USDC on Base to destination_address. Both are processed manually by the Agentcard team, usually within 1-3 business days; the user is emailed when the request is received and again when it is sent. Open (not yet completed or rejected) requests count against the balance, so a user cannot over-request. Amounts range from 10,000.00.
How it works
Requests a withdrawal from the user’s spendable balance. Two rails:bank(default) — pays a saved destination by ACH or international wire. Pass therecipient_idfrom saved destinations; if the user has none yet, save one first.address— sends USDC on Base todestination_address(a0xaddress the user provides). Agentcard-managed addresses are rejected (internal_destination).
requested; the status then walks requested → processing → completed (or rejected), and the user is emailed when the request is received and again when it is sent.
- Amounts range from 10,000.00 per request.
- Open requests hold the balance: they count against the user’s spendable balance until they complete or are rejected, so a user can never over-request.
insufficient_fundsreturnsavailable_cents— the balance net of holds — for a helpful retry message. - Only what the user can actually spend is withdrawable. Money your company allocated to a user under the company-funded flow is not.
- You can switch user withdrawals off for your whole organization from the dashboard (Settings → General → User withdrawals); while off, these endpoints return
withdrawals_disabled.
Authorizations
A platform access token. Get one on the Create an access token endpoint by exchanging your client_id + client_secret, then send it as Authorization: Bearer <token>. Tokens live one hour.
Body
The connected user's id.
Amount in USD cents, 200 to 1000000.
bank, address Bank rail: the saved destination to pay (wrec_...).
Address rail: a 0x-prefixed address on Base to receive USDC. Agentcard-managed addresses are rejected.
Response
The withdrawal, in requested.
A withdrawal request. Both rails are processed manually: the status walks requested → processing → completed (or rejected), and the user is emailed at each step.
withdrawal Withdrawal id (wd_...).
requested, processing, completed, rejected bank pays a saved recipient by wire; address sends USDC on Base to the supplied address.
bank, address Set on the address rail: the Base address receiving USDC.
Set when rejected, e.g. rejected_by_ops.
The saved bank destination, when the rail is bank.