> ## Documentation Index
> Fetch the complete documentation index at: https://agents.laso.finance/llms.txt
> Use this file to discover all available pages before exploring further.

# Order a USA prepaid card with your AI agent

> Order a non-reloadable USA prepaid card over x402, check merchant compatibility first, poll for the card number, and spend the balance at U.S. merchants.

Laso Finance lets an AI agent order a non-reloadable U.S. prepaid card for the exact checkout amount with USDC on Base or Solana through x402. An agent with a compatible self-custody wallet constructs and sends the x402 payment header. `GET /get-card` returns a `card_id` with status `pending`; poll `GET /get-card-data` until status becomes `ready`, then retrieve the card details programmatically. An agent without a compatible wallet can use a [Laso-managed wallet](/guides/managed-agent-wallet) instead.

Cards are **non-reloadable**, so order for the exact checkout total when you know it. There is no fee: the amount you pay is the amount on the card. Nothing is stranded if you do not know the total: leftover balance stays spendable at another U.S. merchant until the card expires.

## Tell your agent

```
I need you to buy [item] from [store]. First, navigate to the store, add
the item to cart, and go to checkout to find the exact total (including tax
and shipping). Then order a USA prepaid card from Laso Finance for exactly
that amount using the x402 API at https://laso.finance/get-card. Poll
https://laso.finance/get-card-data?card_id=<card_id> with the Bearer token
until status is "ready", then use the card details to complete the purchase.
Ship to: [address].
```

## Check the merchant first

Laso Finance prepaid cards work at most merchants, but not *all*. Before ordering a card, your agent can query Laso's merchant database to see whether the card is known to work at a given merchant. This is free and only requires a Bearer token from `/auth` or `/get-card`. The examples write it as `$LASO_ID_TOKEN`, exported from your saved credentials.

Call `GET /search-merchants?q=MERCHANT_NAME` with your Bearer token. By default this searches the USA prepaid card (`/get-card`) acceptance database. Pass `card_type=Non-Reloadable International` to search for the [international prepaid card](/guides/international-prepaid-card) instead:

```bash theme={null}
# USA prepaid card acceptance (default)
curl "https://laso.finance/search-merchants?q=amazon" \
  -H "Authorization: Bearer $LASO_ID_TOKEN"

# International prepaid card acceptance
curl "https://laso.finance/search-merchants?q=amazon&card_type=Non-Reloadable%20International" \
  -H "Authorization: Bearer $LASO_ID_TOKEN"
```

The response includes a list of matching merchants with a `status` field:

| Status         | Meaning                                                                                  |
| -------------- | ---------------------------------------------------------------------------------------- |
| `accepted`     | The card has been successfully used at this merchant. Safe to proceed.                   |
| `not_accepted` | The card was declined at this merchant. Do not order a card for this merchant.           |
| `unknown`      | A transaction was attempted but the outcome is unclear. The card likely will still work. |

If a merchant isn't listed at all, it means no one has tried it yet, and the card likely will still work there.

### Example response

```json theme={null}
{
  "merchants": [
    {
      "name": "Amazon",
      "url": "amazon.com",
      "status": "accepted",
      "description": "Online retail"
    }
  ],
  "query": "amazon",
  "count": 1,
  "card_type": "Non-Reloadable U.S.",
  "note": "This database only contains merchants where Laso users have previously attempted a transaction."
}
```

### When to use it

* **Before ordering a card** — Check the merchant first to avoid wasting funds on a card that will be declined.
* **When a purchase fails** — Search for the merchant to see if it's known to be `not_accepted`.
* **To build confidence** — If the merchant is listed as `accepted`, your agent can proceed without hesitation.

<Tip>
  This endpoint is free. There's no reason not to check before every purchase.
</Tip>

## Order the card

