La tienda de la que hablamos
demo.agentposhq.com es una tienda WooCommerce normal, con su tema, sus páginas y sus permalinks, corriendo en un servidor nuestro. La operamos como demo oficial y está etiquetada como tal. Vende productos digitales que entregamos de verdad. Lo único que tiene de distinto es que junto a ella corre un proceso adicional, el sidecar de AgentPOS, que publica el catálogo en los formatos que un agente entiende y recibe los pagos.
El comercio no cambió de checkout, no cambió de pasarela y no dejó de venderle a personas. Lo que ganó es una segunda puerta.
1. El agente descubre la tienda
El agente no necesita que le pasemos documentación privada. Parte del dominio y lee lo
que está publicado: el openapi.json del sitio, el manifiesto
UCP en /.well-known/ucp y el catálogo en
/agentpos/catalog. Ahí están los productos que el comercio
confirmó, con su descripción, sus atributos y su precio en USDC. Los que no confirmó
no aparecen, y siguen vendiéndose a humanos como siempre.
Hay además un servidor MCP en /agentpos/mcp con las
herramientas search_items,
get_item, create_cart y
get_order, para los agentes que hablan ese protocolo en vez
de HTTP directo.
2. Pide una cotización
Con los artículos elegidos, el agente hace POST a
/agentpos/cart con los ítems, los datos del comprador y el
envío si corresponde. La tienda responde con el carrito cotizado: qué cuesta cada
línea, qué cuesta el total y a qué dirección hay que pagar. Esa cotización es la
referencia contra la que se comparará el pago más adelante.
3. La tienda pide el pago con un 402
El agente hace POST a
/agentpos/checkout?cart=<id> y recibe un
402 Payment Required con las condiciones del pago en la
cabecera PAYMENT-REQUIRED: la red, el activo, el monto en
unidades mínimas y la dirección del vendedor. Esto es x402, y es el motivo por el que
nada de esto necesita una cuenta previa ni una tarjeta guardada: la tienda cotiza y el
que quiera pagar, paga.
4. El comprador autoriza, no la tienda
El agente construye la transferencia de USDC y la firma con la llave de su dueño, en la máquina de su dueño. Antes de eso pasa por su propio mandato: los límites que el comprador definió. En nuestra primera compra de mainnet, el 2 de septiembre de 2026, el primer intento del agente fue de 6 USDC y el mandato lo bloqueó, porque su tope por pago eran 3 USDC. El segundo intento, dentro del límite, pasó. El control funcionó en producción, no en un test.
La transacción firmada vuelve a la tienda en la cabecera
PAYMENT-SIGNATURE.
5. Verificar, liquidar y recién entonces crear la orden
La tienda le entrega la transacción firmada al facilitador, que primero la verifica y después la liquida en la red. Es aquí donde está la regla que más nos importa: ninguna orden se crea sin pago liquidado. No con una verificación favorable, no con una promesa: con la liquidación hecha y el hash en la mano.
Si el pago liquida pero no coincide con lo cotizado (otro monto, otro activo, otra
red), la orden no se despacha: queda en revisión con el código
PAYMENT_MISMATCH y el comercio decide. Si la liquidación
falla después de verificar, nadie es cobrado.
Con la liquidación confirmada, el conector crea la orden en WooCommerce, ya pagada,
con payment_method = agentpos y el hash de la transacción en
transaction_id. La creación es idempotente por hash, así que
un reintento nunca produce dos órdenes.
6. El comprobante
Además de la orden, la tienda firma un comprobante y lo encadena al anterior. El
comprador lo obtiene en
/agentpos/orders/<id>/receipt y lo verifica con
SHA-256 y Ed25519, sin llamar a ninguna API nuestra. De eso trata
otro artículo.
La prueba
El 4 de septiembre de 2026 el agente de referencia hizo este recorrido completo desde
otra máquina y por internet, sin configuración previa: descubrió la tienda por su
openapi.json, cotizó, pagó 1 USDC bajo mandato humano y la
orden apareció en WooCommerce con su comprobante firmado. La transacción destacada en
la portada es una venta posterior, con una personalización del comprador que llegó
intacta a la orden del comercio:
2e21e44dba74618d8f9a865a313ffa28d6a78c26fe898b2616f40eff6def1098
Cualquier agente del mundo puede repetirlo hoy contra la misma tienda. Eso, y no una cifra nuestra, es lo que hace verificable el resto.