Saltar al contenido
Volver al blog
Guías para desarrolladores12 min

Building Agentic Commerce #1: checkout multiprotocolo con MCP + x402 + ACP en un solo flujo

Un agente, tres protocolos, un checkout. Asi es como MCP, pagos stablecoin x402 y ACP trabajan juntos para que los agentes de IA compren productos, con ejemplos de código que puedes ejecutar hoy.

Resumen ejecutivo

Primer post de la serie 'Building Agentic Commerce'. Una guia para desarrolladores sobre checkout multi-protocolo: como las herramientas MCP, la liquidación stablecoin x402 y el descubrimiento ACP trabajan juntos en un único flujo de compra de agentes.

Publicado

2026-04-05

Actualizado: 2026-09-13

12 min

Autoría

Trusteed

Publicado por Trusteed

Escrito y mantenido por quienes construyen Trusteed. Las afirmaciones técnicas de estos artículos se respaldan en las superficies enlazadas desde cada pieza y en el registro de capacidades firmado en /.well-known/trusteed-capabilities.json, que es el árbitro cuando un artículo y una superficie de estado se contradicen.

Sobre Trusteed

Categoría

Guías para desarrolladores

building-agentic-commerceMCPx402acpcheckoutmulti-protocologuia-desarrolladorstablecoinagentes-ia

Cuando un agente de IA decide comprar un producto, no le importa que protocolo de pago usa el comerciante. Le importa: puedo descubrir productos, agregarlos a un carrito y pagar? La complejidad del enrutamiento de protocolos, verificación de firmas y liquidación deberia ser invisible. Este es el problema que resolvimos con el checkout multi-protocolo, y en este post te mostraremos exactamente como funciona, con código que puedes ejecutar contra nuestra demo store hoy.

Esta es la Parte 1 de la serie 'Building Agentic Commerce'. Cada post cubre un concepto fundamental con ejemplos de código funcionales. La Parte 2 cubre descubrimiento de agentes via NLWeb y llms.txt. La Parte 3 cubre trust scores.

Idea clave

El problema: tres protocolos, un agente

El ecosistema actual de comercio agéntico tiene multiples protocolos de pago, cada uno optimizado para escenarios diferentes. MCP (Model Context Protocol) proporciona la interfaz de herramientas: búsqueda, carrito, checkout. x402 habilita pagos stablecoin on-chain (USDC en Base, Ethereum, Solana). ACP (Agentic Commerce Protocol) define como los agentes descubren capacidades de comerciantes y negocian métodos de pago. Un agente comprando en varios comerciantes encontrara los tres. Si cada uno requiere una integración diferente, los desarrolladores de agentes enfrentan una pesadilla de fragmentacion.

La arquitectura: Protocol Bridge

Trusteed usa un Protocol Bridge que normaliza cada peticion entrante a un AgentPaymentIntent unificado, independientemente del protocolo que hable el agente. El bridge detecta el protocolo desde headers HTTP (X-Protocol: X402, X-Protocol: ACP) o la forma del body, enruta al adaptador de entrada apropiado y devuelve una respuesta específica del protocolo. Los comerciantes configuran que protocolos soportan: el agente nunca necesita conocer los detalles.

Como funciona la detección de protocolo

El middleware de detección de protocolo se ejecuta en cada peticion de checkout y asigna una puntuacion de confianza. El header X-Protocol obtiene 1.0 de confianza. La detección por forma del body (presencia de 'cartId' para ACP, 'network' para x402) obtiene 0.9. Si no se detecta protocolo, la peticion pasa al checkout MCP estándar. Esto significa que los agentes MCP existentes funcionan sin cambios: la conciencia de protocolo es aditiva, no rompe nada.

Flujo 1: Checkout MCP (la ruta por defecto)

El flujo de checkout mas simple usa herramientas MCP directamente. Un agente llama cuatro herramientas en secuencia: search_products para encontrar productos, create_cart para construir un carrito, preview_checkout para ver totales y envio, y complete_checkout para finalizar la compra. Cada herramienta es idempotente: segura de reintentar ante fallos de red.

