curl --request GET \
--url https://laso.finance/order-gift-cardimport requests
url = "https://laso.finance/order-gift-card"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://laso.finance/order-gift-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/order-gift-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/order-gift-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/order-gift-card")
.asString();require 'uri'
require 'net/http'
url = URI("https://laso.finance/order-gift-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>",
"gift_card": {
"card_id": "<string>",
"laso_server_id": "<string>",
"amount": 123,
"currency": "USD",
"country": "US",
"redemption_url": "<string>",
"redemption_code": "<string>",
"pin_code": "<string>",
"status": "completed",
"timestamp": 123
}
}{
"error": "laso_server_id query parameter is required"
}{}{
"error": "Account is frozen",
"frozen_message": "Your account is frozen pending a compliance review. Contact support@laso.finance."
}{
"error": "No gift card in the catalog has laso_server_id \"amazon-usa\".",
"code": "unknown_laso_server_id",
"terminal": true,
"laso_server_id": "amazon-usa",
"hint": "Find a valid laso_server_id with GET /search-gift-cards (for example /search-gift-cards?q=amazon) and order with that value. No payment was taken for this request.",
"search_url": "https://laso.finance/search-gift-cards"
}Order a gift card
Pay USDC via x402 to order a gift card. First browse the catalog via GET /search-gift-cards to find the laso_server_id for the card you want, then call this endpoint with the amount and product ID.
Pricing: amount is the card’s face value in the product’s own currency, not USD. Laso converts it to USD at the current exchange rate and adds the product’s fee (typically 4.8%, but it varies by product; the 402 quote is exact); that total is the x402 USDC price. A 100 SAR card costs roughly $28 USDC, not $100. Check the product’s currency field in GET /search-gift-cards to see what amount is denominated in.
The $5 minimum and $9,000 maximum apply to the converted USD value, not the raw amount, so a foreign-currency amount is accepted only when its USD equivalent falls inside that range.
Returns redemption details (URL, code, and/or PIN) depending on the gift card brand.
curl --request GET \
--url https://laso.finance/order-gift-cardimport requests
url = "https://laso.finance/order-gift-card"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://laso.finance/order-gift-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/order-gift-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/order-gift-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/order-gift-card")
.asString();require 'uri'
require 'net/http'
url = URI("https://laso.finance/order-gift-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>",
"gift_card": {
"card_id": "<string>",
"laso_server_id": "<string>",
"amount": 123,
"currency": "USD",
"country": "US",
"redemption_url": "<string>",
"redemption_code": "<string>",
"pin_code": "<string>",
"status": "completed",
"timestamp": 123
}
}{
"error": "laso_server_id query parameter is required"
}{}{
"error": "Account is frozen",
"frozen_message": "Your account is frozen pending a compliance review. Contact support@laso.finance."
}{
"error": "No gift card in the catalog has laso_server_id \"amazon-usa\".",
"code": "unknown_laso_server_id",
"terminal": true,
"laso_server_id": "amazon-usa",
"hint": "Find a valid laso_server_id with GET /search-gift-cards (for example /search-gift-cards?q=amazon) and order with that value. No payment was taken for this request.",
"search_url": "https://laso.finance/search-gift-cards"
}Query Parameters
Gift card face value in the product's own currency (see the product's currency field in GET /search-gift-cards), not USD. The x402 price is this value converted to USD plus the product fee. After conversion it must be worth at least $5 and at most $9,000 USD.
The product identifier from the gift card catalog (GET /search-gift-cards). Always copy it from a search result; an id that is not in the catalog returns 404 unknown_laso_server_id. Amazon is amazon for every country, selected with country.
ISO 3166-1 alpha-2 country code (defaults to "US")
Was this page helpful?