<Steps>
  <Step title="Agent determines the exact total">
    Your agent browses the merchant's website, adds items to cart, and proceeds
    to checkout to determine the exact purchase total (including tax and
    shipping).
  </Step>

  <Step title="Agent orders a card for that amount">
    Your agent calls `https://laso.finance/get-card?amount=X` where X is the
    checkout total.
  </Step>

  <Step title="Server responds with payment details">
    The server returns a `402 Payment Required` response with the price,
    recipient wallet address, and network (Base or Solana USDC).
  </Step>

  <Step title="Agent pays via wallet">
    An agent with a compatible self-custody wallet lets its x402 client
    construct and send the payment header, then replay the request. An agent
    without one pays from a [Laso-managed wallet](/guides/managed-agent-wallet)
    by calling `agentX402Pay` with `route: "get-card"`, so it never builds a
    payment header itself. The managed wallet is funded with USDC on Solana.
  </Step>

  <Step title="Card is issued">
    The server verifies payment and returns a `card_id` with `status:
            "pending"`. It does not return the card number, CVV, or expiry. Those become
    available in \~7-10 seconds.
  </Step>

  <Step title="Agent retrieves card details">
    Your agent polls `https://laso.finance/get-card-data?card_id=X` with the
    Bearer token until `status` is `"ready"`, then reads `card_details`
    (`card_number`, `exp_month`, `exp_year`, `cvv`, `available_balance`, and a
    `billing_address` to use if the merchant asks for one).
  </Step>

  <Step title="Agent completes the purchase">
    Your agent enters the card number, CVV, and expiry on the checkout page to
    complete the order.
  </Step>
</Steps>

The full set of states a card moves through, and the response shape at each one, is documented in the [card lifecycle reference](/guides/card-lifecycle).

## What ordering a card checks

A card order clears three checks and no others. Each is a distinct response you can handle:

| Check                 | When it runs                              | Response on failure                                                                                             |
| --------------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| Amount is in range    | Before payment, at the paywall            | `400` with the accepted range (\$5 to \$1,000 for `/get-card`, \$100 to \$1,000 on-card for `/order-intl-card`) |
| x402 payment settles  | At the paywall                            | `402 Payment Required` with the payment details to replay against                                               |
| Account is not frozen | After payment, before the order is placed | `403` with `error: "Account is frozen"` and a `frozen_message` describing what to do                            |

Neither `/get-card` nor `/order-intl-card` reads an identity-verification status, so there is no verification step to complete before ordering and no `kyc_required` field on either response. Verification is required per feature rather than per account: `GET /get-kyc-status` reports a wallet's current state and `GET /get-kyc-link` starts verification, and both exist for the endpoints that do gate on it. Calling either one changes nothing about a card order.

<Note>
  This describes what the Laso API enforces at order time. Use of an issued card
  is separately governed by the card issuer's terms, and a frozen account blocks
  new orders regardless of verification state.
</Note>

## Polling best practices

* Poll every **2-3 seconds**, and don't hammer the endpoint
* The card is typically ready within **7-10 seconds**
* If still pending after 30 seconds, something may be wrong. Log the `card_id` and contact support
* Always check the `status` field before reading `card_details`

## Limits and restrictions

| Property           | Value                                                   |
| ------------------ | ------------------------------------------------------- |
| Card type          | Prepaid                                                 |
| Currency           | USD                                                     |
| Region             | U.S. only                                               |
| Minimum load       | \$5                                                     |
| Maximum load       | \$1,000                                                 |
| Fee                | None                                                    |
| Reloadable         | No                                                      |
| Multiple purchases | Yes, until balance is depleted                          |
| Time to issue      | \~7-10 seconds                                          |
| Expiration         | 6 months after issuance; remaining balance is forfeited |

<Warning>
  The USA prepaid card ordered via `/get-card` is **U.S. only**. It can only be
  used at U.S.-based merchants for USD purchases, and physical goods must ship
  to a U.S. address. For non-U.S. merchants or non-USD purchases, use the
  [international prepaid card](/guides/international-prepaid-card). All cards
  are intended for the caller's own use and are non-transferable.
</Warning>

When a merchant asks for a billing address or ZIP code, use the `billing_address` from `card_details`. The billing name is always `Laso Finance`. For USA cards no specific address is enforced, so any valid U.S. billing address works and the returned address is a known-good default (ZIP `91723`).

## Next

<Card title="International prepaid card" icon="globe" href="/guides/international-prepaid-card">
  Buying from a non-U.S. merchant, or in a currency other than USD.
</Card>

<Tip>
  **Uncomfortable with your agent handling raw card numbers?** [1Claw's Payment
  Card Vault](https://docs.1claw.xyz/docs/guides/payment-cards) lets agents
  order Laso cards while keeping the PAN and CVV behind human-gated reveals,
  per-agent spending limits, and a full audit trail.
</Tip>
