> ## 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.

# Load a reloadable card balance

> Pay USDC to load the account holder's reloadable card balance at the card issuer.

**Why this exists:** the card issuer only accepts USDC on **Base**, and a Laso managed agent wallet holds USDC on **Solana**. Pay this route from either chain and Laso bridges the payment to your own deposit address at the issuer over Circle's CCTP, which burns on the source chain and mints native USDC on Base.

**Price:** exactly the amount you are loading, and exactly that amount is credited to the balance. Loading \$50 costs \$50 and puts \$50 on the card. Laso covers Circle's bridging fee by burning slightly more than requested.

**A linked card issuer account is required.** The account holder sets it up at https://laso.finance/agent/dashboard/verified/card.

**Follow with `POST /create-reloadable-card`** to create a card against the balance. The Base mint lands a moment after the burn, so if `settlement_state` is `pending`, poll `GET /get-card-deposit-address` until `balance` reflects the deposit.

**If the funding cannot be fulfilled**, nothing is stranded: the USDC you paid has already credited your Laso account balance. Retry, or recover it with `POST /withdraw`.



## OpenAPI

````yaml /api-reference/openapi.json get /fund-card-balance
openapi: 3.1.0
info:
  title: Laso Finance x402 API
  version: 1.0.0
  x-docs-revision: 8b76f5295623
  x-docs-manifest: https://laso.finance/.well-known/docs-version.json
  contact:
    email: agents+support@laso.finance
  x-guidance: >-
    Laso Finance is a payment-gated (x402) API that lets an AI agent spend USDC
    on real-world financial products: prepaid cards (U.S. and international),
    gift cards, push-to-card transfers to USD/EUR/GBP debit cards, and
    Venmo/PayPal payouts.


    Payment: every paid route is an x402 v2 endpoint. Call it with no payment
    header to receive a 402 challenge listing the accepted networks, then replay
    with a signed USDC payment. Both Base (eip155:8453) and Solana
    (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp) are accepted on every paid route;
    the caller picks either chain.


    Identity: `GET /auth` is free and identity-only. Prove wallet ownership with
    a `SIGN-IN-WITH-X` (CAIP-122) header to receive a Firebase id_token, then
    send that token as a Bearer credential to the authenticated read routes
    (`get-card-data`, `get-account-balance`, `get-kyc-status`, etc.). Paid
    routes also return fresh auth credentials in their response, so a payment is
    never required just to obtain a token.


    Recommended flow: (1) `GET /auth` to establish identity, (2) call a paid
    route (e.g. `GET /get-card`) to purchase a product, paying USDC on Base or
    Solana, (3) poll the authenticated read routes with the returned Bearer
    token to fetch the resulting card/transfer details. Full machine-readable
    instructions live at https://laso.finance/SKILL.md.
  description: >-
    Payment-gated API for Laso Finance. All paywalled routes use the x402
    protocol — the caller includes a USDC payment header on Base (eip155:8453)
    or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp) and the server verifies
    payment before processing. Free routes require no payment header.


    ## Getting started


    To set up a wallet for making x402 payments, choose a provider:


    - **Locus** (default): https://paywithlocus.com/SKILL.md

    - **Sponge**: https://wallet.paysponge.com/skill.md — automatic x402 service
    discovery

    - **Ampersend**: https://www.ampersend.ai/getting-started.md — self-custody
    on Base or Solana with dual-approval spending limits. Laso Finance is a
    default skill, so no manual endpoint registration is needed.


    ## How x402 works


    1. Call a paywalled endpoint without a payment header → receive a `402
    Payment Required` response containing payment details (price, recipient
    address, network).

    2. Construct an x402 payment header using the details from the 402 response.

    3. Replay the request with the payment header → the server verifies payment
    and processes the request.


    ## Authentication flow


    `GET /auth` is free: callers prove wallet ownership by sending a
    `SIGN-IN-WITH-X` header (CAIP-122 wallet signature). Paywalled routes
    (`/get-card`, `/order-gift-card`, `/get-push-to-card`, `/order-intl-card`)
    also return fresh auth credentials in their responses, so a payment is never
    required just to obtain a token.


    Most routes return auth credentials (`id_token`, `refresh_token`,
    `expires_in`). Use the `id_token` as a Bearer token to call authenticated
    Laso Finance endpoints like `/get-card-data`. When the `id_token` expires,
    use `POST /auth` with `grant_type: refresh_token` to get a new one.


    ## Important notes


    The `/get-card` USA prepaid card endpoint is U.S. only — issued in USD,
    usable at U.S.-based merchants only, and physical goods must ship to a U.S.
    address. For non-U.S. merchants or non-USD currencies, use `GET
    /order-intl-card` instead (international prepaid card, admin-fulfilled
    within 24 hours). All cards are intended for the caller's own use.


    For step-by-step instructions, read https://laso.finance/SKILL.md
servers:
  - url: https://laso.finance
    description: Production
security: []
paths:
  /fund-card-balance:
    get:
      summary: Load a reloadable card balance
      description: >-
        Pay USDC to load the account holder's reloadable card balance at the
        card issuer.


        **Why this exists:** the card issuer only accepts USDC on **Base**, and
        a Laso managed agent wallet holds USDC on **Solana**. Pay this route
        from either chain and Laso bridges the payment to your own deposit
        address at the issuer over Circle's CCTP, which burns on the source
        chain and mints native USDC on Base.


        **Price:** exactly the amount you are loading, and exactly that amount
        is credited to the balance. Loading \$50 costs \$50 and puts \$50 on the
        card. Laso covers Circle's bridging fee by burning slightly more than
        requested.


        **A linked card issuer account is required.** The account holder sets it
        up at https://laso.finance/agent/dashboard/verified/card.


        **Follow with `POST /create-reloadable-card`** to create a card against
        the balance. The Base mint lands a moment after the burn, so if
        `settlement_state` is `pending`, poll `GET /get-card-deposit-address`
        until `balance` reflects the deposit.


        **If the funding cannot be fulfilled**, nothing is stranded: the USDC
        you paid has already credited your Laso account balance. Retry, or
        recover it with `POST /withdraw`.
      operationId: fundCardBalance
      parameters:
        - name: amount
          in: query
          required: true
          description: >-
            USD of USDC to load onto the card balance (min \$5, max \$1,000).
            The x402 price equals this amount; Laso absorbs the bridge cost.
          schema:
            type: number
            minimum: 5
            maximum: 1000
      responses:
        '200':
          description: Card balance funded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  funded_usd:
                    type: number
                    description: USD loaded onto the card balance.
                  deposit_address:
                    type: string
                    description: >-
                      The account holder's own deposit address at the card
                      issuer, on Base.
                  network:
                    type: string
                    example: base
                  asset:
                    type: string
                    example: USDC
                  settlement_state:
                    type: string
                    example: success
                    description: >-
                      `success` once the Base mint has landed, `pending` while
                      Circle attests the burn.
                  transaction_hash:
                    type: string
                    description: The burn transaction on the source chain.
                  transaction_url:
                    type: string
                    description: Block explorer link for the burn.
                  mint_transaction_hash:
                    type: string
                    description: The mint transaction on Base, present once it has landed.
                  mint_transaction_url:
                    type: string
                    description: >-
                      Block explorer link for the mint that credited the balance
                      on Base.
                  note:
                    type: string
        '400':
          description: >-
            No card issuer account is linked to this wallet, or the amount is
            out of range.
        '402':
          description: Payment required (x402 challenge), or the payment was not settled.
        '500':
          description: >-
            The funding failed after payment. The USDC credited your Laso
            account balance.

````