Skip to main content
Glama

ForthClear Liquidation Marketplace

Confirm purchase

confirm_purchase
DestructiveIdempotent

Charge the previewed checkout with the signed-in buyer's own saved card, off session, or with a Stripe shared payment token when the SDK supports it. Pass confirmation_token from quick_buy or preview_checkout. A token or total that does not match the summary is rejected and nothing is charged. The same idempotency key does not create a second charge. Charges of US$1,000 or more, and cards that need authentication, return requires_action plus a checkout link. Returns confirmed only after the PaymentIntent succeeds and the order exists. Requires sign-in with buyer access. OAuth discovery: /.well-known/oauth-authorization-server (scope buyer:purchase). Sensitive: requires user approval each time.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "checkout_id": "<checkout_id>",
      "payment": "<payment>",
      "idempotency_key": "<idempotency_key>"
    },
    "name": "confirm_purchase"
  }
}

Input Schema

NameRequiredDescriptionDefault
paymentYesshared_payment_token when the Stripe SDK supports it, or saved_card true.
checkout_idYescheckout_id from quick_buy or preview_checkout.
idempotency_keyYesRequired. 8โ€“200 characters (letters, digits, . _ : -). The same key returns the original result for 24 hours and is sent to Stripe as Idempotency-Key.
confirmation_tokenNoconfirmation_token from the summary. Must match that checkout. A mismatch is rejected.

Output Schema

NameRequiredDescriptionDefault
statusYesquoted, pending, requires_action, confirmed, failed, or cancelled.
is_testNo
messageNo
currencyNo
order_idNo
retryableNo
action_urlNo
checkout_idYes
fallback_urlNo
amount_charged_centsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / retryable
      Added value: +{
      +  "type": "boolean"
      +}
  2. Changed4 schema fields changed
    • changedInput schema / properties / checkout_id / description
      Previous value: -"checkout_id from preview_checkout."New value: +"checkout_id from quick_buy or preview_checkout."
    • addedInput schema / properties / confirmation_token
      Added value: +{
      +  "description": "confirmation_token from the summary. Must match that checkout. A mismatch is rejected.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / fallback_url
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / message
      Added value: +{
      +  "type": "string"
      +}
  3. Added

TDQS

A4.4/5.0
Behavior4/5

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

Adds substantial behavior beyond the annotations: mismatch of token or total is rejected with no charge, idempotency keys return the original result for 24 hours, charges of US$1,000+ or auth-required cards return requires_action with a checkout link, and confirmed is returned only after the PaymentIntent succeeds. It also discloses the sign-in/buyer scope and the OAuth discovery endpoint and the user-approval requirement. This is close to excellent; the only minor gap is that the response shape details are left to the (present) output schema.

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?

Front-loads the action and the payment options, then layers preconditions, failure modes, and auth. Dense but nearly every sentence carries operational weight; the OAuth discovery URL sentence is the only part that could arguably be trimmed for an agent that already knows the server, and the prose is slightly run-on.

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 destructive, open-world, money-moving tool with nested parameters, the definition covers preconditions, failure modes, idempotency, and authentication, and the output schema carries the return shape. Nothing an agent needs in order to call it safely is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds cross-field meaning the schema only partly covers: the token or total must match the checkout summary or the whole request is rejected, and the idempotency key semantics are restated at the operation level. The 'total must match' constraint is genuinely new information not present in the schema.

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?

Names a specific verb and resource ('charge the previewed checkout') plus the three payment paths (saved card, off session, shared payment token). It explicitly ties itself to the siblings quick_buy and preview_checkout as the source of the confirmation_token, so an agent can distinguish it from those tools without opening schemas.

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 a clear precondition chain: call this after quick_buy or preview_checkout and pass the resulting confirmation_token. It does not name when to prefer the other payment siblings (confirm_order, accept_quote_and_pay) or state exclusions, so the routing guidance is clear but not exhaustive.

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