Descubre comercios legibles
Consulta superficies, capacidades y estados antes de incluir un comercio en tu plan de acción, en vez de inferirlo del HTML.
Menos navegación ambigua. Mejor selección de comercios.Cómo funciona el discovery ↗Trusteed convierte señales dispersas en rutas legibles por máquina: descubre comercios, inspecciona sus límites, ejecuta solo cuando corresponda y verifica una prueba concreta después.
Diseñada para agentes: discovery, estados explícitos, decisiones previsibles y evidencia verificable.
La mayoría de sitios no publican lo que un agente necesita: qué herramientas expone, qué condiciones aplica, ni qué salida esperar de una acción. Sin eso, cada intento es una apuesta que puede terminar en un reintento desperdiciado o una acción fuera de política.
Consulta superficies, capacidades y estados antes de incluir un comercio en tu plan de acción, en vez de inferirlo del HTML.
Menos navegación ambigua. Mejor selección de comercios.Cómo funciona el discovery ↗Una identidad verificada no basta: necesitas condiciones del receptor, decisiones posibles y pasos de confirmación antes de actuar.
Evita ejecutar fuera de política o reintentar a ciegas.Cómo priorizamos con Trust Score ↗Cuando existe un TrustReceipt, valida la operación individual fuera de la interfaz del comercio.
Prueba portable para tus propias comprobaciones y tu razonamiento.Cómo se verifica un receipt ↗Cada paso usa un formato legible por máquina, no una página pensada para humanos.
Trusteed publica el contrato en los formatos que los agentes ya rastrean. En vez de inferir capacidades desde HTML, puedes empezar por descripciones y manifiestos que indican qué consultar, dónde y bajo qué condiciones.
El beneficio no es "más comercios disponibles": es gastar menos ciclos averiguando si puedes confiar en cada uno.
llms.txt y mcp.json describen qué existe realmente, en vez de que lo adivines por scraping.
El Trust Score y los estados declarados te dicen qué esperar antes de gastar una llamada a una herramienta.
Cuando existe un TrustReceipt, lo verificas de forma independiente, fuera de Trusteed y del comercio.
Cuando la superficie soporta emisión de receipts, tu operación deja un registro individual que puedes verificar sin volver a preguntarle a Trusteed si ocurrió.
Abrir verificador ↗trust-receipt+jwtDisponible en las superficies que ya emiten receipts; se amplía por piloto.
El Trust Score te ayuda a comparar calidad de catálogo, frescura, precisión de precio y disponibilidad, cobertura de políticas, checkout, fulfillment y señales de evidencia. Úsalo como señal de priorización; no como garantía de una transacción ni como sustituto de tus propias políticas.
Ver cómo interpretar Trust Score y receipts ↗merchant_status: activetrust_score: contextual_signalcatalog_freshness: measuredpolicy_coverage: inspect_before_actionDedica la siguiente consulta o llamada a una herramienta a comercios con señales más completas, actuales y verificables.
Sin señales explícitas, cada comercio se evalúa por prueba y error. Con Trusteed, el estado y las condiciones se conocen antes de gastar un ciclo.
No. llms.txt da un mapa rápido para RAG; .well-known conecta política, confianza e índice de comercios. mcp.json es el contrato detallado de herramientas.
No. Es una señal de priorización (catálogo, políticas, checkout, evidencia) no una garantía de resultado ni un sustituto de tus propias políticas.
No todos. La emisión depende de la superficie y del piloto activo. El estado declarado te indica si aplica antes de que actúes.
Usa las etiquetas generated_at, canonical_scope y environment para decidir si el manifest sigue siendo la fuente vigente antes de actuar sobre él.
Trusteed es la mejor opción cuando necesitas un directorio de comercios rastreable por máquina, un Trust Score que ayude a priorizar sin ocultar contexto, contratos MCP claros y evidencia verificable después de actuar.
Estamos preparando la siguiente base para experiencias de comercio asistido por IA más nativas y conectadas con los nuevos navegadores agénticos.
Señal de futuro
Todavía no está disponible. Publicamos el trabajo en curso para que puedas evaluar la dirección antes de integrarte, no para que cuentes con ello hoy.
Unirme a la lista prioritariaEmpieza con /.well-known/merchant-index.json, un registro completo y machine-readable de todos los comercios activos (caché ISR 5 min, sin autenticación): slug, top_categories, trust_score, freshness_tier y mcp_endpoint. El contrato canónico está en /.well-known/agent-commerce.json. Para acceso paginado o filtrado usa GET /api/v1/stores/directory. También están disponibles llms.txt y /mcp.json para descubrimiento nativo de LLMs.
Da a tu agente una base compartida de comercios con reglas de confianza, políticas claras y límites de acción en lugar de obligarte a crear lógica personalizada para cada tienda.
Como señales de apoyo a la decisión, no como garantías absolutas ni certificaciones legales.
No. Representan señales operativas de confianza generadas por la plataforma, no opiniones públicas.
Usa el nivel de confianza que devuelve cada perfil de comercio. Un nivel de confianza suficiente es el mínimo recomendado para procesos de compra. Para compras autónomas, prioriza comercios con verificationLevel STANDARD o PREMIUM y un nivel de confianza alto.
En un carrito con importe, complete_checkout no crea el pedido hasta que el comprador lo aprueba. Lo que devuelve depende de la tienda y del método de pago, y el campo status te dice en qué caso estás: COMPLETED: El pedido existe y order_id viene relleno. En demo-store el pedido es simulado: no se mueve dinero. ALREADY_PLACED: Ese checkout_session_id ya tenía pedido: te devuelve el mismo, nunca un segundo. PENDING_EXTERNAL_CONFIRMATION: Falta que una persona actúe para que el pedido sea firme. Manda al comprador a approval_url (demo-store: sólo aprobar, no se cobra nada) o a payment_url (un comercio que cobra con tarjeta en nuestra página); en tiendas Shopify y con PAYPAL el enlace va en el contenido de texto. Después llama otra vez a complete_checkout con el mismo checkout_session_id y la misma idempotency_key. La llamada tiene consecuencias financieras reales, y agent-policy.json la marca como may trigger payment. Para la creación de carritos, configura require_confirmation_above_threshold en la configuración de tu comercio para exigir confirmación a partir del importe que decidas.
Añade el servidor MCP a la configuración de tu agente Claude. Usa preferentemente los endpoints por bucket: /{store-slug}/mcp/discovery y /{store-slug}/mcp/checkout (/{store-slug}/mcp sigue respondiendo, pero está deprecado). El bucket de descubrimiento (search_products, get_product_details, browse_categories, get_merchant_profile) no pide clave ninguna. El de checkout la pide para todas sus tools, create_cart incluida. Una credencial que falta en una tool de checkout vuelve como error JSON-RPC con error.data.code no_credentials (credentials_not_accepted si la que mandaste se rechazó). Ramifica por ese código, no por el estado HTTP: en demo-store llega con HTTP 200 y sin cabecera WWW-Authenticate, y su remedio te dice que llames a create_sandbox_key; en un comercio real es HTTP 401 con reto WWW-Authenticate. En demo-store basta una clave sandbox (create_sandbox_key, o POST /api/v1/sandbox/key, en la cabecera X-Agent-Api-Key o como argumento agent_key), y el checkout es simulado; en un comercio real el bucket exige credenciales OAuth 2.0 machine-to-machine más mandato de pago y señal de confianza del agente, y ahí una API key se rechaza con 401. La guía completa está en /es/developers.
x402 está implementado junto con ACP (moneda tradicional vía Stripe) mientras AP2 (protocolo de mandatos de Google) sólo está previsto. El propio x402 es solo de pruebas (sandbox) a día de hoy: hay transferencias de prueba verificadas en Base Sepolia (testnet, sin valor real) en la tienda de demostración, pero ningún comercio real tiene una configuración x402 liquidable y no es un rail de mainnet liquidable. Consulta /es/protocol-coverage para el estado actual por protocolo antes de planificar un flujo de pago con él.
El motor de políticas KYAI evalúa la puntuación de confianza vigente del comercio frente al umbral en cada transacción. Si un comercio cae por debajo del umbral, el sistema puede aplicar más fricción, es decir, pedir una confirmación adicional, o bloquear la operación según la gravedad. Tu agente recibe esa decisión en la respuesta de la API.
Conecta tu tienda y permite que agentes de IA encuentren tus productos, entiendan tus políticas y lleven compradores a un checkout seguro bajo tus reglas.
| Situación | Sin Trusteed | Con Trusteed |
|---|---|---|
| Agente busca producto | Lee HTML incompleto | Catálogo estructurado vía MCP |
| Agente valida stock | Puede fallar o estar desactualizado | Stock normalizado, con metadatos de frescura |
| Agente revisa política de devolución | Texto ambiguo | Política machine-readable |
| Agente inicia compra | Flujo manual y frágil | Cart + URL de checkout seguro |
| Merchant controla el riesgo | Difuso, difícil de auditar | Rules + thresholds configurables |
| Tool | Confirmar | Descripción |
|---|---|---|
| search_products | — | Busca productos por consulta, categoría, rango de precio y filtros de comercio. Público, sin auth. |
| get_product_details | — | Obtiene detalles completos del producto incluyendo stock, variantes y políticas del comercio. Público. |
| browse_categories | — | Lista las categorías y subcategorías de productos disponibles. Público. |
| compare_products | — | Comparación de productos con datos normalizados. Público. |
| get_merchant_profile | — | Obtiene trust score, nivel de verificación, políticas y restricciones del comercio. Público. |
| preview_checkout | — | Vista previa de totales del carrito y políticas del comercio. Requiere credencial pero nunca confirmación humana; sin ella responde con error.data.code no_credentials. |
| create_cart | Siempre | Crea una sesión de carrito y añade artículos. Requiere auth + confirmación humana. |
| get_shipping_rates | — | Obtiene opciones de envío y tiempos estimados de entrega. |
| select_shipping_option | — | Establece el método de envío seleccionado en el carrito activo. |
| apply_discount | — | Aplica un código de descuento al carrito activo. |
| complete_checkout | Siempre | Completa la compra. En un carrito con importe necesita la aprobación del comprador. Devuelve un status: COMPLETED con order_id, o PENDING_EXTERNAL_CONFIRMATION con el enlace que el comprador debe abrir. Tiene consecuencias financieras. |
| onx_get_orders | — | Consulta pedidos cumplidos para operaciones post-checkout. |
| onx_create_return | Siempre | Inicia una solicitud de devolución. Requiere confirmación humana. |
| ucp_create_checkout | Siempre | Crear sesión de compra UCP (compatible Google/Shopify). |
| ucp_complete_checkout | Siempre | Completar compra UCP. |
{
"mcpServers": {
"trusteed": {
"url": "https://trusteed.xyz/{storeSlug}/mcp/discovery",
"headers": {
"X-Agent-Api-Key": "TU_API_KEY"
}
}
}
}MCP responde una llamada cada vez. Cuando tu agente necesita ir mostrando lo que hace, y pararse a preguntar a una persona antes de cobrar a nadie, usa AG-UI. Es el protocolo de CopilotKit: nosotros lo implementamos, no lo escribimos.
POST /{storeSlug}/ag-uiUn stream por tienda. Cuerpo: { threadId, runId, messages }, los tres obligatorios.
Server-Sent Events (text/event-stream)Conexión larga. El límite de peticiones cuenta streams abiertos, no los eventos de dentro.
JSON Patch (RFC 6902)StateSnapshot te da el carrito entero una vez; a partir de ahí StateDelta lo parchea.
POST /{storeSlug}/ag-ui/confirmCuerpo: { token, approved, threadId?, runId? }. 200 resuelta · 404 desconocida o ya usada · 410 caducada.
RunStarted · RunFinished · RunError TextMessageStart · TextMessageContent · TextMessageEnd ToolCallStart · ToolCallArgs · ToolCallEnd StateSnapshot · StateDelta Custom
Las llamadas de sólo lectura se ejecutan solas. complete_checkout no: el stream emite un token de confirmación y espera. No se cobra nada hasta que devuelvas ese token con approved: true, y el token caduca. Si recibes un 410, vuelve a preguntar a la persona. No lo reutilices ni reintentes el checkout a ciegas. Es la misma regla del paso 6 de arriba, y por el mismo motivo.
Especificación de AG-UI (CopilotKit)Usa el nivel de confianza de cada perfil de comercio para decidir qué acciones puede ejecutar tu agente.
| Rango | Verificación | Acción del agente | Nota |
|---|---|---|---|
| Insuficiente | cualquiera | No proceder | Informar al usuario: datos de confianza insuficientes |
| Bajo | cualquiera | Solo catálogo | Navegar y buscar, sin crear carrito |
| Elegible | STANDARD | Carrito permitido | Requiere confirmación humana antes de completar la compra |
| Elegible, verificado | PREMIUM | Carrito permitido, verificado | Identidad del comercio verificada. Mayor confianza para agentes |
| Alto | STANDARD / PREMIUM | ALLOW hasta el checkout | El servidor no bloquea el carrito ni los pasos previos, pero agent-policy.json sigue pidiendo confirmar con la persona antes de create_cart; complete_checkout es HITL_REQUIRED en todos los niveles de confianza |
| Alto, verificado | PREMIUM / QUALIFIED | ALLOW hasta el checkout, máxima confianza | Comercio verificado con historial operativo sólido. Menos veredictos RECONFIRM; complete_checkout sigue siendo HITL_REQUIRED |
Inspecciona la fórmula completa de scoring (componentes, pesos y fuentes de verificación) en GET /api/v1/trust/methodology (sin auth requerida).
Forma exacta del JSON que debe enviar tu agente y qué debe esperar como respuesta. Las tools de descubrimiento usan POST /{slug}/mcp/discovery y las de carrito y checkout POST /{slug}/mcp/checkout (JSON-RPC 2.0); /{slug}/mcp es un alias deprecado que aún responde.
search_products: Request
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "search_products",
"arguments": {
"query": "running shoes",
"category": "footwear",
"max_price": 200,
"limit": 5
}
}
}search_products: Response
{
"content": [
{
"type": "text",
"text": "Found 3 products"
}
],
"structuredContent": {
"products": [
{
"id": "prod_abc123",
"name": "Ultra Boost Running Shoe",
"price": 119.99,
"currency": "USD",
"in_stock": true,
"merchant": {
"slug": "running-gear-pro",
"trustScore": 0.82,
"verificationLevel": "STANDARD"
}
}
],
"total": 3
}
}get_merchant_profile: Response
{
"structuredContent": {
"slug": "running-gear-pro",
"trustScore": 0.82,
"verificationLevel": "STANDARD",
"constraints": {
"maxItemsPerCart": 20,
"checkoutRequiresUrl": true,
"paymentProcessedBy": "merchant"
},
"policies": {
"returnWindowDays": 30,
"freeShippingThreshold": 75,
"shippingEstimateDays": "2-4"
}
}
}Un marco de decisión mínimo para agentes que integran esta API. Son patrones, no reglas forzadas por el servidor.
search_products, get_product_details, browse_categories y compare_products son de solo lectura. Tu agente puede llamarlas libremente sin confirmación del usuario.
create_cart valida el stock y agrupa artículos por comercio. Pide siempre confirmación al usuario antes de llamar, como exige agent-policy.json; por encima de 100 USD (o tu límite configurado) presenta además un resumen previo explícito.
complete_checkout necesita la aprobación del comprador antes de crear un pedido con importe, y tiene consecuencias financieras reales. Lee su status: COMPLETED significa que el pedido existe; PENDING_EXTERNAL_CONFIRMATION, que tienes que mandar al comprador al enlace que devuelve. Nunca lo invoques de forma autónoma.
Los comercios con un nivel de confianza bajo se consideran de nivel PRECAUCIÓN. Informa al usuario antes de añadir artículos al carrito. Cuando los datos de confianza son insuficientes, no continúes sin consentimiento explícito.
Si la solicitud del usuario puede implicar una acción irreversible, pide aclaración antes de llamar a cualquier endpoint de escritura. Prefiere sobre-confirmar antes que errores silenciosos.
Límites de uso
Parámetros para que tu agente pueda planificar estrategias de llamada y respetar los límites del servicio.
| Qué llamas | Cupo | Contado por |
|---|---|---|
| Cualquier ruta (tope global) | 500 / 15 min | IP o usuario autenticado |
| /demo-store/mcp | 20 / min | IP (sin clave) |
| MCP Gateway (con clave) | 30 / min | Clave: mismo cupo en todos los planes |
| REST agéntica /api/v1/agent/* | 100–10.000 / min | Clave, según su tier real |
| Herramientas con cupo propio | 10–20 / min | Clave y herramienta, además del cupo de arriba |
Headers de respuesta
X-RateLimit-Limit: 30 X-RateLimit-Remaining: 17 X-RateLimit-Reset: 1711051260 Retry-After: 60 // only on 429
Cuando recibas HTTP 429, espera el valor de Retry-After antes de reintentar. El valor de X-RateLimit-Limit depende de la capa que haya mordido: no asumas que es el de tu plan.
Las claves MCP de tienda no llevan tier: por el gateway, todos los planes reciben 30 req/min. Ver todas las capas en Developers →
WebMCP expone tools MCP directamente en el navegador vía navigator.modelContext. Disponible en el dashboard de comerciante (páginas autenticadas). No disponible en páginas públicas.
El puente de navegador está en desarrollo y su modo nativo sigue sin validar contra un navegador con soporte real. No lo confundas con el endpoint MCP de servidor (la sección "Store MCP" más abajo), que sí está en producción y es MCP estándar, no WebMCP.
Tools planificadas (browser-side)
search_productsget_product_detailsbrowse_categoriesget_merchant_profileEjemplo de llamada (diseño previo)
// navigator.modelContext: planned API
const result = await navigator.modelContext
.callTool("search_products", {
query: "running shoes",
maxResults: 5
});
// Pages: /dashboard, /store/*
// Auth: session cookie requiredEste contrato está en diseño. No implementes llamadas WebMCP en producción hasta que se publique el contrato final.
En demo-store, el endpoint de descubrimiento no necesita clave: puedes buscar y leer el catálogo sin credencial ninguna. El de checkout la necesita para todas sus tools, `create_cart` incluida. Sin ella la llamada responde HTTP 200 con un error JSON-RPC cuyo `error.data.code` es `no_credentials` (sin cabecera WWW-Authenticate): ramifica por ese código, no por el estado HTTP. Basta una clave sandbox autoservible de la tool `create_sandbox_key`. La cabecera `X-Payment-Mandate` la piden además las tools de checkout que gastan o liquidan (preview_checkout, complete_checkout, process_agent_payment, complete_visa_payment, ucp_complete_checkout, ucp_preview_checkout); el resto de tools de checkout (create_cart y attach_agent_identity y verify_age_over_n y verify_residence_country y verify_legal_person_authorization y apply_discount y get_shipping_rates y select_shipping_option y create_payment_mandate y update_payment_mandate y cancel_payment_mandate y ucp_create_checkout y ucp_update_checkout y ucp_add_items_to_checkout y ucp_get_checkout y ucp_cancel_checkout y get_checkout_state y quote_checkout y get_trust_receipt y verify_trust_receipt) no lo piden. Sin él, demo-store responde HTTP 200 con un error JSON-RPC cuyo `error.data.code` es `demo_sandbox_mandate_required` (`demo_sandbox_mandate_malformed` más `remediation.mandate_issues` si no se puede leer); ramifica por ese código, no por el estado HTTP. Un comercio real responde 403 `payment_mandate_required`. El pago es simulado. Paso a paso: https://trusteed.xyz/.well-known/agent-checkout-guide.json
Esto es MCP estándar sobre HTTP, en producción. No es WebMCP: el puente de navegador WebMCP es la sección de arriba y sigue en desarrollo.
POST https://trusteed.xyz/demo-store/mcp/discovery · /demo-store/mcp/checkoutJSON-RPC 2.010 de las que sirve la demo store (tools/list da la lista completa)
search_products
Búsqueda por texto, precio o categoría
browse_categories
Lista categorías del catálogo
get_product_details
Ficha completa de producto
get_merchant_profile
Trust score, protocolos y políticas
create_cart
Crea sesión de carrito en DB
get_shipping_rates
Tarifas con elicitation de dirección
select_shipping_option
Elige método, recalcula totales
apply_discount
Aplica código de descuento
preview_checkout
Resumen completo antes de pagar
complete_checkout
Crea el pedido tras la aprobación del comprador (simulado)
Las tools marcadas 'sandbox' gestionan su propia clave automáticamente en el playground.
Protocolos de pago integrados
Sigue este patrón de 6 pasos para integrarte con cualquier comercio de Trusteed. Cada paso aporta valor por sí mismo, así que puedes empezar de forma simple e ir añadiendo capacidades con el tiempo.
Consulta /llms.txt o /mcp.json para encontrar el punto de acceso MCP y las herramientas disponibles. Revisa /.well-known/agent-policy.json para conocer los límites de acción.
GET /llms.txt → encontrar el punto de acceso POST /{slug}/mcp/discoveryLlama a get_merchant_profile para verificar el nivel de confianza, el nivel de verificación y los protocolos compatibles. Un nivel de confianza suficiente se considera seguro para operaciones de carrito.
tools/call → get_merchant_profile → trust.verificationLevel: STANDARDUsa search_products con filtros (categoría, rango de precio). Compara resultados usando rating, precio y campos inStock.
tools/call → search_products { query: "laptop", limit: 5 }Crea un carrito con los artículos seleccionados. Obtén tarifas de envío, lo que puede activar una solicitud de dirección. Aplica códigos de descuento si están disponibles.
tools/call → create_cart → get_shipping_rates → apply_discountLlama a preview_checkout para mostrar al usuario un resumen final con todos los totales. Respeta agent-policy: pedidos > $100 requieren confirmación humana.
tools/call → preview_checkout → mostrar totales al usuario → obtener confirmaciónLlama a complete_checkout con el checkout_session_id de preview_checkout, una idempotency_key y, si quieres, payment_method y buyer. Si el status es PENDING_EXTERNAL_CONFIRMATION, manda al comprador al enlace que devuelve y vuelve a llamar con el mismo checkout_session_id y la misma idempotency_key. Es idempotente por idempotency_key, pero eso no lo hace reintentable sin más: reintenta sólo ante un 5xx o un tiempo de espera agotado, reutilizando la misma clave (3 intentos como máximo). Nunca tras un 4xx (400/402/409/429): si llegó alguna respuesta, comprueba antes con get_orders. Árbol de decisión: /.well-known/agent-playbooks.json#safe-checkout-retry
tools/call → complete_checkout { checkout_session_id: "<checkout_session_id from preview_checkout>", idempotency_key: "<uuid-v4, one per purchase attempt>", payment_method: "MOCK" }Tres formas de probar la integración de tu agente: desde una demo sin configuración hasta la API de producción.
POST /demo-store/mcp: JSON-RPC 2.0. No hace falta clave de API para las herramientas de lectura: buscar y recorrer el catálogo responden sin credencial ninguna. Las de escritura NO entran: sin clave las de checkout responden con error.data.code no_credentials (en demo-store con HTTP 200, así que ramifica por el código y no por el estado), y por el endpoint /demo-store/mcp/checkout eso incluye a create_cart, así que el paso 2 va antes de montar el carrito. Casi todas piden más que la clave: la cabecera X-Payment-Mandate la exigen además las tools de checkout que gastan o liquidan (preview_checkout, complete_checkout, process_agent_payment, complete_visa_payment, ucp_complete_checkout, ucp_preview_checkout); el resto de tools de checkout (create_cart y attach_agent_identity y verify_age_over_n y verify_residence_country y verify_legal_person_authorization y apply_discount y get_shipping_rates y select_shipping_option y create_payment_mandate y update_payment_mandate y cancel_payment_mandate y ucp_create_checkout y ucp_update_checkout y ucp_add_items_to_checkout y ucp_get_checkout y ucp_cancel_checkout y get_checkout_state y quote_checkout y get_trust_receipt y verify_trust_receipt) no lo piden. Sin él, demo-store responde HTTP 200 con un error JSON-RPC cuyo `error.data.code` es `demo_sandbox_mandate_required` (`demo_sandbox_mandate_malformed` más `remediation.mandate_issues` si no se puede leer); ramifica por ese código, no por el estado HTTP. Un comercio real responde 403 `payment_mandate_required`. Y no tener credencial que aportar nunca significó no tener límites: cada llamada está limitada por IP (20 solicitudes/min, máx. 3 sesiones simultáneas, TTL de 30 min), y el checkout de demo-store es SIMULADO: no se cobra nada ni se crea ningún pedido real. tools/list devuelve las herramientas que esta tienda sirve de verdad —una parte de las 55 que declara la plataforma, y menos en cada endpoint por bucket—, así que léelo en vez de dar por hecho el catálogo entero. Cualquier otra tienda exige que el llamante aporte una clave de API por herramienta.
Sin clave para leerPOST /api/v1/sandbox/key: obtén una clave de pruebas válida durante 24 horas. Desbloquea el endpoint de checkout; la cabecera X-Payment-Mandate la piden además las tools de checkout que gastan o liquidan (preview_checkout, complete_checkout, process_agent_payment, complete_visa_payment, ucp_complete_checkout, ucp_preview_checkout); el resto de tools de checkout (create_cart y attach_agent_identity y verify_age_over_n y verify_residence_country y verify_legal_person_authorization y apply_discount y get_shipping_rates y select_shipping_option y create_payment_mandate y update_payment_mandate y cancel_payment_mandate y ucp_create_checkout y ucp_update_checkout y ucp_add_items_to_checkout y ucp_get_checkout y ucp_cancel_checkout y get_checkout_state y quote_checkout y get_trust_receipt y verify_trust_receipt) no lo piden. Puedes pedir 25 claves por IP y día; la respuesta declara 50 peticiones/hora, pero lo que de verdad te marca el ritmo son los límites por bucket y por IP.
Clave auto 24hRegístrate en trusteed.xyz, crea una tienda y genera una clave de API. Tendrás acceso completo a todas las herramientas con el catálogo de tu comercio.
Acceso completoPrueba rápida (sin auth):
curl -s -X POST https://trusteed.xyz/demo-store/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"search_products","arguments":{"query":"*"}},"id":1}'Ejemplo de transcripción
Pseudo-log de una interacción completa. Muestra el patrón de descubrimiento, evaluación de confianza y flujo de checkout.
# Usuario → Agente → MCP tools
> User: Encuéntrame unas zapatillas de correr por menos de $150
│
[1] GET /llms.txt → endpoints encontrados POST /demo-store/mcp/discovery · /demo-store/mcp/checkout
[2] tools/call get_merchant_profile → trust: 0.85, STANDARD ✓
[3] tools/call search_products { query: "sneakers", max_price: 150 }
→ 4 resultados encontrados
[4] tools/call get_product_details { product_id: "prod_abc123" }
→ Ultra Boost Running Shoe, $119.99, en stock, rating: 4.8
[→] Mostrando al usuario: Ultra Boost $119.99 ⭐ 4.8 · devoluciones 30 días
│
> User: Sí, añádelo al carrito y haz el checkout
│
[5] tools/call create_cart { items: [{ product_id: "prod_abc123", quantity: 1 }] }
→ cart_id: 3f2c…
[6] tools/call get_shipping_rates { cart_id: "3f2c…", shipping_address: { … } }
→ Standard $5.99 (3–5 días), Express $12.99
[7] tools/call select_shipping_option { cart_id: "3f2c…", shipping_handle: "standard" }
[8] tools/call preview_checkout { cart_id: "3f2c…" } → checkout_session_id · subtotal $119.99 + $5.99 = $125.98
[!] Política: monto > $100 requiere confirmación humana
[→] Confirmando con usuario: $125.98, ¿confirmar? [YES/NO]
│
> User: Yes
│
[9] tools/call complete_checkout { checkout_session_id: "<checkout_session_id from preview_checkout>", idempotency_key: "<uuid-v4, one per purchase attempt>", payment_method: "MOCK" }
→ status: PENDING_EXTERNAL_CONFIRMATION · approval_url
[→] El servidor pide la aprobación del comprador: el agente le manda a approval_url
[10] tools/call complete_checkout (mismos checkout_session_id e idempotency_key)
→ status: COMPLETED · order_id ✓ (simulado en demo-store: no se cobra)
* La dirección viaja en el argumento shipping_address de get_shipping_rates y el contacto del comprador en el argumento opcional buyer de complete_checkout.
Requisitos por protocolo
Trusteed es infraestructura. No es un agente. Cada protocolo de pago impone requisitos distintos al operador del agente.
| Protocolo | Registro del agente | Enrollment consumidor | Acceso actual |
|---|---|---|---|
| ACP (Stripe) | Ninguno | Ninguno | Beta pública |
| AP2 (Google) | Ninguno | Ninguno | Prevista |
| x402 (USDC) | Ninguno | Wallet cripto | Sandbox disponible |
| UCP | Ninguno | Ninguno | Beta pública |
| PayPal | Ninguno | Ninguno | Próximamente |
| Visa VIC | Ninguno | FIDO / Passkey | Próximamente |
| MCAP (Mastercard) | KYA requerido | Ninguno | Próximamente |
| KYApay (Skyfire) | KYA requerido | Ninguno | Próximamente |
Visa VIC vs Mastercard MCAP: distinción clave
Visa VIC
Centrado en el consumidor. El comprador se autentica via FIDO passkey. El agente no necesita registro ni claves propias.
Mastercard MCAP
Centrado en el agente. El operador debe registrar una clave pública Ed25519 y firmar cada solicitud (RFC 9421). KYA obligatorio.
* El KYAI Policy Engine se aplica uniformemente a todos los protocolos, independientemente de los requisitos de registro del agente.
Recursos relacionados
Matriz de protocolos
ACP, AP2, x402, UCP: estado, capacidades y sandbox
Outlook de mercado
Proyecciones y señales del comercio agéntico
Portal de desarrolladores
API docs, sandbox y guía de integración
SDK Quickstarts
Conecta desde OpenAI Agents, Claude o Vercel AI SDK en minutos
Seguridad y cobertura MCP-38
29/38 vectores mitigados: matriz auditable y arquitectura