---
title: "Send money to a debit card (USD, EUR, GBP)"
method: GET
path: "/get-push-to-card"
---

# Send money to a debit card (USD, EUR, GBP)

`GET /get-push-to-card`

## Request

- Base URL: `https://laso.finance`
- URL: `https://laso.finance/get-push-to-card`
- Auth: none declared

Pay USDC to initiate a push-to-card transfer. Specify the face value in the target currency (USD, EUR, or GBP); Laso computes the USDC cost using the current exchange rate plus a 4.8% fee (minimum fee of \$1.50/€1.50/£1.50 in the transfer currency), and that becomes the x402 price. Returns a `redemption_url` that must be opened to complete the transfer. The form requires sender name, debit card number, and cardholder name.

**Supported currencies:**
- `USD` — U.S. debit cards (U.S. bank accounts only)
- `EUR` — Eurozone debit cards
- `GBP` — U.K. debit cards

Laso cannot perform the transfer directly — the redemption URL must be visited and the debit card details entered manually (by the agent or a human).

**Fee:** 4.8%, with a minimum of 1.50 in the transfer currency (included in the USDC price, computed from the requested face value).

## Query parameters

- `amount` number, required
- `currency` 'USD' | 'EUR' | 'GBP'

## Response `200`

Push-to-card transfer initiated. Open the redemption_url to enter debit card details.

- object
  - `auth` AuthCredentials
    - `id_token` string: ID token — use as Bearer token for Laso Finance APIs
    - `refresh_token` string: Use with POST /auth (grant_type=refresh_token) to get a new id_token when it expires
    - `expires_in` string: Token lifetime in seconds
  - `callable_base_url` string
  - `user_id` string: The user's ID (lowercase wallet address)
  - `success` boolean
  - `message` string
  - `amount` number: The face value sent to the debit card, in the requested `currency`
  - `currency` 'USD' | 'EUR' | 'GBP': The target currency of the debit card transfer
  - `redemption_url` string: URL to open and complete the push-to-card transfer. The form requires: sender name, debit card number, and cardholder name.
  - `note` string: Important information about the currency's regional restriction and required form fields

## Other responses

- `400`: Invalid or missing amount, or no payer address
- `402`: Payment required. No valid x402 payment header was included. The payment details (price, recipient address, network) are base64-encoded in the `PAYMENT-REQUIRED` response header and echoed as JSON in the response body. x402 client libraries handle this automatically. A **second** 402 on the paid retry means something different: the payment was refused, either at verification (most often an underfunded wallet) or at on-chain settlement. That response body is not empty and carries no `accepts` — it is the x402 settlement-failure shape `{"success": false, "errorReason": "...", "errorMessage": "..."}`, plus `x_laso_guidance` when a concrete next step applies. Distinguish the two by body: a challenge carries `accepts`, a failure carries `success: false`. The usual cause is an underfunded wallet, and the usual cause of that is the fee being charged **on top of** `amount` on routes that add one (a wallet holding exactly \$2,000 cannot send a \$2,000 bank payment; `/get-card` adds no fee, so it costs exactly `amount`). Nothing is charged for a failed settlement, so retrying with a smaller amount is safe.
- `403`: Account is frozen. The response includes a `frozen_message` field explaining why.

---

[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)