Checkout MCP: paso a paso

  • 1
    search_products({ query: 'auriculares inalambricos', limit: 5 }): devuelve resultados ordenados con puntuación ponderada por confianza. Sin auth requerido.
  • 2
    create_cart({ items: [{ product_id: 'prod-123', quantity: 1 }] }): devuelve cart_id (UUID). Requiere token Bearer OAuth.
  • 3
    preview_checkout({ cart_id: '550e8400-...' }): devuelve total, impuestos y opciones de envío. Establece la sesión en READY_FOR_PAYMENT.
  • 4
    complete_checkout({ checkout_session_id: '550e8400-...', idempotency_key: 'req-abc-123' }): finaliza la compra. Devuelve un status: COMPLETED con order_id y total_cents, o PENDING_EXTERNAL_CONFIRMATION con el enlace que el comprador debe abrir antes.

Siempre genera un idempotency_key único por intento de pago. Si la red se cae despues de que complete_checkout tiene éxito, reintentar con la misma key devuelve la orden existente en lugar de crear un cargo duplicado.

Idea clave

Flujo 2: Checkout x402 con stablecoins (USDC en Base/Ethereum/Solana)

x402 anade una capa de pago para agentes que poseen criptomoneda. En lugar de un token de tarjeta de crédito, el agente paga on-chain en USDC y envia prueba de pago. El flujo comienza igual que MCP (búsqueda, carrito, preview) pero diverge en el paso de pago. Cuando el agente envia X-Protocol: X402, el servidor responde con HTTP 402 Payment Required, un código de estado HTTP estándar que fue literalmente diseñado para este caso de uso hace decadas y que finalmente se usa como estaba previsto.

Pago x402: el baile de tres pasos

  • 1
    Paso 1: El agente hace POST a /api/v1/agent/checkout con header X-Protocol: X402. El servidor responde 402 con detalles de pago: cantidad en wei USDC, dirección de wallet del comerciante, red (Base/Ethereum/Solana/Polygon/Arbitrum) y un timeout de 5 minutos.
  • 2
    Paso 2: El agente ejecuta la transferencia on-chain de USDC a la wallet del comerciante. Esto sucede completamente fuera de Trusteed: es una transacción blockchain estándar.
  • 3
    Paso 3: El agente envia la prueba de pago a /api/v1/agent/checkout/x402/verify con la firma de la transacción. El servidor verifica via el facilitador del comerciante, liquida con backoff exponencial (5 reintentos, 5s-40s de delays) y devuelve 202 Accepted.

La liquidación es asincrona: el servidor devuelve 202 inmediatamente y procesa la liquidación en segundo plano. Las ordenes que no se verifican en 30 minutos expiran automaticamente. Toda la verificación de pago tiene protección BOLA: los agentes solo pueden liquidar ordenes que ellos crearon.

Flujo 3: Descubrimiento ACP + negociación de protocolo

ACP no reemplaza a MCP ni x402: se situa por encima como capa de descubrimiento y negociación. Un agente consulta GET /.well-known/acp.json (público, sin auth, cache 1 hora) y aprende que soporta la plataforma: que handlers de pago estan disponibles (Stripe, x402, PayPal, UCP), que transportes funcionan (REST, MCP) y que capacidades ofrece (persistencia de carrito, reanudacion de sesion de agente, negociación de contexto de display).

Respuesta de descubrimiento ACP (lo que ven los agentes)

El endpoint de descubrimiento ACP devuelve un contrato JSON específicando: spec_version '2026-01-30', transportes soportados (REST y MCP), cuatro handlers de pago (Stripe para USD/EUR, x402 para USDC, PayPal para USD/EUR, UCP para USD/EUR), y opciones de negociación de capacidades incluyendo contextos de display webview y headless, persistencia de carrito y reanudacion de sesion de agente. La autenticación sigue OAuth 2.1 con metadata de recurso protegido RFC 9728.

Con esta información, un agente inteligente puede tomar decisiones de protocolo automaticamente: usar x402 si tiene USDC, recurrir a Stripe si tiene un token de tarjeta, o usar UCP si el comerciante soporta el Universal Commerce Protocol de Shopify. El agente nunca necesita hardcodear lógica de protocolo: lee el contrato ACP y se adapta.

Combinandolo todo: multi-comerciante, multi-protocolo

El verdadero poder emerge con ordenes multi-comerciante. Cuando un carrito contiene productos de diferentes comerciantes, el Protocol Bridge divide la orden en intents por comerciante y enruta cada uno independientemente via Promise.allSettled(). El Comerciante A y el Comerciante B pueden enrutarse a rails distintos en el mismo checkout —uno a Stripe, otro al adaptador x402— porque la división es por comerciante. Cuál de esos rails puede liquidar de verdad es otra pregunta, y hoy la respuesta son sólo aquellos para los que el comerciante tenga un procesador de pagos configurado: el rail x402 devuelve `x402_not_configured` para todos los comercios, así que esto es la forma que el bridge soporta, no algo corriendo en producción. El fallo de un comerciante no bloquea a los otros. Cada uno recibe su propio ProcessedIntent con estado, protocolo origen/destino y decisión de política.

