curl --request GET \
--url https://laso.finance/get-push-to-cardimport requests
url = "https://laso.finance/get-push-to-card"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://laso.finance/get-push-to-card', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://laso.finance/get-push-to-card",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://laso.finance/get-push-to-card"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://laso.finance/get-push-to-card")
.asString();require 'uri'
require 'net/http'
url = URI("https://laso.finance/get-push-to-card")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"auth": {
"id_token": "<string>",
"refresh_token": "<string>",
"expires_in": "<string>"
},
"callable_base_url": "https://laso.finance",
"user_id": "<string>",
"success": true,
"message": "Push-to-card transfer initiated. Open the redemption_url to enter your debit card details and complete the transfer.",
"amount": 123,
"currency": "USD",
"redemption_url": "<string>",
"note": "<string>"
}{
"error": "currency must be USD, EUR, or GBP. Received: XYZ"
}{}{
"error": "Account is frozen",
"frozen_message": "Your account is frozen pending a compliance review. Contact support@laso.finance."
}Send money to a debit card (USD, EUR, GBP)
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 cardsGBP— 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).
curl --request GET \
--url https://laso.finance/get-push-to-cardimport requests
url = "https://laso.finance/get-push-to-card"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://laso.finance/get-push-to-card', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://laso.finance/get-push-to-card",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://laso.finance/get-push-to-card"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://laso.finance/get-push-to-card")
.asString();require 'uri'
require 'net/http'
url = URI("https://laso.finance/get-push-to-card")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"auth": {
"id_token": "<string>",
"refresh_token": "<string>",
"expires_in": "<string>"
},
"callable_base_url": "https://laso.finance",
"user_id": "<string>",
"success": true,
"message": "Push-to-card transfer initiated. Open the redemption_url to enter your debit card details and complete the transfer.",
"amount": 123,
"currency": "USD",
"redemption_url": "<string>",
"note": "<string>"
}{
"error": "currency must be USD, EUR, or GBP. Received: XYZ"
}{}{
"error": "Account is frozen",
"frozen_message": "Your account is frozen pending a compliance review. Contact support@laso.finance."
}Query Parameters
Face value to send to the debit card, denominated in the chosen currency (min 10, max 9,541.98). The x402 payment price is this face value converted to USD plus a 4.8% fee (minimum fee of 1.50 in the chosen currency).
10 <= x <= 9541.98Target currency for the debit card transfer. Defaults to USD.
USD, EUR, GBP Response
Push-to-card transfer initiated. Open the redemption_url to enter debit card details.
Show child attributes
Show child attributes
"https://laso.finance"
The user's ID (lowercase wallet address)
"Push-to-card transfer initiated. Open the redemption_url to enter your debit card details and complete the transfer."
The face value sent to the debit card, in the requested currency
The target currency of the debit card transfer
USD, EUR, GBP URL to open and complete the push-to-card transfer. The form requires: sender name, debit card number, and cardholder name.
Important information about the currency's regional restriction and required form fields
Was this page helpful?