
# API reference

Base URL during the preview: `https://laso.finance`. **x402** routes are paid per call. **Bearer** routes take the session `id_token`. The full machine-readable contract is the [OpenAPI 3.1 spec](https://laso.finance/openapi.json).

## Account

| Route | Auth | Purpose |
| --- | --- | --- |
| `POST /signup` | none | Start an account for a human to claim |
| `GET /signup-status` | none | Poll a pending claim |
| `POST /refresh` | none | Renew an `id_token` |
| `GET /get-account-balance` | Bearer | Wallet and account balances |
| `GET /get-auth-link` | Bearer | One-time dashboard sign-in link for the human |
| `GET /get-pricing` | none | Every product's fee and limits |
| `GET /get-supported-countries` | none | Where each product works |

## Wallet

| Call | Auth | Purpose |
| --- | --- | --- |
| `getAgentWallet` | Bearer | Addresses and balance |
| `agentX402Pay` | Bearer | Pay a route or any x402 URL |
| `agentWalletTransfer` | Bearer | Send USDC out |
| `moveAgentWalletFunds` | Bearer | Move USDC between Solana and Base |
| `getAgentSpendLimit` | Bearer | Read the per-payment cap |

## Cards

| Route | Auth | Purpose |
| --- | --- | --- |
| `POST /create-reloadable-card` | Bearer | New reloadable card, free |
| `GET /fund-card-balance` | Bearer | Top up from the wallet, free |
| `POST /withdraw-card-balance` | Bearer | Move card balance back |
| `GET /get-card` | x402 | USA prepaid card, $5 to $1,000, no fee |
| `GET /order-intl-card` | x402 | International prepaid card |
| `GET /get-card-data` | Bearer | Card number, status and balance |
| `GET /list-card-transactions` | Bearer | Charges on a card |
| `GET /search-merchants` | Bearer | Merchant acceptance database |

## Payouts

| Route | Auth | Purpose |
| --- | --- | --- |
| `GET /get-push-to-card` | x402 | Debit card payout, 4.8% |
| `GET /send-bank-payment` | x402 | ACH payment, 0.25% |
| `GET /send-payment` | x402 | Venmo or PayPal, 4.9% |
| `GET /get-payment-status` | Bearer | Follow a payout |
| `GET/POST/DELETE /payment-recipients` | Bearer | Saved recipients |

## Banking

| Call | Auth | Purpose |
| --- | --- | --- |
| `createBankingProfile` | Bearer | Start; returns a KYC link if needed |
| `getBankingApplication` | Bearer | Outstanding fields |
| `updateBankingApplicationDetails` | Bearer | Answer them |
| `submitBankingApplication` | Bearer | Submit |
| `createBankingAccount` / `listBankingAccounts` | Bearer | Open accounts, read routing numbers |
| `createBankingRecipient` / `addBankingDestination` | Bearer | Register who you pay |
| `listBankingTransactions` | Bearer | Deposits and payouts |

## Gift cards

| Route | Auth | Purpose |
| --- | --- | --- |
| `GET /search-gift-cards` | Bearer | Catalog |
| `GET /order-gift-card` | x402 | Instant code |

## Webhooks and withdrawals

| Route | Auth | Purpose |
| --- | --- | --- |
| `POST /register-webhook` | Bearer | Signed notifications |
| `POST /withdraw` | Bearer | Send unspent account funds home |
| `GET /get-withdrawal-status` | Bearer | Follow a withdrawal |
