Skip to main content
Glama

order_gift_card

Destructive

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.

PAID ROUTE (5-9000 USD): the x402 USDC price is paid automatically from your managed agent wallet. Make sure the wallet exists and is funded first (get_agent_wallet).

Input Schema

NameRequiredDescriptionDefault
amountYesGift 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.
countryNoISO 3166-1 alpha-2 country code (defaults to "US")US
laso_server_idYesThe 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`.

Output Schema

NameRequiredDescriptionDefault
authNo
user_idNoThe user's ID (lowercase wallet address)
gift_cardNoGift card order result with redemption details.
callable_base_urlNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / properties / auth_token
      Removed value: -{
      -  "description": "Laso credential. Only if the MCP connection has no Authorization header.",
      -  "type": "string"
      -}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "auth": {
      +      "properties": {
      +        "expires_in": {
      +          "description": "Token lifetime in seconds",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "id_token": {
      +          "description": "ID token — use as Bearer token for Laso Finance APIs",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "refresh_token": {
      +          "description": "Use with POST /auth (grant_type=refresh_token) to get a new id_token when it expires",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "callable_base_url": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "gift_card": {
      +      "description": "Gift card order result with redemption details.",
      +      "properties": {
      +        "amount": {
      +          "description": "Gift card face value, denominated in the product's own `currency` (not USD)",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "card_id": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "country": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "currency": {
      +          "description": "ISO 4217 code the `amount` is denominated in, e.g. `USD`, `SAR`, `EUR`",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "laso_server_id": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "pin_code": {
      +          "description": "PIN code for the gift card (if applicable)",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "redemption_code": {
      +          "description": "Code to redeem the gift card (if applicable)",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "redemption_url": {
      +          "description": "URL to redeem the gift card (if applicable)",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "status": {
      +          "description": "One of: completed.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "timestamp": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "user_id": {
      +      "description": "The user's ID (lowercase wallet address)",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "auth": {
      -      "properties": {
      -        "expires_in": {
      -          "description": "Token lifetime in seconds",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "id_token": {
      -          "description": "ID token — use as Bearer token for Laso Finance APIs",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "refresh_token": {
      -          "description": "Use with POST /auth (grant_type=refresh_token) to get a new id_token when it expires",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        }
      -      },
      -      "type": [
      -        "object",
      -        "null"
      -      ]
      -    },
      -    "callable_base_url": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "gift_card": {
      -      "description": "Gift card order result with redemption details.",
      -      "properties": {
      -        "amount": {
      -          "description": "Gift card face value, denominated in the product's own `currency` (not USD)",
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "card_id": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "country": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "currency": {
      -          "description": "ISO 4217 code the `amount` is denominated in, e.g. `USD`, `SAR`, `EUR`",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "laso_server_id": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "pin_code": {
      -          "description": "PIN code for the gift card (if applicable)",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "redemption_code": {
      -          "description": "Code to redeem the gift card (if applicable)",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "redemption_url": {
      -          "description": "URL to redeem the gift card (if applicable)",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "status": {
      -          "description": "One of: completed.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "timestamp": {
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        }
      -      },
      -      "type": [
      -        "object",
      -        "null"
      -      ]
      -    },
      -    "user_id": {
      -      "description": "The user's ID (lowercase wallet address)",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare a non-idempotent, destructive, open-world write, and the description supplies the context an agent actually needs: the price is charged in USDC from the managed agent wallet via x402, pricing includes a variable ~4.8% fee with an exact 402 quote, an uncatalogued id returns 404 `unknown_laso_server_id`, and the call returns redemption details (URL/code/PIN). Nothing here contradicts `destructiveHint: true`.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Action and workflow are front-loaded and the pricing warning is well placed before the agent commits to a wrong amount. It is longer than needed, though: the $5/$9,000 converted-USD rule is stated twice and the pricing paragraph could be tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paid, non-idempotent purchase with an output schema already covering returns, the description covers everything material: prerequisite wallet funding, currency denomination, fee behavior, amount bounds, and the likely failure mode. An agent can call this correctly without further exploration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is already 100% and the description's parameter explanations largely duplicate it — the `amount`-is-face-value-not-USD point and the Amazon/country note both appear verbatim in the schema. The added value is mainly the ordering of `laso_server_id` behind the catalog search, which is marginal over the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

A specific verb+resource ('Order a gift card') plus an explicit statement of what is being purchased and how it is paid for. It clearly separates itself from the sibling `search_gift_cards`, which it names as the prerequisite lookup step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an ordered workflow: browse `GET /search-gift-cards` for `laso_server_id`, ensure the agent wallet exists and is funded via `get_agent_wallet`, then call this endpoint. It also states when the amount is rejected (USD equivalent outside $5–$9,000).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources