Cómo un agente compra en una tienda WooCommerce, paso a paso

Sin metáforas: qué pide el agente, qué responde la tienda, en qué momento se mueve el dinero y cuándo aparece la orden. Con la transacción real que puedes abrir tú mismo.

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.