Skip to main content
Glama

Create a hosted checkout session

create_checkout_session

Create a CoinVello hosted checkout session (an invoice plus a payment page at pay.coinvello.com). Redirect the customer to the returned url. Amounts are decimal strings. currency is an ISO code (USD, EUR...) or an asset id to price in crypto. Fulfil orders from the invoice.paid webhook, never from the redirect.

Input Schema

NameRequiredDescriptionDefault
taxNoThe tax portion of the sale as you computed it, in the invoice currency and included in `amount` (e.g. {"amount":"7.98","rate":"0.19","label":"VAT 19%","jurisdiction":"DE"}); copied to the records and exports. jurisdiction is a code you choose, never anything about the payer.
amountYesTotal to charge, e.g. "49.99".
localeNo
brandingNo
currencyYesISO 4217 code such as USD/EUR/GBP, or an asset id such as btc:bitcoin.
customerNo
metadataNoUp to 50 string key/value pairs returned on the object and in webhooks.
order_idNoYour order reference; indexed and searchable.
cancel_urlNo
expires_inNoSeconds until expiry (default 1800).
line_itemsNo
descriptionNo
redirect_onNoWhen the hosted page redirects to success_url (default confirming).
success_urlYesWhere the hosted page sends the customer after payment.
collect_emailNo
accepted_assetsNoAssets the customer may pay with; defaults to all assets with an enabled wallet.
idempotency_keyNoStable key per order so retries do not create duplicate sessions, e.g. order-123-checkout.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose real behavior: the call returns a `url` the customer must be sent to, amounts are decimal strings rather than minor units, and order fulfilment must be driven by the invoice.paid webhook rather than the browser redirect. It omits auth requirements, what happens to expired sessions, and error/idempotency behavior (the latter only appears in the schema).

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

Conciseness5/5

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

Four tight sentences with zero filler: identity of the resource, the required redirect action, the two format constraints that most often cause bugs, and the fulfilment rule. The most actionable guidance (redirect to `url`, fulfil from webhook) is front-loaded.

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

Completeness4/5

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

For a 17-parameter tool with nested objects, no annotations, and no output schema, the description covers the core contract — what gets created, what comes back (`url`), and how the order lifecycle completes. Remaining gaps are auth/prerequisite context and any note about test-mode sessions, which sibling simulate_test_payment implies exists.

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 coverage is 59% across 17 parameters; the description only reinforces `amount` (decimal string) and `currency` (ISO code or asset id), both of which the schema already documents. Undocumented-in-schema params such as `locale`, `branding`, `customer`, `line_items`, `cancel_url`, and `collect_email` get no compensating explanation in the description.

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

Purpose4/5

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

The description opens with a specific verb and resource ('Create a CoinVello hosted checkout session') and immediately glosses the artifact ('an invoice plus a payment page at pay.coinvello.com'), which is far more informative than the title alone. It doesn't explicitly contrast with siblings like create_credit_purchase or simulate_test_payment, so routing between creation tools is left to inference.

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

Usage Guidelines4/5

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

Gives concrete operational guidance: 'Redirect the customer to the returned `url`' and 'Fulfil orders from the invoice.paid webhook, never from the redirect' — an explicit when/when-not for downstream fulfilment that prevents a common integration error. It stops short of saying when to choose this tool over create_credit_purchase or when to use simulate_test_payment instead.

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.