---
title: "Create a reloadable card"
method: POST
path: "/create-reloadable-card"
tags: ["cards"]
---

# Create a reloadable card

`POST /create-reloadable-card`

## Request

- Base URL: `https://laso.finance`
- URL: `https://laso.finance/create-reloadable-card`
- Auth: API key in header `Authorization`

Creates a **reloadable** card funded from the account holder's balance with the card issuer, and returns it. This is the same card the holder creates in the Laso dashboard, so an agent and a human end up with the same product.

The card is **reusable by default** (`reusable: true`): it stays open across charges until its limit is spent. Pass `reusable: false` for a single-use card that closes after its first approved charge.

**This route is free** — no x402 payment. The card draws on the account holder's own balance with the issuer, so Laso fronts nothing.

**If the balance is short**, this route answers `402`. Fund it by sending USDC: `GET /get-card-deposit-address` returns the holder's own deposit address at the card issuer (USDC on Base only), and the balance credits within a couple of minutes. The holder can also top up with Apple or Google Pay in the dashboard.

Read the new card's number and CVV with `/get-card-data?card_id=...`. A card created here is Laso-issued, so its `card_details` come back directly — the approval step applies only to cards the holder created in a different app.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `usd_amount` number, required: Amount in US dollars to load onto the card, minimum \$1. Sent as dollars, not cents.
  - `reusable` boolean: Whether the card stays open across charges. Defaults to `true`; `false` closes it after the first approved charge.

## Response `200`

The newly created card.

- object
  - `card` object
    - `card_id` string
    - `card_type` string
    - `last4` string
    - `expiry` string
    - `status` string
    - `balance` number: Card balance in US dollars.
    - `spend_limit` number
    - `reusable` boolean

## Other responses

- `400`: Invalid `usd_amount`, or no card issuer account is linked to this wallet.
- `402`: The account holder's balance with the issuer is too low to fund the card. Fund it via GET /get-card-deposit-address and retry.
- `409`: A request with this `Idempotency-Key` is still being processed (`code: idempotency_key_in_progress`). Wait a moment and retry with the same key.
- `422`: The `Idempotency-Key` was already used for a different request body or route (`code: idempotency_key_reused`). Use a new key.

---

[API](https://skmtc.dev/laso/apis/laso-finance-x402-api.md) · [All operations](https://skmtc.dev/laso/apis/laso-finance-x402-api/llms.txt) · [OpenAPI document](https://skmtc.dev/laso/apis/laso-finance-x402-api/revisions/ff8ce20b49ba?raw)
