MCP-Server

mcp-gateway

xyz.trusteed/mcp-gateway

Was dieses MCP kann

Provides an agent commerce gateway for product discovery, cart management, shipping, discounts, UCP checkout, and payment completion across supported storefronts.

apply_discount
Apply a discount or promo code to the cart. SKYFIRE TOKEN (optional): Pass a kya or kya-pay token in the skyfire-pay-id header to boost trust score. No token required — request proceeds normally if omitted. Checkout guide: https://trusteed.xyz/.well-known/agent-checkout-guide.json. CREDENTIAL: this store needs one. Call the `create_sandbox_key` tool first (it is in this tool list and needs no credential), then pass the key you get back as the `agent_key` argument — or as an `Authorization: Bearer` header if your client can set headers. Do not ask a person to log in: there is no human login for this store.
Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cart_id'], 'properties': {'source': {'type': 'string', 'const': 'ucp_identity', 'description': "Set to 'ucp_identity' to apply a loyalty discount derived from a UCP identity token instead of a promo code."}, 'cart_id': {'type': 'string', 'description': 'Cart session ID'}, 'agent_key': {'type': 'string', 'description': 'Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header.'}, 'discount_code': {'type': 'string', 'maxLength': 50, 'minLength': 1, 'description': 'Discount or promo code to apply (required unless source is ucp_identity)'}, 'identity_token': {'type': 'string', 'maxLength': 4096, 'minLength': 1, 'description': 'UCP identity bearer token (required when source is ucp_identity).'}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cart_id', 'discount_code', 'discount_cents', 'new_total_cents', 'currency'], 'properties': {'cart_id': {'type': 'string'}, 'currency': {'type': 'string'}, 'discount_code': {'type': 'string'}, 'discount_cents': {'type': 'number'}, 'new_total_cents': {'type': 'number'}}, 'additionalProperties': True}
browse_categories
List all product categories in Demo Store with product counts.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['categories', 'total', 'store_name'], 'properties': {'total': {'type': 'number'}, 'categories': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'product_count'], 'properties': {'name': {'type': 'string'}, 'product_count': {'type': 'number'}}, 'additionalProperties': True}}, 'store_name': {'type': 'string'}}, 'additionalProperties': True}
compare_products
Compare 2 to 5 products side-by-side with normalized attribute table and best-value recommendation.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['product_ids'], 'properties': {'product_ids': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 5, 'minItems': 2, 'description': 'Array of product IDs to compare (2-5)'}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['products', 'commonFields', 'comparisonTable', 'bestValue'], 'properties': {'products': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'price', 'currency', 'availability', 'reviewCount', 'attributes'], 'properties': {'id': {'type': 'string'}, 'price': {'type': 'number'}, 'title': {'type': 'string'}, 'currency': {'type': 'string'}, 'attributes': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'value'], 'properties': {'key': {'type': 'string'}, 'value': {'type': 'string'}}, 'additionalProperties': True}}, 'reviewCount': {'type': 'number'}, 'availability': {'type': 'string'}, 'averageRating': {'anyOf': [{'anyOf': [{'not': {}}, {'type': 'number'}]}, {'type': 'null'}]}, 'rating_provenance': {'anyOf': [{'type': 'object', 'required': ['origin', 'strength', 'verified', 'note'], 'properties': {'note': {'type': 'string'}, 'origin': {'type': 'string', 'const': 'merchant'}, 'strength': {'type': 'string', 'const': 'claimed'}, 'verified': {'type': 'boolean', 'const': False}}, 'additionalProperties': True}, {'type': 'null'}]}}, 'additionalProperties': True}}, 'bestValue': {'anyOf': [{'type': 'object', 'required': ['productId', 'reason'], 'properties': {'reason': {'type': 'string'}, 'productId': {'type': 'string'}}, 'additionalProperties': True}, {'type': 'null'}]}, 'commonFields': {'type': 'array', 'items': {'type': 'string'}}, 'comparisonTable': {'type': 'object', 'additionalProperties': {'type': 'object', 'additionalProperties': {'type': 'string'}}}, 'recommendation_provenance_warning': {'type': 'string'}}, 'additionalProperties': True}
complete_checkout
Complete the purchase. Provide buyer.name and buyer.email from the conversation before opening approval; ask in chat if either is missing. The approval page only reviews these details. PREFER THE CART CARD: if there is an interactive card for this cart, let the buyer confirm and (when the store offers a choice) pick the payment method there — including retrying after a declined payment or switching method — instead of calling this tool yourself. Each call you make here opens a new card in the transcript instead of updating the one already open. Only call it yourself when there is no interactive card or the buyer explicitly asks you to complete it in chat. Idempotent — replay is keyed on checkout_session_id: any retry against a session that already has an order returns that same order (COMPLETED or PENDING_EXTERNAL_CONFIRMATION) without re-charging. The provided idempotency_key is recorded on the session for audit and short-circuits a repeated call with the same key. If the response has status PENDING_EXTERNAL_CONFIRMATION, no purchase has completed yet: read `order_placed` and `next_action` — a person has to approve or pay at its `url`; `next_action` says whether calling again with the same checkout_session_id and idempotency_key can read the outcome. SKYFIRE TOKEN (payment_method=KYAPAY): Requires a Skyfire pay or kya-pay token. Preferred: pass the JWT in the skyfire-pay-id request header. Alternative: pass as kyapay_token parameter. Claims validated: sub (account ID), jti (replay prevention), amount (USD, matched against cart total), cur (must be USD), sps (pricing scheme). Missing token with KYAPAY method → error. Invalid token → error 'Invalid Skyfire token'. For other payment methods (MOCK, PAYPAL) no Skyfire token is required. PAYMENT MANDATE: this tool also requires one. Send it as the `payment_mandate` argument if your client cannot set headers, or as an `X-Payment-Mandate` header. It must carry `mandate_id`, `max_amount_cents`, `currency`, `exp`, `sub`, `aud`. Two of these are rejected outright if guessed: `exp` is an INTEGER of Unix seconds (not an ISO 8601 date), and `aud` is this store's slug (the one in the URL you are calling, not a domain). Its `currency` must match the cart's currency. Demo Store enforces `max_amount_cents` against the cart total; a real merchant may only observe that boundary, so enforce the buyer's limit in the agent too. The mandate is a spending cap you declare to limit yourself — it authorises nothing and does not prove the buyer's consent — and its `sub` must be the identity you authenticate as. `max_amount_cents` is the spending limit the person you are buying for gave you: ask them if they gave none. Schema: https://trusteed.xyz/.well-known/payment-mandate.schema.json. Checkout guide: https://trusteed.xyz/.well-known/agent-checkout-guide.json. CREDENTIAL: this store needs one. Call the `create_sandbox_key` tool first (it is in this tool list and needs no credential), then pass the key you get back as the `agent_key` argument — or as an `Authorization: Bearer` header if your client can set headers. Do not ask a person to log in: there is no human login for this store.
Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['checkout_session_id', 'idempotency_key'], 'properties': {'buyer': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Buyer full name'}, 'email': {'type': 'string', 'format': 'email', 'description': 'Buyer email address'}, 'phone': {'type': 'string', 'description': 'Buyer phone number'}}, 'description': 'Optional buyer contact information', 'additionalProperties': True}, 'agent_key': {'type': 'string', 'description': 'Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header.'}, 'cel_context': {'type': 'object', 'properties': {'is_b2b': {'type': 'boolean', 'description': 'True if you are buying on behalf of a business — send only if it applies to you.'}, 'discount_bps': {'type': 'integer', 'maximum': 10000, 'minimum': 0, 'description': 'Discount applied to this cart, in basis points — send only if it applies to you.'}, 'lowest_stock': {'type': 'integer', 'minimum': 0, 'description': "Lowest remaining stock you observed across this cart's line items. Merchant/platform fact — send only with evidence; it can only make a check stricter, never looser."}, 'refund_ratio': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': "This agent's refund ratio with this merchant (0-1). Merchant/platform fact — send only with evidence; it can only make a check stricter, never looser."}, 'dispute_count': {'type': 'integer', 'maximum': 1000000, 'minimum': 0, 'description': 'Number of payment disputes this agent has had with this merchant. Merchant/platform fact — send only with evidence; it can only make a check stricter, never looser.'}, 'key_age_hours': {'type': 'integer', 'maximum': 720, 'minimum': 0, 'description': 'Age in hours of the API key/credential you are using with this store. Merchant/platform fact — send only with evidence; it can only make a check stricter, never looser.'}, 'is_subscription': {'type': 'boolean', 'description': 'True if this checkout creates a recurring subscription. The server checks this itself; a value you send cannot hide what it detects.'}, 'price_delta_bps': {'type': 'integer', 'maximum': 10000, 'minimum': -10000, 'description': "Difference, in basis points, between the price you discovered earlier and the cart's current price. The server may recompute this from the catalogue and replace your value."}, 'shipping_po_box': {'type': 'boolean', 'description': 'True if the shipping address is a PO box. The server checks this itself; a value you send cannot hide what it detects.'}, 'requested_scopes': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64}, 'maxItems': 20, 'description': 'OAuth/permission scopes you requested when authenticating with this store — send only if it applies to you.'}, 'agent_provider_id': {'type': 'string', 'pattern': '^[a-z0-9_\\-]+$', 'maxLength': 64, 'minLength': 1, 'description': 'Your provider identifier (e.g. "openai", "anthropic"), lowercase — send only if it applies to you.'}, 'autorenew_consent': {'type': 'boolean', 'description': 'True if the buyer explicitly consented to auto-renewal for a subscription — send only if it applies to you.'}, 'digital_good_types': {'type': 'array', 'items': {'enum': ['gift_card', 'license_key', 'downloadable', 'stored_value'], 'type': 'string'}, 'maxItems': 10, 'description': 'Digital-good categories present in this cart — send only if it applies to you.'}, 'merchant_orders_1h': {'type': 'integer', 'maximum': 1000000, 'minimum': 0, 'description': 'Orders this merchant has received from any agent in the last hour. Merchant/platform fact — send only with evidence; it can only make a check stricter, never looser.'}, 'product_categories': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64}, 'maxItems': 50, 'description': 'Product categories present in this cart, as you understand them — send only if it applies to you.'}, 'stored_value_cents': {'type': 'integer', 'maximum': 100000000, 'minimum': 0, 'description': 'Stored-value amount (e.g. gift card) applied to this cart, in cents. The server checks this itself; a value you send cannot hide what it detects.'}, 'provider_confidence': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Your confidence (0-1) in your own agent-provider identification — send only if it applies to you.'}, 'purchase_order_hash': {'type': 'string', 'maxLength': 128, 'description': 'Hash of a purchase order backing a B2B purchase — send only if it applies to you.'}, 'completed_orders_24h': {'type': 'integer', 'maximum': 1000000, 'minimum': 0, 'description': 'Orders this agent has completed with this merchant in the last 24 hours. Merchant/platform fact — send only with evidence; it can only make a check stricter, never looser.'}, 'cross_merchant_abuse': {'type': 'boolean', 'description': 'True if you have flagged this same buyer/agent for abuse at another merchant. Merchant/platform fact — send only with evidence; it can only make a check stricter, never looser.'}, 'discount_codes_tried': {'type': 'integer', 'maximum': 100, 'minimum': 0, 'description': 'Number of discount codes you attempted before this checkout — send only if it applies to you.'}, 'return_policy_mismatch': {'type': 'boolean', 'description': 'True if the return policy you were shown does not match what this store publishes elsewhere. Merchant/platform fact — send only with evidence; it can only make a check stricter, never looser.'}, 'shipping_freight_forwarder': {'type': 'boolean', 'description': 'True if the shipping address is a freight-forwarder address — send only if it applies to you.'}}, 'description': "Optional enforcement context for Trusteed native MCP flows (no Shopify/WooCommerce/PrestaShop/Magento plugin). Providing these fields enables full evaluation of rules R004, R006, R008, R012-R013, R015-R017, R026-R028. See each field's own description for what it means and whether the server verifies it. These values are not signed into the receipt — do not include values you cannot substantiate.", 'additionalProperties': True}, 'kyapay_token': {'type': 'string', 'description': 'Skyfire pay or kya-pay JWT for autonomous payment via Skyfire (payment_method=KYAPAY). Alternative to passing the token in the skyfire-pay-id request header — the header takes precedence if both are provided. Claims required: sub, jti, amount (USD), cur=USD, sps.'}, 'payment_method': {'enum': ['ACP', 'KYAPAY', 'PAYPAL', 'MOCK', 'X402'], 'type': 'string', 'description': "Payment method to use. PAYPAL creates a PayPal order and presents approval URL. KYAPAY requires kyapay_token. ACP (Stripe-native settlement) returns a 'not enabled' response unless this deployment enables native settlement; when enabled it charges the Stripe Shared Payment Token passed as shared_payment_token. X402 is available through the configured x402 protocol flow, not this checkout tool. MOCK moves no money: it completes the order without charging. Whether a store accepts it depends on the store's configuration (it is the default on demo-store). Defaults to MOCK if not specified."}, 'payment_option': {'enum': ['demo_card', 'demo_wallet', 'own_wallet'], 'type': 'string', 'description': 'Payment method THE PERSON chose, when preview_checkout returned payment_options. Ask the person; never choose for them. Card numbers and wallet keys are never sent here: the person approves (and, with own_wallet, signs) on the approval page.'}, 'idempotency_key': {'type': 'string', 'description': 'Unique key to prevent duplicate charges on retry. Generate once per purchase attempt. Replay is enforced primarily on checkout_session_id (the existing order is returned). The first key seen for a session is recorded; reusing the same key short-circuits to the existing order.'}, 'payment_mandate': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'string'}], 'description': "Payment mandate with `mandate_id`, `max_amount_cents` (integer, minor units), `currency` (3 letters, must match the cart's), `exp` (expiry as an INTEGER of Unix seconds — not an ISO 8601 date string), `sub` (the identity you authenticate as — it is compared against it) and `aud` (the store slug this mandate is for, e.g. the slug in the URL you are calling — not a domain). It is a spending cap you declare to limit yourself: it authorises nothing and does not prove the buyer's consent. Use this when your client cannot set an `X-Payment-Mandate` header."}, 'checkout_session_id': {'type': 'string', 'description': "Checkout session ID from preview_checkout — the same value as create_cart's cart_id (must be a valid UUID)"}, 'shared_payment_token': {'type': 'string', 'pattern': '^spt_[A-Za-z0-9_]+$', 'description': "Stripe Shared Payment Token (spt_…) granted by the buyer's agent wallet for payment_method=ACP. Issued by Stripe, scoped to this merchant, amount and currency, and consumed when used: it can be charged once. Only honoured when this deployment enables native ACP settlement."}, 'reconfirmed_state_hash': {'type': 'string', 'pattern': '^[0-9a-f]{64}$', 'description': 'SHA-256 of the authoritative merchant state, as returned in details.reconfirm_state_hash by a previous STATE_RECONFIRMATION_REQUIRED error. Required to proceed when the merchant state moved after the approved preview. Passing a stale hash is refused: it means the state moved again and must be reconfirmed anew.'}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['order_id', 'checkout_session_id', 'store_name', 'total_cents', 'currency', 'status', 'idempotent'], 'properties': {'status': {'enum': ['COMPLETED', 'ALREADY_PLACED', 'PENDING_EXTERNAL_CONFIRMATION'], 'type': 'string'}, 'currency': {'type': 'string'}, 'order_id': {'type': 'string'}, 'idempotent': {'type': 'boolean'}, 'store_name': {'type': 'string'}, 'test_funds': {'type': 'boolean'}, 'money_moves': {'type': 'boolean'}, 'next_action': {'type': 'object', 'required': ['actor', 'do', 'url', 'instruction'], 'properties': {'do': {'enum': ['approve', 'pay'], 'type': 'string'}, 'url': {'type': 'string'}, 'actor': {'type': 'string', 'const': 'buyer'}, 'then_call': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'instruction': {'type': 'string'}, 'reuse_arguments': {'type': 'array', 'items': {'enum': ['checkout_session_id', 'checkout_id', 'idempotency_key'], 'type': 'string'}}}, 'additionalProperties': True}, 'payment_url': {'type': 'string'}, 'total_cents': {'type': 'number'}, 'approval_url': {'type': 'string'}, 'order_placed': {'type': 'boolean'}, 'funding_source': {'enum': ['platform_test_card', 'platform_test_wallet', 'buyer_wallet'], 'type': 'string'}, 'payment_method': {'enum': ['ACP', 'KYAPAY', 'PAYPAL', 'MOCK', 'X402'], 'type': 'string'}, 'shipping_source': {'enum': ['platform', 'merchant_policy', 'estimated'], 'type': 'string'}, 'payment_captured': {'type': 'boolean'}, 'external_order_id': {'type': 'string'}, 'checkout_session_id': {'type': 'string'}, 'shipping_authoritative': {'type': 'boolean'}}, 'additionalProperties': True}
create_cart
Create a shopping cart in Demo Store. Returns a cart_id (the same value as checkout_session_id in preview_checkout, complete_checkout and get_trust_receipt) for use with get_shipping_rates, preview_checkout, and complete_checkout. SKYFIRE TOKEN (optional): Provide a kya or kya-pay Skyfire token in the skyfire-pay-id request header to boost your agent trust score (up to +0.35), which may unlock better pricing or priority service. No token required — request proceeds with neutral trust score (0.50) if omitted or invalid. Checkout guide: https://trusteed.xyz/.well-known/agent-checkout-guide.json. CREDENTIAL: this store needs one. Call the `create_sandbox_key` tool first (it is in this tool list and needs no credential), then pass the key you get back as the `agent_key` argument — or as an `Authorization: Bearer` header if your client can set headers. Do not ask a person to log in: there is no human login for this store.
Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id'], 'properties': {'quantity': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Quantity'}, 'product_id': {'type': 'string', 'description': 'Product ID'}, 'variant_id': {'type': 'string', 'description': 'Variant ID (optional). Must match a variant id listed by get_product_details; an unknown id is rejected rather than silently replaced by the default variant.'}}, 'additionalProperties': False}, 'minItems': 1, 'description': 'Items to add to cart'}, 'agent_key': {'type': 'string', 'description': 'Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header.'}, 'agent_token': {'type': 'string', 'description': 'JWS compact (EdDSA/Ed25519) signed by the agent. Required for Shopify enforcement rules R001/R002/R004. The token is embedded as a server-authoritative cart attribute — Trusteed does NOT verify the signature here; that is done offline by the Shopify Function WASM.'}, 'display_context': {'enum': ['webview', 'headless'], 'type': 'string', 'default': 'headless', 'description': 'Agent display capability: webview (browser) or headless'}, 'idempotency_key': {'type': 'string', 'description': 'Idempotency key for this cart creation (UUID-v4 or bounded ASCII token, 1-128 chars). Equivalent to the `Idempotency-Key` header — send it here if your client cannot set headers. Retrying with the same key returns the same cart instead of creating a second one.'}, 'agent_session_id': {'type': 'string', 'description': 'Opaque agent session identifier for cart resume across sessions'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cart_id', 'store_name', 'items', 'subtotal_cents', 'currency', 'status', 'agent_session_id', 'session_state', 'display_context', 'next_step'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'quantity', 'unit_price', 'line_price'], 'properties': {'sku': {'type': 'string'}, 'name': {'type': 'string'}, 'image': {'type': 'string'}, 'quantity': {'type': 'number'}, 'line_price': {'type': 'number'}, 'unit_price': {'type': 'number'}, 'variant_id': {'type': 'string'}, 'variant_title': {'type': 'string'}, 'line_price_cents': {'type': 'number'}, 'unit_price_cents': {'type': 'number'}}, 'additionalProperties': True}}, 'status': {'type': 'string', 'const': 'NOT_READY_FOR_PAYMENT'}, 'cart_id': {'type': 'string'}, 'currency': {'type': 'string'}, 'next_step': {'type': 'string'}, 'store_name': {'type': 'string'}, 'session_state': {'enum': ['new', 'resumed'], 'type': 'string'}, 'subtotal_cents': {'type': 'number'}, 'display_context': {'enum': ['webview', 'headless'], 'type': 'string'}, 'agent_session_id': {'type': 'string'}}, 'additionalProperties': True}
create_sandbox_key
Get a temporary sandbox credential for this demo store, valid 24h. Present it as an `Authorization: Bearer` header, or — when your client cannot set headers — as the `agent_key` argument of the checkout tools. Payments here are simulated: this credential settles nothing and works only on the demo store. No human login is involved at any point.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string'}, 'api_key': {'type': 'string'}, 'retryable': {'type': 'boolean'}, 'expires_at': {'type': 'string'}, 'presented_as': {'type': 'array', 'items': {'type': 'string'}}, 'mandate_subject': {'type': 'string'}}, 'additionalProperties': True}
get_merchant_profile
Get the complete profile — trust score, policies, compliance, and protocol support — of the merchant this MCP endpoint belongs to. Takes NO parameters: the merchant is fixed by which store's /:storeSlug/mcp endpoint you connected to, not by an argument. To read a different merchant's profile, call this same tool on that merchant's own endpoint instead.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['store', 'identity', 'trust', 'policies', 'compliance', 'protocols', 'supportedProtocols', 'protocolScopeNote', 'agentPolicySummary', 'discovery', 'identityLinkingEnabled', 'identityProviderType', 'acpFeedUrl', 'enrichedCatalogEnabled', 'manifest_hash', 'manifest_signed_at', 'manifest_jws'], 'properties': {'store': {'type': 'object', 'required': ['name', 'slug', 'description', 'isDemo'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'isDemo': {'type': 'boolean'}, 'description': {'type': 'string'}}, 'additionalProperties': True}, 'trust': {'type': 'object', 'required': ['overallScore', 'scoringVersion', 'verificationLevel', 'verificationProvenance', 'componentsSourceOfTruth'], 'properties': {'overallScore': {'type': ['number', 'null'], 'description': 'Trust score, engine v4.1, scale 0-100. null = not published.'}, 'scoringVersion': {'type': ['string', 'null'], 'description': "Engine version behind overallScore ('4.1'), null when absent."}, 'verificationLevel': {'type': 'string'}, 'legacyV2Components': {'type': 'object', 'required': ['catalogCompleteness', 'dataFreshness', 'priceAccuracy', 'stockReliability', 'policyClarity', 'responseTime', 'returnRate', 'verificationDepth'], 'properties': {'returnRate': {'type': 'number'}, 'responseTime': {'type': 'number'}, 'dataFreshness': {'type': 'number'}, 'policyClarity': {'type': 'number'}, 'priceAccuracy': {'type': 'number'}, 'stockReliability': {'type': 'number'}, 'verificationDepth': {'type': 'number'}, 'catalogCompleteness': {'type': 'number'}}, 'description': 'Legacy v2 self-declared breakdown (0-1). Does NOT explain overallScore (v4.1). For the components behind the published score call GET /api/v1/stores/{slug}/trust-score. Omitted when every value is zero.', 'additionalProperties': True}, 'verificationProvenance': {'enum': ['seeded', 'verified'], 'type': 'string'}, 'componentsSourceOfTruth': {'type': 'string', 'description': 'Canonical source for the components behind overallScore.'}}, 'additionalProperties': True}, 'identity': {'type': 'object', 'properties': {'taxId': {'type': 'string'}, 'address': {'type': 'object', 'properties': {'city': {'type': 'string'}, 'state': {'type': 'string'}, 'street': {'type': 'string'}, 'country': {'type': 'string'}, 'postalCode': {'type': 'string'}}, 'additionalProperties': True}, 'contact': {'type': 'object', 'properties': {'chat': {'type': 'string'}, 'email': {'type': 'string'}, 'phone': {'type': 'string'}}, 'additionalProperties': True}, 'verified': {'type': 'boolean', 'const': False}, 'legalName': {'type': 'string'}, 'provenance': {'type': 'string', 'const': 'synthetic_demo', 'description': "Present only on showcase/demo stores: this block is synthetic demo data, not a real seller's claim."}}, 'additionalProperties': True}, 'policies': {'type': 'object', 'properties': {'payment': {'type': 'object', 'properties': {'verified': {'$ref': '#/properties/identity/properties/verified'}, 'provenance': {'$ref': '#/properties/identity/properties/provenance'}, 'acceptedMethods': {'type': 'array', 'items': {'type': 'string'}}, 'withheldMethods': {'type': 'array', 'items': {'type': 'object', 'required': ['method', 'reason'], 'properties': {'method': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': True}}, 'securityStandard': {'type': 'string'}}, 'description': 'Merchant-declared payment policy. Absent = not declared; ask at checkout.', 'additionalProperties': True}, 'returns': {'type': 'object', 'properties': {'verified': {'$ref': '#/properties/identity/properties/verified'}, 'provenance': {'$ref': '#/properties/identity/properties/provenance'}, 'windowDays': {'type': 'number'}, 'refundMethod': {'type': 'string'}, 'freeReturnShipping': {'type': 'string'}, 'refundProcessingDays': {'type': 'number'}}, 'description': 'Merchant-declared return policy. Absent = not declared; absence is NEVER zero.', 'additionalProperties': True}, 'shipping': {'type': 'object', 'properties': {'verified': {'$ref': '#/properties/identity/properties/verified'}, 'provenance': {'$ref': '#/properties/identity/properties/provenance'}, 'expressPrice': {'type': 'number'}, 'overnightPrice': {'type': 'number'}, 'freeThresholdCents': {'type': 'number'}, 'standardDeliveryDays': {'type': 'string'}}, 'description': "Merchant-declared shipping policy for the merchant's OWN checkout. Absent = not declared. An absent freeThresholdCents is NOT 'free shipping on everything', and a declared one is NOT applied by get_shipping_rates: those rates are flat estimates that ignore the cart subtotal. Delivery days here may differ from the estimates too.", 'additionalProperties': True}, 'warranty': {'type': 'object', 'properties': {'covered': {'type': 'string'}, 'verified': {'$ref': '#/properties/identity/properties/verified'}, 'provenance': {'$ref': '#/properties/identity/properties/provenance'}, 'periodYears': {'type': 'number'}}, 'description': "Merchant-declared warranty. Absent = not declared, NOT 'no warranty'.", 'additionalProperties': True}}, 'additionalProperties': True}, 'discovery': {'type': 'object', 'required': ['mcpEndpoint', 'agUiEndpoint', 'agentCard', 'agentPolicy', 'ucpProfile', 'llmsTxt'], 'properties': {'llmsTxt': {'type': 'string'}, 'agentCard': {'type': 'string'}, 'ucpProfile': {'type': 'string'}, 'agentPolicy': {'type': 'string'}, 'mcpEndpoint': {'type': 'string'}, 'agUiEndpoint': {'type': 'string'}}, 'additionalProperties': True}, 'protocols': {'type': 'object', 'required': ['acp', 'ap2', 'x402'], 'properties': {'acp': {'type': 'object', 'required': ['enabled', 'provider'], 'properties': {'enabled': {'type': 'boolean'}, 'provider': {'type': 'string'}}, 'additionalProperties': True}, 'ap2': {'type': 'object', 'required': ['enabled', 'provider'], 'properties': {'enabled': {'type': 'boolean'}, 'provider': {'type': 'string'}}, 'additionalProperties': True}, 'ucp': {'type': 'object', 'required': ['enabled', 'version'], 'properties': {'enabled': {'type': 'boolean'}, 'version': {'type': 'string'}}, 'additionalProperties': True}, 'vic': {'type': 'object', 'required': ['enabled', 'environment'], 'properties': {'enabled': {'type': 'boolean'}, 'environment': {'type': 'string'}}, 'additionalProperties': True}, 'x402': {'type': 'object', 'required': ['enabled', 'provider'], 'properties': {'enabled': {'type': 'boolean'}, 'provider': {'type': 'string'}}, 'additionalProperties': True}}, 'additionalProperties': True}, 'acpFeedUrl': {'type': 'string'}, 'compliance': {'type': 'object', 'properties': {'verified': {'$ref': '#/properties/identity/properties/verified'}, 'provenance': {'$ref': '#/properties/identity/properties/provenance'}, 'pciDssLevel': {'type': 'number', 'description': 'PCI DSS merchant level as declared by the merchant (1-4). Absent = not declared.'}, 'encryptionAtRest': {'type': 'string'}, 'gdprContactEmail': {'type': 'string'}, 'dataRetentionDays': {'type': 'number', 'description': "Retention window as declared by the merchant. Absent = not declared; absence is NOT 'data is deleted immediately'."}, 'gdprDataController': {'type': 'string'}, 'encryptionInTransit': {'type': 'string'}}, 'additionalProperties': True}, 'manifest_jws': {'type': ['string', 'null']}, 'manifest_hash': {'type': 'string'}, 'protocolScopeNote': {'type': 'string'}, 'agentPolicySummary': {'type': 'object', 'required': ['source'], 'properties': {'source': {'enum': ['merchant_rules', 'platform_ceiling', 'not_configured', 'lookup_failed'], 'type': 'string'}, 'maxCartValue': {'type': 'object', 'required': ['amountCents', 'derivedFrom'], 'properties': {'amountCents': {'type': 'number'}, 'derivedFrom': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}, 'maxUnitsPerLine': {'type': 'object', 'required': ['units', 'derivedFrom'], 'properties': {'units': {'type': 'integer'}, 'derivedFrom': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}, 'allowedShippingCountries': {'type': 'object', 'required': ['countries', 'derivedFrom'], 'properties': {'countries': {'type': 'array', 'items': {'type': 'string'}}, 'derivedFrom': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}, 'confirmationRequiredAtOrAbove': {'$ref': '#/properties/agentPolicySummary/properties/maxCartValue'}}, 'additionalProperties': True}, 'manifest_signed_at': {'type': ['string', 'null']}, 'supportedProtocols': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'mode', 'description'], 'properties': {'mode': {'enum': ['live', 'sandbox', 'coming_soon'], 'type': 'string'}, 'name': {'type': 'string'}, 'description': {'type': 'string'}}, 'additionalProperties': True}}, 'identityProviderType': {'type': ['string', 'null']}, 'enrichedCatalogEnabled': {'type': 'boolean'}, 'identityLinkingEnabled': {'type': 'boolean'}}, 'additionalProperties': True}
get_page_content
Get a SUMMARY of a specific page on Trusteed: its title, description, keywords, related tools and the link to the full page. It returns a summary, not the full page text: read the linked URL when the whole page is needed. `content_scope` says what came back. Pass the page slug (e.g. 'for-agents', 'pricing', 'blog') or a blog post slug (returns its excerpt). Use get_site_map first to discover available slugs. Pass page='blog' to list all blog posts.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['page'], 'properties': {'page': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "Page slug (e.g. 'for-agents', 'pricing', 'trust') or blog post slug. Use 'blog' to list all blog posts."}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'path': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'type': {'enum': ['page', 'blog_post', 'blog_index'], 'type': 'string'}, 'found': {'type': 'boolean'}, 'posts': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'path', 'title', 'excerpt', 'category', 'datePublished'], 'properties': {'path': {'type': 'string'}, 'slug': {'type': 'string'}, 'title': {'type': 'string'}, 'excerpt': {'type': 'string'}, 'category': {'type': 'string'}, 'datePublished': {'type': 'string'}}, 'additionalProperties': True}}, 'title': {'type': 'string'}, 'total': {'type': 'number'}, 'excerpt': {'type': 'string'}, 'category': {'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}, 'suggestion': {'type': 'string'}, 'description': {'type': 'string'}, 'readingTime': {'type': 'string'}, 'content_scope': {'enum': ['summary', 'index'], 'type': 'string'}, 'datePublished': {'type': 'string'}, 'related_tools': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}
get_product_details
Get detailed information about a specific product in Demo Store, including all variants, sizes, colors, and availability.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['product_id'], 'properties': {'product_id': {'type': 'string', 'description': "Product ID — use the `id` field returned by search_products or nlweb_ask (e.g. 'prod-001'). Do not invent IDs."}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'error': {'type': 'string', 'const': 'not_found'}, 'price': {'type': 'number'}, 'title': {'type': 'string'}, 'jsonLd': {'type': 'object', 'additionalProperties': {}}, 'vendor': {'type': ['string', 'null']}, 'message': {'type': 'string'}, 'currency': {'type': 'string'}, 'variants': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'price', 'sku', 'stock_status', 'options'], 'properties': {'id': {'type': 'string'}, 'sku': {'type': ['string', 'null']}, 'price': {'type': 'number'}, 'title': {'type': 'string'}, 'options': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'stock_status': {'enum': ['in_stock', 'low_stock', 'out_of_stock'], 'type': 'string'}}, 'additionalProperties': True}}, 'image_url': {'type': ['string', 'null']}, 'attributes': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'product_id': {'type': 'string'}, 'review_count': {'type': ['number', 'null']}, 'stock_status': {'enum': ['in_stock', 'low_stock', 'out_of_stock'], 'type': 'string'}, 'average_rating': {'type': ['number', 'null']}, 'compare_at_price': {'type': ['number', 'null']}, 'rating_provenance': {'anyOf': [{'type': 'object', 'required': ['origin', 'strength', 'verified', 'note'], 'properties': {'note': {'type': 'string'}, 'origin': {'type': 'string', 'const': 'merchant'}, 'strength': {'type': 'string', 'const': 'claimed'}, 'verified': {'type': 'boolean', 'const': False}}, 'additionalProperties': True}, {'type': 'null'}]}}, 'additionalProperties': True}
get_shipping_rates
Get available shipping rates for the cart. Requires shipping_address — pass it in the call. If the buyer requests the cheapest option, use cheapest_shipping_handle when non-null; it is null when rates cannot be compared in the cart currency. Rates marked authoritative=false are estimates, not the final charge. PREFER THE CART CARD: if create_cart returned an interactive card (the buyer can see and click it), let them enter the address and pick shipping there instead of calling this tool yourself — each top-level call you make here opens a new card in the transcript instead of updating the one already open. Only call it yourself when there is no interactive card (text-only client) or the buyer explicitly asks you to handle it in chat. SKYFIRE TOKEN (optional): Pass a kya or kya-pay token in the skyfire-pay-id header to boost trust score. No token required — request proceeds normally if omitted. Checkout guide: https://trusteed.xyz/.well-known/agent-checkout-guide.json. CREDENTIAL: this store needs one. Call the `create_sandbox_key` tool first (it is in this tool list and needs no credential), then pass the key you get back as the `agent_key` argument — or as an `Authorization: Bearer` header if your client can set headers. Do not ask a person to log in: there is no human login for this store.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cart_id'], 'properties': {'cart_id': {'type': 'string', 'description': 'Cart session ID returned by create_cart'}, 'agent_key': {'type': 'string', 'description': 'Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header.'}, 'shipping_address': {'type': 'object', 'required': ['address1', 'city', 'country_code', 'zip'], 'properties': {'zip': {'type': 'string', 'description': 'Postal / ZIP code'}, 'city': {'type': 'string', 'description': 'City'}, 'address1': {'type': 'string', 'description': 'Street address'}, 'country_code': {'type': 'string', 'description': 'ISO country code (e.g. US, CA)'}, 'province_code': {'type': 'string', 'description': 'Province or state code (optional)'}}, 'description': 'Destination address. Required: this tool does not prompt for it.', 'additionalProperties': True}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cart_id', 'rates', 'cheapest_shipping_handle'], 'properties': {'rates': {'type': 'array', 'items': {'type': 'object', 'required': ['handle', 'title', 'price', 'currency', 'source', 'authoritative'], 'properties': {'price': {'type': 'number'}, 'title': {'type': 'string'}, 'handle': {'type': 'string'}, 'source': {'enum': ['platform', 'merchant_policy', 'estimated'], 'type': 'string'}, 'currency': {'type': 'string'}, 'authoritative': {'type': 'boolean'}, 'estimated_delivery': {'type': 'string'}}, 'additionalProperties': True}}, 'cart_id': {'type': 'string'}, 'address_city': {'type': 'string'}, 'address_country': {'type': 'string'}, 'cheapest_shipping_handle': {'type': ['string', 'null']}}, 'additionalProperties': True}
get_site_map
Returns the complete site map of Trusteed: all public pages organized by category. Use this to discover what sections are available (docs, blog, integrations, legal, marketing) and find the right path before calling get_page_content.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'category': {'enum': ['commerce', 'docs', 'legal', 'blog', 'marketing', 'integrations'], 'type': 'string', 'description': 'Filter pages by category: commerce, docs, legal, blog, marketing, integrations'}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['pages', 'total', 'blog_count', 'faq_count', 'categories'], 'properties': {'pages': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'path', 'title', 'description', 'category', 'keywords'], 'properties': {'path': {'type': 'string'}, 'slug': {'type': 'string'}, 'title': {'type': 'string'}, 'category': {'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}, 'description': {'type': 'string'}}, 'additionalProperties': True}}, 'total': {'type': 'number'}, 'faq_count': {'type': 'number'}, 'blog_count': {'type': 'number'}, 'categories': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}
get_store_trust
Get Demo Store's signed trust score (v4.1, 0-100) with per-signal data quality, confidence level, and a detached JWS for offline verification. Don't trust the number — verify it: download the JWKS at jwks_snapshot_uri, validate jws_compact with signing_kid, and recompute payload_hash_sha256.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['store_slug', 'available', 'score', 'confidence_level', 'scoring_version', 'issued_at', 'breakdown', 'signature', 'confidence_interval'], 'properties': {'score': {'type': ['number', 'null']}, 'available': {'type': 'boolean'}, 'breakdown': {'anyOf': [{'type': 'object', 'required': ['merchant_reliability_base', 'agentic_readiness', 'agentic_evidence'], 'properties': {'agentic_evidence': {'$ref': '#/properties/breakdown/anyOf/0/properties/merchant_reliability_base'}, 'agentic_readiness': {'$ref': '#/properties/breakdown/anyOf/0/properties/merchant_reliability_base'}, 'external_assurance': {'$ref': '#/properties/breakdown/anyOf/0/properties/merchant_reliability_base'}, 'merchant_reliability_base': {'type': 'object', 'required': ['value', 'weight', 'data_quality', 'recommendations'], 'properties': {'value': {'type': ['number', 'null']}, 'weight': {'type': 'number'}, 'data_quality': {'type': 'string'}, 'recommendations': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}}, 'additionalProperties': True}, {'type': 'null'}]}, 'issued_at': {'type': ['string', 'null']}, 'signature': {'anyOf': [{'type': 'object', 'required': ['jws_compact', 'signing_kid', 'jwks_snapshot_uri', 'payload_hash_sha256'], 'properties': {'jws_compact': {'type': 'string'}, 'signing_kid': {'type': 'string'}, 'jwks_snapshot_uri': {'type': 'string'}, 'payload_hash_sha256': {'type': 'string'}}, 'additionalProperties': True}, {'type': 'null'}]}, 'store_slug': {'type': 'string'}, 'scoring_version': {'type': ['string', 'null']}, 'confidence_level': {'type': ['string', 'null']}, 'confidence_interval': {'anyOf': [{'type': 'object', 'required': ['half_width', 'lower', 'upper'], 'properties': {'lower': {'type': 'number'}, 'upper': {'type': 'number'}, 'half_width': {'type': 'number'}}, 'additionalProperties': True}, {'type': 'null'}]}}, 'additionalProperties': True}
get_trust_receipt
Retrieve the signed trust receipt for a checkout. A receipt records the complete_checkout call; read `order_placed` before telling anyone a purchase happened. Returns the receipt id, the JWS signature and how to verify it. Issuance is asynchronous: right after complete_checkout this may answer `status: "pending"` with a retry delay. `pending` with code `receipt_pending` means the purchase completed and the receipt is on its way; `checkout_in_progress` means it has not settled yet. Only the credential that made the purchase can read its receipt. PREFER THE CART CARD: if the purchase was completed on an interactive card, it already fetches and shows this receipt itself right after the order — calling this tool yourself right after is usually redundant and opens a new card in the transcript. Call it yourself only when there is no interactive card, or the buyer asks for the receipt later in a new turn. Checkout guide: https://trusteed.xyz/.well-known/agent-checkout-guide.json.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['checkout_session_id'], 'properties': {'agent_key': {'type': 'string', 'description': 'Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header.'}, 'checkout_session_id': {'type': 'string', 'description': 'The checkout session id returned by create_cart and echoed by complete_checkout.'}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status'], 'properties': {'jws': {'type': 'string'}, 'code': {'type': 'string'}, 'docs': {'type': 'string'}, 'status': {'enum': ['issued', 'pending'], 'type': 'string'}, 'call_id': {'type': 'string'}, 'message': {'type': 'string'}, 'order_id': {'type': 'string'}, 'issued_at': {'type': 'string'}, 'dimensions': {'type': 'object', 'required': ['version', 'issuer_signed', 'evidence_present', 'evidence_verified', 'chain_coverage', 'revocation', 'settlement'], 'properties': {'version': {'type': 'string', 'const': '1.0'}, 'revocation': {'type': 'object', 'required': ['status', 'checked_at', 'freshness_seconds', 'status_list_url'], 'properties': {'status': {'enum': ['not_revoked', 'revoked', 'unknown'], 'type': 'string'}, 'checked_at': {'type': ['string', 'null']}, 'status_list_url': {'type': ['string', 'null']}, 'freshness_seconds': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}]}}, 'additionalProperties': True}, 'settlement': {'type': 'object', 'required': ['status'], 'properties': {'status': {'enum': ['settled', 'not_attested'], 'type': 'string'}, 'rail_evidence_ref': {'type': 'string', 'minLength': 1}}, 'additionalProperties': True}, 'issuer_signed': {'enum': ['verified', 'present_unverified', 'absent', 'rejected'], 'type': 'string'}, 'chain_coverage': {'type': 'object', 'required': ['status', 'receipt_seq', 'covered_through_seq', 'checkpoint_day'], 'properties': {'status': {'enum': ['covered', 'not_covered', 'unknown'], 'type': 'string'}, 'receipt_seq': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'checkpoint_day': {'type': ['string', 'null']}, 'covered_through_seq': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}}, 'additionalProperties': True}, 'evidence_present': {'enum': ['present', 'absent', 'unknown'], 'type': 'string'}, 'evidence_verified': {'enum': ['verified', 'not_verified', 'not_applicable'], 'type': 'string'}}, 'additionalProperties': False}, 'receipt_id': {'type': 'string'}, 'verify_url': {'type': 'string'}, 'verify_with': {'type': 'string'}, 'order_placed': {'type': 'boolean'}, 'checkout_status': {'type': 'string'}, 'does_not_attest': {'type': 'array', 'items': {'type': 'string'}}, 'signature_status': {'enum': ['signed', 'unsigned'], 'type': 'string'}, 'retry_after_seconds': {'type': 'number'}}, 'additionalProperties': True}
preview_checkout
Preview the complete order summary before payment. Advances the session to ready-for-payment state. PREFER THE CART CARD: if there is an interactive card for this cart, let it compute and show the summary instead of calling this tool yourself — it keeps the flow in one card. SKYFIRE TOKEN (optional): Pass a kya or kya-pay token in the skyfire-pay-id header to boost trust score. No token required — request proceeds normally if omitted. Checkout guide: https://trusteed.xyz/.well-known/agent-checkout-guide.json. CREDENTIAL: this store needs one. Call the `create_sandbox_key` tool first (it is in this tool list and needs no credential), then pass the key you get back as the `agent_key` argument — or as an `Authorization: Bearer` header if your client can set headers. Do not ask a person to log in: there is no human login for this store.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cart_id'], 'properties': {'cart_id': {'type': 'string', 'description': 'Cart session ID returned by create_cart'}, 'agent_key': {'type': 'string', 'description': 'Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header.'}, 'payment_mandate': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'string'}], 'description': "Payment mandate with `mandate_id`, `max_amount_cents` (integer, minor units), `currency` (3 letters, must match the cart's), `exp` (expiry as an INTEGER of Unix seconds — not an ISO 8601 date string), `sub` (the identity you authenticate as — it is compared against it) and `aud` (the store slug this mandate is for, e.g. the slug in the URL you are calling — not a domain). It is a spending cap you declare to limit yourself: it authorises nothing and does not prove the buyer's consent. Use this when your client cannot set an `X-Payment-Mandate` header."}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['checkout_session_id', 'store_name', 'items', 'subtotal_cents', 'shipping_cents', 'discount_cents', 'total_cents', 'currency', 'tax_cents', 'tax_status', 'total_is_final', 'total_note', 'status'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'quantity', 'line_price'], 'properties': {'name': {'type': 'string'}, 'quantity': {'type': 'number'}, 'line_price': {'type': 'number'}}, 'additionalProperties': True}}, 'status': {'enum': ['READY_FOR_PAYMENT', 'PENDING_APPROVAL'], 'type': 'string'}, 'currency': {'type': 'string'}, 'next_step': {'type': 'string', 'const': 'ask_user_payment_method'}, 'tax_cents': {'type': 'number'}, 'expires_at': {'type': 'string'}, 'store_name': {'type': 'string'}, 'tax_status': {'enum': ['included', 'not_calculated'], 'type': 'string'}, 'total_note': {'type': 'string'}, 'approval_id': {'type': 'string'}, 'total_cents': {'type': 'number'}, 'approval_url': {'type': 'string'}, 'discount_cents': {'type': 'number'}, 'shipping_cents': {'type': 'number'}, 'shipping_title': {'type': 'string'}, 'subtotal_cents': {'type': 'number'}, 'total_is_final': {'type': 'boolean'}, 'payment_options': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'rail', 'funding_source', 'available'], 'properties': {'id': {'enum': ['demo_card', 'demo_wallet', 'own_wallet', 'kyapay'], 'type': 'string'}, 'rail': {'enum': ['stripe', 'x402', 'kyapay'], 'type': 'string'}, 'label': {'type': 'string'}, 'available': {'type': 'boolean'}, 'funding_source': {'anyOf': [{'enum': ['platform_test_card', 'platform_test_wallet', 'buyer_wallet'], 'type': 'string'}, {'type': 'null'}]}, 'reason_unavailable': {'enum': ['coming_soon', 'not_enabled'], 'type': 'string'}}, 'additionalProperties': True}}, 'shipping_source': {'enum': ['platform', 'merchant_policy', 'estimated'], 'type': 'string'}, 'next_step_message': {'type': 'string'}, 'approval_status_url': {'type': 'string'}, 'checkout_session_id': {'type': 'string'}, 'shipping_authoritative': {'type': 'boolean'}}, 'additionalProperties': True}
search_docs
Full-text search across all Trusteed public documentation: pages, blog posts, and FAQ entries. Returns ranked results by relevance. Use this to find answers about protocols, pricing, integration guides, trust scores, and more.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'type': {'enum': ['page', 'blog', 'faq'], 'type': 'string', 'description': 'Filter results by type: page, blog, or faq. Omit to search all types.'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 20, 'minimum': 1, 'description': 'Maximum number of results (1-20, default 10)'}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 2, 'description': "Search query, e.g. 'trust score threshold', 'shopify integration', 'rate limits'"}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results', 'total', 'query'], 'properties': {'query': {'type': 'string'}, 'total': {'type': 'number'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'slug', 'path', 'title', 'excerpt', 'score'], 'properties': {'path': {'type': 'string'}, 'slug': {'type': 'string'}, 'type': {'enum': ['page', 'blog', 'faq'], 'type': 'string'}, 'score': {'type': 'number'}, 'title': {'type': 'string'}, 'excerpt': {'type': 'string'}}, 'additionalProperties': True}}}, 'additionalProperties': True}
search_products
Search products in Demo Store. Returns matching products with prices, images, availability, and direct links. Results include data for generating a visual product carousel artifact with category filtering.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Number of results (1-50)'}, 'query': {'type': 'string', 'maxLength': 200, 'description': "Search query (e.g. 'red sneakers', 'winter jacket'). Omit to list all products."}, 'cursor': {'type': 'string', 'description': 'Opaque pagination cursor from next_cursor of a previous response. Only valid for the SAME query, category, price range and sort_by — a cursor replayed against different filters is rejected, not silently applied.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'When true, the same products are described only once instead of twice. `structuredContent.products` stays the full typed record — every field, every product, untouched — but the text reply becomes a short id/title/price/currency/availability line per product instead of a markdown re-narration of that same data (images, links, ratings inline). Nothing that asserts trust is affected: `merchant_trust`, `rating_provenance` and `sort_provenance_warning` are never trimmed by this flag. Ignored when `field_mask` is also set — a field mask already replaces the narration with a compact listing, so there is nothing left for `compact` to cut.'}, 'sort_by': {'enum': ['relevance', 'price_asc', 'price_desc', 'newest', 'rating'], 'type': 'string', 'default': 'relevance', 'description': 'Sort order for results'}, 'category': {'type': 'string', 'maxLength': 200, 'description': 'Filter by category slug'}, 'max_price': {'type': 'number', 'description': 'Maximum price filter', 'exclusiveMinimum': 0}, 'min_price': {'type': 'number', 'description': 'Minimum price filter', 'exclusiveMinimum': 0}, 'field_mask': {'type': 'array', 'items': {'enum': ['title', 'price', 'compareAtPrice', 'currency', 'image', 'url', 'stockStatus', 'rating', 'reviewCount', 'rating_provenance', 'vendor', 'variants'], 'type': 'string'}, 'description': 'Return only these product fields, to spend less of your context on a large catalogue. `id` is always included. Supplying a mask also drops the carousel/UI payloads, which are the bulk of a full response.'}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['products', 'total'], 'properties': {'query': {'type': 'string'}, 'total': {'type': 'number'}, 'has_more': {'type': 'boolean'}, 'products': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Product ID — use as product_id in create_cart'}, 'url': {'type': 'string'}, 'image': {'type': ['string', 'null']}, 'price': {'type': 'number'}, 'title': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'vendor': {'type': ['string', 'null']}, 'currency': {'type': 'string'}, 'variants': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'stock_status'], 'properties': {'id': {'type': 'string'}, 'title': {'type': 'string'}, 'stock_status': {'enum': ['in_stock', 'low_stock', 'out_of_stock'], 'type': 'string'}}, 'additionalProperties': True}}, 'reviewCount': {'type': ['number', 'null']}, 'stockStatus': {'enum': ['in_stock', 'low_stock', 'out_of_stock'], 'type': 'string'}, 'compareAtPrice': {'type': ['number', 'null']}, 'rating_provenance': {'anyOf': [{'type': 'object', 'required': ['origin', 'strength', 'verified', 'note'], 'properties': {'note': {'type': 'string'}, 'origin': {'type': 'string', 'const': 'merchant'}, 'strength': {'type': 'string', 'const': 'claimed'}, 'verified': {'type': 'boolean', 'const': False}}, 'additionalProperties': True}, {'type': 'null'}]}}, 'additionalProperties': True}}, 'next_cursor': {'type': 'string'}, 'store_environment': {'type': 'string'}, 'sort_provenance_warning': {'type': 'string'}}, 'additionalProperties': True}
search_products_enriched
Search products with enriched data including structured attributes, variants, GTIN, and images. Ideal for comparison and detailed product discovery. Matching is keyword/substring-based (title, description, tags, vendor) with rating-then-review ordering — the rating and review count it orders by are asserted by the merchant and are not verified by Trusteed. Use this when you have concrete keywords, a category, or a price range.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 20, 'minimum': 1, 'description': 'Max results (1-20)'}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Search query'}, 'category': {'type': 'string', 'description': 'Filter by category'}, 'max_price': {'type': 'number', 'description': 'Maximum price'}, 'min_price': {'type': 'number', 'description': 'Minimum price'}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['products', 'total', 'query', 'sort_provenance_warning'], 'properties': {'query': {'type': 'string'}, 'total': {'type': 'number'}, 'products': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'description', 'price', 'currency', 'availability', 'imageUrl', 'images', 'url', 'vendor', 'reviewCount', 'attributes', 'variants'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'gtin': {'anyOf': [{'anyOf': [{'not': {}}, {'type': 'string'}]}, {'type': 'null'}]}, 'price': {'type': 'number'}, 'title': {'type': 'string'}, 'images': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'alt': {'type': 'string'}, 'url': {'type': 'string'}}, 'additionalProperties': True}}, 'vendor': {'type': 'string'}, 'currency': {'type': 'string'}, 'imageUrl': {'type': 'string'}, 'variants': {'type': 'array', 'items': {'type': 'object', 'required': ['sku', 'price', 'available'], 'properties': {'sku': {'type': 'string'}, 'gtin': {'type': 'string'}, 'size': {'anyOf': [{'anyOf': [{'not': {}}, {'type': 'string'}]}, {'type': 'null'}]}, 'color': {'anyOf': [{'anyOf': [{'not': {}}, {'type': 'string'}]}, {'type': 'null'}]}, 'price': {'type': 'number'}, 'available': {'type': 'boolean'}, 'inventoryQuantity': {'anyOf': [{'anyOf': [{'not': {}}, {'type': 'number'}]}, {'type': 'null'}]}}, 'additionalProperties': True}}, 'attributes': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'value'], 'properties': {'key': {'type': 'string'}, 'value': {'type': 'string'}, 'displayName': {'type': 'string'}}, 'additionalProperties': True}}, 'description': {'type': 'string'}, 'reviewCount': {'type': 'number'}, 'availability': {'enum': ['in stock', 'out of stock', 'preorder'], 'type': 'string'}, 'averageRating': {'anyOf': [{'anyOf': [{'not': {}}, {'type': 'number'}]}, {'type': 'null'}]}, 'rating_provenance': {'anyOf': [{'type': 'object', 'required': ['origin', 'strength', 'verified', 'note'], 'properties': {'note': {'type': 'string'}, 'origin': {'type': 'string', 'const': 'merchant'}, 'strength': {'type': 'string', 'const': 'claimed'}, 'verified': {'type': 'boolean', 'const': False}}, 'additionalProperties': True}, {'type': 'null'}]}}, 'additionalProperties': True}}, 'sort_provenance_warning': {'type': 'string'}}, 'additionalProperties': True}
select_shipping_option
Select a shipping method for the cart. Must call get_shipping_rates first and provide idempotency_key. Reuse the same key for retries of the same cart and option; use a new key if either changes. PREFER THE CART CARD: if there is an interactive card for this cart, let the buyer pick shipping there instead of calling this tool yourself — it keeps the flow in one card instead of opening a new one per step. SKYFIRE TOKEN (optional): Pass a kya or kya-pay token in the skyfire-pay-id header to boost trust score. No token required — request proceeds normally if omitted. Checkout guide: https://trusteed.xyz/.well-known/agent-checkout-guide.json. CREDENTIAL: this store needs one. Call the `create_sandbox_key` tool first (it is in this tool list and needs no credential), then pass the key you get back as the `agent_key` argument — or as an `Authorization: Bearer` header if your client can set headers. Do not ask a person to log in: there is no human login for this store.
Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cart_id', 'shipping_handle', 'idempotency_key'], 'properties': {'cart_id': {'type': 'string', 'description': 'Cart session ID'}, 'agent_key': {'type': 'string', 'description': 'Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header.'}, 'idempotency_key': {'type': 'string', 'pattern': '^[A-Za-z0-9._:/-]{1,128}$', 'maxLength': 128, 'minLength': 1, 'description': 'Required. Reuse this key only when retrying the same cart and shipping option; use a new key if either changes.'}, 'shipping_handle': {'type': 'string', 'description': 'Shipping method handle from get_shipping_rates'}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cart_id', 'selected_handle', 'selected_title', 'shipping_cents', 'subtotal_cents', 'total_cents', 'currency', 'shipping_source', 'shipping_authoritative'], 'properties': {'cart_id': {'type': 'string'}, 'currency': {'type': 'string'}, 'total_cents': {'type': 'number'}, 'selected_title': {'type': 'string'}, 'shipping_cents': {'type': 'number'}, 'subtotal_cents': {'type': 'number'}, 'selected_handle': {'type': 'string'}, 'shipping_source': {'enum': ['platform', 'merchant_policy', 'estimated'], 'type': 'string'}, 'shipping_authoritative': {'type': 'boolean'}}, 'additionalProperties': True}
ucp_cancel_checkout
Cancel a UCP checkout session. Transitions to 'canceled' status. Cannot cancel already completed checkouts. Checkout guide: https://trusteed.xyz/.well-known/agent-checkout-guide.json.
Destruktiv Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['checkout_id'], 'properties': {'reason': {'type': 'string', 'description': 'Optional cancellation reason'}, 'agent_key': {'type': 'string', 'description': 'Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header.'}, 'checkout_id': {'type': 'string', 'description': 'UCP checkout session ID (valid UUID)'}, 'idempotency_key': {'type': 'string', 'description': 'Optional idempotency key to prevent duplicate cancellations.'}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'status', 'currency', 'line_items', 'totals', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'intent': {'type': 'object', 'required': ['action'], 'properties': {'action': {'type': 'string'}, 'locale': {'type': 'string'}, 'context': {'type': 'string'}}, 'additionalProperties': True}, 'status': {'enum': ['incomplete', 'requires_escalation', 'ready_for_complete', 'complete_in_progress', 'completed', 'canceled'], 'type': 'string'}, 'totals': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'amount', 'currency'], 'properties': {'label': {'type': 'string'}, 'amount': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': True}}, 'currency': {'type': 'string'}, 'next_step': {'type': 'string', 'const': 'ask_user_payment_method'}, 'created_at': {'type': 'string'}, 'extensions': {'type': 'object', 'properties': {'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message', 'severity'], 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}, 'severity': {'enum': ['info', 'caution', 'critical'], 'type': 'string'}, 'disclosure_url': {'type': 'string'}}, 'additionalProperties': True}}}, 'additionalProperties': True}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'product_id', 'title', 'quantity', 'price'], 'properties': {'id': {'type': 'string'}, 'price': {'type': 'object', 'required': ['amount', 'currency'], 'properties': {'amount': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': True}, 'title': {'type': 'string'}, 'quantity': {'type': 'number'}, 'product_id': {'type': 'string'}}, 'additionalProperties': True}}, 'updated_at': {'type': 'string'}, 'next_action': {'type': 'object', 'required': ['actor', 'do', 'url', 'instruction'], 'properties': {'do': {'enum': ['approve', 'pay'], 'type': 'string'}, 'url': {'type': 'string'}, 'actor': {'type': 'string', 'const': 'buyer'}, 'then_call': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'instruction': {'type': 'string'}, 'reuse_arguments': {'type': 'array', 'items': {'enum': ['checkout_session_id', 'checkout_id', 'idempotency_key'], 'type': 'string'}}}, 'additionalProperties': True}, 'approval_url': {'type': 'string'}, 'idempotency_key': {'type': 'string'}, 'payment_options': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'rail', 'funding_source', 'available'], 'properties': {'id': {'enum': ['demo_card', 'demo_wallet', 'own_wallet', 'kyapay'], 'type': 'string'}, 'rail': {'enum': ['stripe', 'x402', 'kyapay'], 'type': 'string'}, 'label': {'type': 'string'}, 'available': {'type': 'boolean'}, 'funding_source': {'anyOf': [{'enum': ['platform_test_card', 'platform_test_wallet', 'buyer_wallet'], 'type': 'string'}, {'type': 'null'}]}, 'reason_unavailable': {'enum': ['coming_soon', 'not_enabled'], 'type': 'string'}}, 'additionalProperties': True}}, 'next_step_message': {'type': 'string'}}, 'additionalProperties': True}
ucp_create_checkout
Create a UCP checkout session from line items. Returns a UCP checkout object with status 'incomplete'. Checkout guide: https://trusteed.xyz/.well-known/agent-checkout-guide.json.
Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['currency', 'line_items'], 'properties': {'label': {'type': 'string', 'description': 'Optional label for additional identifiers (e.g. external order ref, multi-PSP reference)'}, 'intent': {'type': 'object', 'required': ['action'], 'properties': {'action': {'type': 'string', 'description': "Intent action (e.g. 'purchase', 'gift', 'compare')"}, 'locale': {'type': 'string', 'description': 'ISO locale'}, 'context': {'type': 'string', 'description': 'Natural language context for personalization'}}, 'description': 'Intent context for relevance and personalization', 'additionalProperties': True}, 'currency': {'type': 'string', 'maxLength': 3, 'minLength': 3, 'description': 'ISO 4217 currency code (e.g. USD)'}, 'agent_key': {'type': 'string', 'description': 'Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header.'}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'title', 'quantity', 'price'], 'properties': {'price': {'type': 'object', 'required': ['amount', 'currency'], 'properties': {'amount': {'type': 'number', 'minimum': 0, 'description': 'Ignored: the catalogue price is used and returned per line. Any non-negative integer is accepted.'}, 'currency': {'type': 'string', 'maxLength': 3, 'minLength': 3, 'description': 'ISO 4217 currency code'}}, 'additionalProperties': False}, 'title': {'type': 'string', 'minLength': 1, 'description': 'Ignored: the catalogue title is used. Any non-empty string is accepted.'}, 'quantity': {'type': 'integer', 'description': 'Quantity', 'exclusiveMinimum': 0}, 'product_id': {'type': 'string', 'minLength': 1, 'description': 'Product identifier'}}, 'additionalProperties': True}, 'minItems': 1, 'description': 'Line items for the checkout'}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'status', 'currency', 'line_items', 'totals', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'intent': {'type': 'object', 'required': ['action'], 'properties': {'action': {'type': 'string'}, 'locale': {'type': 'string'}, 'context': {'type': 'string'}}, 'additionalProperties': True}, 'status': {'enum': ['incomplete', 'requires_escalation', 'ready_for_complete', 'complete_in_progress', 'completed', 'canceled'], 'type': 'string'}, 'totals': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'amount', 'currency'], 'properties': {'label': {'type': 'string'}, 'amount': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': True}}, 'currency': {'type': 'string'}, 'next_step': {'type': 'string', 'const': 'ask_user_payment_method'}, 'created_at': {'type': 'string'}, 'extensions': {'type': 'object', 'properties': {'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message', 'severity'], 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}, 'severity': {'enum': ['info', 'caution', 'critical'], 'type': 'string'}, 'disclosure_url': {'type': 'string'}}, 'additionalProperties': True}}}, 'additionalProperties': True}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'product_id', 'title', 'quantity', 'price'], 'properties': {'id': {'type': 'string'}, 'price': {'type': 'object', 'required': ['amount', 'currency'], 'properties': {'amount': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': True}, 'title': {'type': 'string'}, 'quantity': {'type': 'number'}, 'product_id': {'type': 'string'}}, 'additionalProperties': True}}, 'updated_at': {'type': 'string'}, 'next_action': {'type': 'object', 'required': ['actor', 'do', 'url', 'instruction'], 'properties': {'do': {'enum': ['approve', 'pay'], 'type': 'string'}, 'url': {'type': 'string'}, 'actor': {'type': 'string', 'const': 'buyer'}, 'then_call': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'instruction': {'type': 'string'}, 'reuse_arguments': {'type': 'array', 'items': {'enum': ['checkout_session_id', 'checkout_id', 'idempotency_key'], 'type': 'string'}}}, 'additionalProperties': True}, 'approval_url': {'type': 'string'}, 'idempotency_key': {'type': 'string'}, 'payment_options': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'rail', 'funding_source', 'available'], 'properties': {'id': {'enum': ['demo_card', 'demo_wallet', 'own_wallet', 'kyapay'], 'type': 'string'}, 'rail': {'enum': ['stripe', 'x402', 'kyapay'], 'type': 'string'}, 'label': {'type': 'string'}, 'available': {'type': 'boolean'}, 'funding_source': {'anyOf': [{'enum': ['platform_test_card', 'platform_test_wallet', 'buyer_wallet'], 'type': 'string'}, {'type': 'null'}]}, 'reason_unavailable': {'enum': ['coming_soon', 'not_enabled'], 'type': 'string'}}, 'additionalProperties': True}}, 'next_step_message': {'type': 'string'}}, 'additionalProperties': True}
ucp_get_checkout
Retrieve a UCP checkout session by ID. Returns the current state of the checkout. Checkout guide: https://trusteed.xyz/.well-known/agent-checkout-guide.json.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['checkout_id'], 'properties': {'agent_key': {'type': 'string', 'description': 'Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header.'}, 'checkout_id': {'type': 'string', 'description': 'UCP checkout session ID (valid UUID)'}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'status', 'currency', 'line_items', 'totals', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'intent': {'type': 'object', 'required': ['action'], 'properties': {'action': {'type': 'string'}, 'locale': {'type': 'string'}, 'context': {'type': 'string'}}, 'additionalProperties': True}, 'status': {'enum': ['incomplete', 'requires_escalation', 'ready_for_complete', 'complete_in_progress', 'completed', 'canceled'], 'type': 'string'}, 'totals': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'amount', 'currency'], 'properties': {'label': {'type': 'string'}, 'amount': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': True}}, 'currency': {'type': 'string'}, 'next_step': {'type': 'string', 'const': 'ask_user_payment_method'}, 'created_at': {'type': 'string'}, 'extensions': {'type': 'object', 'properties': {'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message', 'severity'], 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}, 'severity': {'enum': ['info', 'caution', 'critical'], 'type': 'string'}, 'disclosure_url': {'type': 'string'}}, 'additionalProperties': True}}}, 'additionalProperties': True}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'product_id', 'title', 'quantity', 'price'], 'properties': {'id': {'type': 'string'}, 'price': {'type': 'object', 'required': ['amount', 'currency'], 'properties': {'amount': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': True}, 'title': {'type': 'string'}, 'quantity': {'type': 'number'}, 'product_id': {'type': 'string'}}, 'additionalProperties': True}}, 'updated_at': {'type': 'string'}, 'next_action': {'type': 'object', 'required': ['actor', 'do', 'url', 'instruction'], 'properties': {'do': {'enum': ['approve', 'pay'], 'type': 'string'}, 'url': {'type': 'string'}, 'actor': {'type': 'string', 'const': 'buyer'}, 'then_call': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'instruction': {'type': 'string'}, 'reuse_arguments': {'type': 'array', 'items': {'enum': ['checkout_session_id', 'checkout_id', 'idempotency_key'], 'type': 'string'}}}, 'additionalProperties': True}, 'approval_url': {'type': 'string'}, 'idempotency_key': {'type': 'string'}, 'payment_options': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'rail', 'funding_source', 'available'], 'properties': {'id': {'enum': ['demo_card', 'demo_wallet', 'own_wallet', 'kyapay'], 'type': 'string'}, 'rail': {'enum': ['stripe', 'x402', 'kyapay'], 'type': 'string'}, 'label': {'type': 'string'}, 'available': {'type': 'boolean'}, 'funding_source': {'anyOf': [{'enum': ['platform_test_card', 'platform_test_wallet', 'buyer_wallet'], 'type': 'string'}, {'type': 'null'}]}, 'reason_unavailable': {'enum': ['coming_soon', 'not_enabled'], 'type': 'string'}}, 'additionalProperties': True}}, 'next_step_message': {'type': 'string'}}, 'additionalProperties': True}
ucp_update_checkout
Update a UCP checkout session by fully replacing all line items. Only allowed when status is 'incomplete'. Checkout guide: https://trusteed.xyz/.well-known/agent-checkout-guide.json.
Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['checkout_id', 'currency', 'line_items'], 'properties': {'currency': {'type': 'string', 'maxLength': 3, 'minLength': 3, 'description': 'ISO 4217 currency code (e.g. USD)'}, 'agent_key': {'type': 'string', 'description': 'Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header.'}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'title', 'quantity', 'price'], 'properties': {'price': {'type': 'object', 'required': ['amount', 'currency'], 'properties': {'amount': {'type': 'number', 'minimum': 0, 'description': 'Ignored: the catalogue price is used and returned per line. Any non-negative integer is accepted.'}, 'currency': {'type': 'string', 'maxLength': 3, 'minLength': 3, 'description': 'ISO 4217 currency code'}}, 'additionalProperties': False}, 'title': {'type': 'string', 'minLength': 1, 'description': 'Ignored: the catalogue title is used. Any non-empty string is accepted.'}, 'quantity': {'type': 'integer', 'description': 'Quantity', 'exclusiveMinimum': 0}, 'product_id': {'type': 'string', 'minLength': 1, 'description': 'Product identifier'}}, 'additionalProperties': True}, 'minItems': 1, 'description': 'Replacement line items'}, 'checkout_id': {'type': 'string', 'description': 'UCP checkout session ID (valid UUID)'}}, 'additionalProperties': True}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'status', 'currency', 'line_items', 'totals', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'intent': {'type': 'object', 'required': ['action'], 'properties': {'action': {'type': 'string'}, 'locale': {'type': 'string'}, 'context': {'type': 'string'}}, 'additionalProperties': True}, 'status': {'enum': ['incomplete', 'requires_escalation', 'ready_for_complete', 'complete_in_progress', 'completed', 'canceled'], 'type': 'string'}, 'totals': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'amount', 'currency'], 'properties': {'label': {'type': 'string'}, 'amount': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': True}}, 'currency': {'type': 'string'}, 'next_step': {'type': 'string', 'const': 'ask_user_payment_method'}, 'created_at': {'type': 'string'}, 'extensions': {'type': 'object', 'properties': {'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message', 'severity'], 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}, 'severity': {'enum': ['info', 'caution', 'critical'], 'type': 'string'}, 'disclosure_url': {'type': 'string'}}, 'additionalProperties': True}}}, 'additionalProperties': True}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'product_id', 'title', 'quantity', 'price'], 'properties': {'id': {'type': 'string'}, 'price': {'type': 'object', 'required': ['amount', 'currency'], 'properties': {'amount': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': True}, 'title': {'type': 'string'}, 'quantity': {'type': 'number'}, 'product_id': {'type': 'string'}}, 'additionalProperties': True}}, 'updated_at': {'type': 'string'}, 'next_action': {'type': 'object', 'required': ['actor', 'do', 'url', 'instruction'], 'properties': {'do': {'enum': ['approve', 'pay'], 'type': 'string'}, 'url': {'type': 'string'}, 'actor': {'type': 'string', 'const': 'buyer'}, 'then_call': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'instruction': {'type': 'string'}, 'reuse_arguments': {'type': 'array', 'items': {'enum': ['checkout_session_id', 'checkout_id', 'idempotency_key'], 'type': 'string'}}}, 'additionalProperties': True}, 'approval_url': {'type': 'string'}, 'idempotency_key': {'type': 'string'}, 'payment_options': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'rail', 'funding_source', 'available'], 'properties': {'id': {'enum': ['demo_card', 'demo_wallet', 'own_wallet', 'kyapay'], 'type': 'string'}, 'rail': {'enum': ['stripe', 'x402', 'kyapay'], 'type': 'string'}, 'label': {'type': 'string'}, 'available': {'type': 'boolean'}, 'funding_source': {'anyOf': [{'enum': ['platform_test_card', 'platform_test_wallet', 'buyer_wallet'], 'type': 'string'}, {'type': 'null'}]}, 'reason_unavailable': {'enum': ['coming_soon', 'not_enabled'], 'type': 'string'}}, 'additionalProperties': True}}, 'next_step_message': {'type': 'string'}}, 'additionalProperties': True}
Geändert
get_trust_receipt
1. October 2026 02:51
Geändert
get_page_content
1. October 2026 02:51
Geändert
complete_checkout
1. October 2026 02:51
Geändert
get_trust_receipt
29. September 2026 03:00
Geändert
ucp_cancel_checkout
29. September 2026 03:00
Geändert
ucp_update_checkout
29. September 2026 03:00
Geändert
ucp_get_checkout
29. September 2026 03:00
Geändert
ucp_create_checkout
29. September 2026 03:00
Geändert
complete_checkout
29. September 2026 03:00
Geändert
preview_checkout
29. September 2026 03:00
Geändert
select_shipping_option
29. September 2026 03:00
Geändert
get_shipping_rates
29. September 2026 03:00
Hinzugefügt
get_store_trust
27. September 2026 02:51
Geändert
get_trust_receipt
27. September 2026 02:51
Geändert
ucp_cancel_checkout
27. September 2026 02:51
Geändert
ucp_update_checkout
27. September 2026 02:51
Geändert
ucp_get_checkout
27. September 2026 02:51
Geändert
ucp_create_checkout
27. September 2026 02:51
Geändert
complete_checkout
27. September 2026 02:51
Geändert
preview_checkout
27. September 2026 02:51
Geändert
apply_discount
27. September 2026 02:51
Geändert
select_shipping_option
27. September 2026 02:51
Geändert
get_shipping_rates
27. September 2026 02:51
Geändert
create_cart
27. September 2026 02:51
Geändert
get_trust_receipt
25. September 2026 03:00
Geändert
create_sandbox_key
25. September 2026 03:00
Geändert
search_docs
25. September 2026 03:00
Geändert
ucp_cancel_checkout
25. September 2026 03:00
Geändert
ucp_update_checkout
25. September 2026 03:00
Geändert
ucp_create_checkout
25. September 2026 03:00