Pruebalo: Checkout en la Demo Store

Puedes probar el flujo de checkout MCP ahora mismo contra nuestra demo store. La demo store en trusteed.xyz/demo-store tiene 18 productos en múltiples categorías. Las herramientas de descubrimiento (search_products, get_product_details, browse_categories, get_merchant_profile) funcionan sin autenticación. Todas las herramientas de checkout (create_cart, get_shipping_rates, select_shipping_option, apply_discount, preview_checkout, complete_checkout) necesitan una clave sandbox, create_cart incluida, y todas las tools de checkout que gastan o liquidan piden además la cabecera X-Payment-Mandate; el resto de herramientas 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 la necesitan. El Playground en trusteed.xyz/demo-store/playground proporciona un cliente MCP integrado con todo eso preconfigurado.

Seguridad por diseño

  • 1
    Validacion UUID antes de cualquier consulta a base de datos (guard contra inyección SQL)
  • 2
    Claves de idempotencia previenen cargos dobles en reintentos
  • 3
    Los tokens de pago NUNCA se registran en logs ni se incluyen en mensajes de error
  • 4
    URLs de facilitadores x402 validadas contra rangos IP privados (protección SSRF)
  • 5
    Proteccion BOLA: los agentes solo acceden a ordenes que ellos crearon (via agentKeyId)
  • 6
    Motor de políticas KYAI evalua cada checkout contra reglas del comerciante (ALLOW/FRICTION/REVIEW/BLOCK)
  • 7
    OAuth 2.1 con PKCE para todas las operaciones mutantes

Proximo en la serie

Trust Score v4.1 combina tres dimensiones ponderadas, un bonus opcional de aseguramiento externo y topes según confianza. Cada respuesta identifica el motor utilizado; algunas recurren a v2. El desglose legacy por componentes no explica una puntuación global producida por v4.1.

Preguntas frecuentes

Necesito implementar los tres protocolos para usar Trusteed?

No. MCP es el protocolo por defecto y funciona sin configuración adicional. x402 y ACP son aditivos: los comerciantes los habilitan en su configuración de protocolo. Los agentes que solo hablan MCP siempre funcionaran. El Protocol Bridge maneja el enrutamiento automaticamente basandose en lo que cada comerciante soporta.

Que pasa si un pago x402 falla despues de que el agente envie USDC?

El servicio de liquidación reintenta con backoff exponencial (5 intentos en ~75 segundos). Si todos los reintentos fallan, el estado de la orden pasa a 'failed' y se registra un OrderEvent. La transferencia on-chain de USDC es separada de la liquidación de la orden: el manejo de reembolsos depende de la configuración del facilitador. En la práctica, los fallos de verificación del facilitador son raros porque la transacción blockchain es válida o no lo es.

Puede un agente usar diferentes protocolos para diferentes productos del mismo carrito?

No dentro de un solo carrito, pero si entre comerciantes. El Protocol Bridge divide ordenes multi-comerciante en intents por comerciante, y cada intent usa el protocolo configurado del comerciante. Así que el Comerciante A puede enrutarse a Stripe y el Comerciante B al adaptador x402 en el mismo checkout general. Enrutar no es liquidar: qué rails completan de verdad un pago depende de lo que cada comerciante tenga configurado, y el rail x402 devuelve hoy `x402_not_configured` para todos los comercios.

Que redes de USDC se soportan para pagos x402?

Base, Ethereum, Solana, Polygon y Arbitrum. Cada comerciante configura su red preferida y dirección de wallet. El agente ve el requisito de red en la respuesta HTTP 402 y envia el pago en la cadena correcta.

La específicacion ACP esta estándarizada o es propietaria?

ACP (Agentic Commerce Protocol) es una específicacion abierta (versión 2026-01-30). La spec define un formato de descubrimiento, declaraciones de handlers de pago y negociación de capacidades. Trusteed implementa la spec completamente: el endpoint /.well-known/acp.json es público y sigue el esquema estándar.

Fuentes y referencias

Artículos relacionados

Checkout Multi-Protocolo: MCP + x402 + ACP para agentes IA | Building Agentic Commerce | Trusteed