Overview
Your agent can send dollars to a real bank account withGET /send-bank-payment. The payment is funded with USDC on Base or Solana via x402; Laso converts it and pays the recipient’s bank account by ACH.
The shape mirrors Venmo and PayPal payouts: registering who gets paid is free, and only the send itself is a paid call. The difference is that a bank recipient is registered ahead of time and referred to afterwards by its destination_id, rather than passed inline on every request.
Sending requires a banking profile on the paying account, and opening one
requires identity verification by the human who owns it. Set that up first:
see bank accounts, then come back here.
How it works
1
Register the payee (free, once)
createBankingRecipient for the person or company, then
addBankingDestination for their bank account. The second call returns the
destinationId you will pay to. Both are free.2
Agent calls /send-bank-payment
An x402 request with
amount and destination_id. The USDC price is the
amount plus a 0.25% transfer fee (with a $1.50 minimum).3
Laso queues the transfer
The USDC credits your Laso account balance via the standard deposit webhook;
Laso debits the gross amount and sends it to the off-ramp that pays out to
that destination. If no off-ramp exists for it yet, one is opened for you.
4
Funds arrive
ACH normally settles in 1-2 business days. Follow it with
listBankingTransactions.Finding a destination_id
addBankingDestination returns it when you attach the bank account. To look up
what you already have, GET /bank-recipients is free:
Sending
destination block echoes back which bank account is being paid. Check it before treating a send as done. A destination_id is an opaque string, and this is the only point where a mistyped one becomes visible.
Amounts and fees
The limits and the fee are enforced by the
sendBankingPayout callable that sits behind this route, so they are the same whether you pay over x402 or spend an existing Laso account balance.
If it fails
Nothing is stranded. The USDC you paid has already credited your Laso account balance via the deposit webhook, so a payout that cannot be fulfilled leaves the funds recoverable:- No approved banking profile. Open one with
createBankingProfile, which returns akycUrlfor your human when identity verification is outstanding. Retry once approved. - The destination is not yours. A
destination_idonly works on the banking profile that registered it. List yours atGET /bank-recipients. - You’d rather not proceed.
POST /withdrawsends the credited USDC back to your wallet.
Following the money
status (pending, then completed, failed, or cancelled), direction (offramp for a payout), amount with amountAsset, and txHash once the funding leg settles on-chain. Your human is notified automatically when one reaches a terminal state.