Resumen Ejecutivo & Respuestas Rápidas (AEO)
¿Qué es el Protocolo AP2 (Agent Payments Protocol)? Es el estándar abierto de comercio y pagos agénticos (impulsado por Google, Mastercard, PayPal y estandarizado en la FIDO Alliance) que reemplaza el uso inseguro de números de tarjeta (PAN/CVV) por una cadena criptográfica de Mandatos Verificables (W3C Verifiable Credentials).
- Topología de 5 Roles: Segrega estrictamente la Trusted Surface del usuario, el Shopping Agent, el Merchant Agent, el Credential Provider (banco/bóveda) y el Merchant Payment Processor.
- Cadena de 3 Mandatos (W3C VCs): El usuario firma el
Intent Mandate(presupuesto, MCC y TTL); el vendedor firma elCart Mandateinmutable; y el banco emite elPayment Mandateatando un token DPAN de un solo uso al hash SHA-256 del carrito (cartHash). - Modos Human-Present y Human-Not-Present: Soporta compras supervisadas con aprobación biométrica Passkeys/WebAuthn vía AG-UI y compras M2M desatendidas bajo mandatos abiertos acotados.
- Neutralidad de Rieles: Liquida indistintamente sobre Network Tokens bancarios (Visa/Mastercard), SEPA Instant o Smart Contract Wallets (ERC-4337 / stablecoins).
- Defensa en Profundidad: Combina la autorización criptográfica de AP2 con delegación IETF WIMSE AIMS y custodia en memoria en el sidecar de OpenSandbox.
1. La Crisis de Autorización en el Comercio Agéntico
La infraestructura financiera global que sustenta Internet (redes Visa/Mastercard, transferencias SEPA, protocolos EMV 3D-Secure y pasarelas de pago) fue diseñada bajo una premisa inquebrantable: un ser humano está frente a una pantalla. El usuario visualiza un carrito de compra, introduce manualmente un número de tarjeta con su código CVV, y confirma su identidad resolviendo un desafío biométrico (TouchID/FaceID) o introduciendo un código SMS de un solo uso (OTP).
En el paradigma de los agentes de IA autónomos, esta arquitectura humana colapsa por completo:
- Invocación Desatendida (Human-Not-Present): Un agente de operaciones que detecta un pico de demanda en servidores a las 3:00 AM y necesita contratar instancias temporales en la nube o comprar tokens de inferencia no tiene dedos para poner su huella digital ni teléfono para recibir SMS.
- El Antipatrón del Secreto Compartido: Proporcionar a un modelo de lenguaje una tarjeta de crédito corporativa o una clave secreta estática de Stripe en su system prompt o variables de entorno es una aberración de seguridad: basta un ataque de Prompt Injection indirecto o una alucinación del modelo para drenar los fondos de la empresa.
- Incertidumbre Legal y Repudio del Comerciante: Los comercios y procesadores de pago necesitan garantías matemáticas y jurídicas de que el usuario final realmente delegó esa compra específica a ese agente, con límites de gasto claros y sin posibilidad de repudio fraudulento.
Para resolver este dilema surge el Agent Payments Protocol (AP2): un estándar abierto y marco criptográfico impulsado originalmente por Google en alianza con gigantes de la industria financiera y tecnológica (Mastercard, PayPal, American Express, Coinbase y Worldline) y formalmente transferido a la FIDO Alliance para su gobernanza neutral dentro de sus grupos de trabajo de Agentic Authentication y Payments.
2. La Topología de Confianza: Los 5 Roles Cardinales de AP2
AP2 establece un modelo de seguridad por capas donde las responsabilidades financieras y operativas están estrictamente segregadas entre cinco actores independientes:
Los 5 Actores de la Arquitectura AP2
- Shopping Agent (SA) — Agente Comprador: El agente de IA que actúa en nombre del usuario. Descubre productos, negocia términos comerciales con otros agentes mediante el Protocolo A2A y elabora la orden de compra.
- Credential Provider (CP) — Proveedor de Credenciales / Bóveda: La entidad financiera de confianza (banco emisor, pasarela corporativa, emisor de tarjetas virtuales o monedero cripto autosoberano) que custodia los fondos del usuario, evalúa las políticas de gasto y expide credenciales de pago tokenizadas.
- Merchant / Merchant Agent (M) — Comercio / Agente Vendedor: La entidad vendedora que expone su catálogo, calcula impuestos y emite el carrito final firmado.
- Merchant Payment Processor (MPP) — Pasarela Adquirente: El procesador de cobros del comercio (ej. Adyen, Stripe, Checkout.com) que valida las firmas criptográficas de la orden y liquida la transacción en las redes bancarias o de pago.
- Trusted Surface (TS) — Superficie de Confianza del Usuario: El dispositivo seguro controlado por el usuario (smartphone, navegador con enclave seguro Passkeys/FIDO2 o extensión hardware) donde el humano define los límites de gasto y firma criptográficamente su intención.
cartHash).
Especificación Topológica en Texto (Esquema RFC / ASCII para Agentes & Docs)
┌────────────────────────────────────────────────────────────────────────┐
│ 1. TRUSTED SURFACE DEL USUARIO (FIDO2 / Passkeys) │
│ Enclave Seguro Hardware • Presupuesto, MCC y Caducidad (TTL) │
└───────────────────────────────────┬────────────────────────────────────┘
│ Mandato 1: Intent Mandate (W3C VC)
▼
┌────────────────────────────────────────────────────────────────────────┐
│ 2. SHOPPING AGENT (Agente Comprador IA) │
│ Descubre catálogo y negocia orden sin conocer jamás el PAN/CVV │
└───────────────┬────────────────────────────────────────┬───────────────┘
│ Mandato 2: Cart Mandate │ Presenta Intent + Cart
│ (Negociación vía A2A) │ Recibe Payment Mandate
▼ ▼
┌──────────────────────────────┐ ┌────────────────────────────────┐
│ 3. MERCHANT AGENT (Vendedor)│ │ 4. CREDENTIAL PROVIDER (Banco) │
│ Firma Cart Mandate inmutable│ │ Valida Cart <= Intent y emite │
└───────────────┬──────────────┘ │ Mandato 3: Payment Mandate │
│ │ (DPAN atado al SHA256 cartHash)│
│ Remite Orden + └────────────────┬───────────────┘
│ Cadena de Mandatos │ Liquidación Token
▼ ▼
┌────────────────────────────────────────────────────────────────────────┐
│ 5. MERCHANT PAYMENT PROCESSOR (Pasarela Adquirente) │
│ Verifica firmas no repudiables y liquida en Visa / SEPA / ERC-4337 │
└────────────────────────────────────────────────────────────────────────┘
3. La Cadena Criptográfica de Mandatos (The Mandate Chain)
El núcleo técnico diferencial de AP2 es que nunca viajan datos sensibles de tarjetas (PAN/CVV) a través del agente. En su lugar, el protocolo introduce una cadena secuencial de tres Mandatos Criptográficos expresados como Verifiable Credentials (W3C VCs / JSON-LD):
| Mandato | Emisor & Firmante | Propósito Técnico | Contenido Clave |
|---|---|---|---|
| 1. Intent Mandate (Mandato de Intención) |
Usuario (en su Trusted Surface) | Establece el marco de autorización y límites máximos antes de que el agente comience a comprar. | Monto máximo (maxAmount), comercios o categorías permitidas (MCC), ventana de tiempo de validez (TTL) y firma FIDO/Passkey del usuario. |
| 2. Cart Mandate (Mandato de Carrito) |
Shopping Agent y Merchant Agent | Fija de manera inmutable los ítems específicos negociados, precios unitarios e impuestos. | Líneas de producto, importe total exacto, identificador de comercio y firma digital del vendedor. |
| 3. Payment Mandate (Mandato de Pago) |
Credential Provider (Banco / Wallet) | Autoriza el movimiento financiero real, enlazándose matemáticamente al hash del Cart Mandate. | Token de pago de un solo uso (DPAN / Network Token), hash del carrito y firma criptográfica del banco. |
Ejemplo Estructurado: Intent Mandate firmado por el Usuario
// 1. Intent Mandate: El usuario autoriza gastar hasta 100€ en computación cloud
{
"@context": ["https://www.w3.org/ns/credentials/v2", "https://ap2-protocol.org/contexts/v1"],
"type": ["VerifiableCredential", "IntentMandate"],
"issuer": "did:key:z6MkuUserTrustedPhoneEnclave",
"issuanceDate": "2026-10-23T12:00:00Z",
"credentialSubject": {
"mandateId": "mandate_intent_99182",
"payer": "did:ion:user_felix_villanueva",
"authorizedAgent": "did:key:z6MktQuijotechDevOpsAgent",
"spendingLimits": {
"maxAmount": { "currency": "EUR", "value": 100.00 },
"allowedCategories": ["CLOUD_SERVICES", "SAAS_APIS"],
"allowedMerchants": ["*.aws.amazon.com", "hetzner.com", "cloudflare.com"]
},
"validUntil": "2026-10-23T18:00:00Z",
"purpose": "Aprovisionamiento temporal de nodos RISC-V para pruebas de estrés"
},
"proof": {
"type": "JsonWebSignature2020",
"verificationMethod": "did:key:z6MkuUserTrustedPhoneEnclave#fido-key",
"jws": "eyJhbGciOiJFUzI1NiIsImNyaXQiOls...K98B"
}
}
Ejemplo Estructurado: Payment Mandate emitido por el Banco
Cuando el Shopping Agent presenta el CartMandate de Hetzner por importe de 45,50 € al Credential Provider, este constata que 45,50 € ≤ 100,00 €, que el comercio pertenece a la categoría permitida y que la firma del usuario es válida. Acto seguido, emite el PaymentMandate:
// 2. Payment Mandate: Credential Provider emite el token atado al hash del carrito
{
"@context": ["https://www.w3.org/ns/credentials/v2", "https://ap2-protocol.org/contexts/v1"],
"type": ["VerifiableCredential", "PaymentMandate"],
"issuer": "did:web:bank.quijotech.com",
"credentialSubject": {
"paymentTokenId": "tok_virtual_dpan_88231",
"cartHash": "sha256:4a8b792c3d1f0e9...88a", // Inviolable: atado a ese carrito exacto
"authorizedAmount": { "currency": "EUR", "value": 45.50 },
"merchantId": "hetzner.com",
"oneTimeToken": "dpan_4111_XXXX_XXXX_9921",
"settlementRail": "CARD_NETWORK_TOKEN"
},
"proof": {
"type": "JsonWebSignature2020",
"verificationMethod": "did:web:bank.quijotech.com#cert",
"jws": "eyJhbGciOiJSUzI1NiIs...99xF"
}
}
Si un atacante interceptase el token oneTimeToken en tránsito e intentase utilizarlo para comprar en otra tienda o alterar el importe a 200 €, la pasarela adquirente rechazaría inmediatamente el cobro porque el cartHash y el merchantId no coincidirían con los registros del banco emisor.
4. Modos de Ejecución: Human-Present vs. Human-Not-Present
AP2 está diseñado para gobernar dos realidades operativas radicalmente distintas:
A. Modo Supervisado (Human-Present)
En este escenario, el Shopping Agent investiga diferentes opciones, negocia con proveedores y prepara el carrito. Cuando la orden está lista, el agente utiliza el Protocolo AG-UI emitiendo un evento RUN_FINISHED con outcome.type = "interrupt". La pantalla del usuario despliega el resumen del pedido y el humano autoriza la transacción mediante autenticación biométrica WebAuthn/Passkey en su Trusted Surface, generando el mandato en milisegundos.
B. Modo Totalmente Autónomo (Human-Not-Present)
En operaciones M2M (Machine-to-Machine) o AIOps de infraestructura, el usuario firma previamente un Intent Mandate Abierto con un presupuesto temporal (ej. 50 € diarios para balanceo de tráfico o compra de datos IoT). El agente ejecuta de forma autónoma sin despertar al operador humano. Si el coste de una transacción superase el saldo restante del mandato abierto, el agente no falla a ciegas: pausa su ejecución y escala la decisión al canal humano a través de AG-UI.
5. Implementación Práctica: Validación Criptográfica en Python
El siguiente código demuestra cómo un Credential Provider implementa en Python la validación del IntentMandate del usuario frente al CartMandate presentado por el agente antes de liberar los fondos:
# ap2_credential_provider.py
import hashlib
import json
import time
from typing import Dict, Any
class AP2CredentialProvider:
def __init__(self, bank_id: str):
self.bank_id = bank_id
def calculate_cart_hash(self, cart_data: Dict[str, Any]) -> str:
"""Calcula el hash canónico del carrito para evitar manipulación de precios o ítems."""
canonical_json = json.dumps(cart_data, sort_keys=True)
return hashlib.sha256(canonical_json.encode('utf-8')).hexdigest()
def evaluate_and_issue_payment_mandate(
self,
intent_mandate: Dict[str, Any],
cart_mandate: Dict[str, Any]
) -> Dict[str, Any]:
"""
Valida que el carrito satisfaga estrictamente el mandato de intención
pre-firmado por el usuario humano.
"""
limits = intent_mandate["credentialSubject"]["spendingLimits"]
cart_subject = cart_mandate["credentialSubject"]
# 1. Verificación de vigencia temporal (TTL)
now_iso = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime())
if now_iso > intent_mandate["credentialSubject"]["validUntil"]:
raise ValueError("[AP2_ERR_EXPIRED] El Intent Mandate del usuario ha expirado.")
# 2. Verificación de comercio permitido
merchant_id = cart_subject["payee"]["merchant_id"]
allowed = any(
pattern.replace("*.", "") in merchant_id
for pattern in limits["allowedMerchants"]
)
if not allowed:
raise ValueError(f"[AP2_ERR_UNAUTHORIZED_MERCHANT] Comercio no autorizado: {merchant_id}")
# 3. Verificación de divisa e importe máximo
cart_total = cart_subject["cart_total"]
if cart_total["currency"] != limits["maxAmount"]["currency"]:
raise ValueError("[AP2_ERR_CURRENCY_MISMATCH] Discrepancia de divisas.")
if cart_total["value"] > limits["maxAmount"]["value"]:
raise ValueError(
f"[AP2_ERR_OVER_BUDGET] Carrito ({cart_total['value']}€) excede límite ({limits['maxAmount']['value']}€)."
)
# 4. Generación inmutable del Payment Mandate
cart_hash = self.calculate_cart_hash(cart_subject)
payment_mandate = {
"type": ["VerifiableCredential", "PaymentMandate"],
"issuer": f"did:web:{self.bank_id}",
"issuanceDate": now_iso,
"credentialSubject": {
"paymentTokenId": f"tok_{hashlib.md5(now_iso.encode()).hexdigest()[:8]}",
"referencesCartHash": cart_hash,
"merchantId": merchant_id,
"authorizedAmount": cart_total,
"oneTimeNetworkToken": "tok_virtual_dpan_single_use_4421"
},
"status": "APPROVED"
}
return payment_mandate
# Prueba de ejecución
if __name__ == "__main__":
cp = AP2CredentialProvider(bank_id="bank.quijotech.com")
# Mandato firmado por el usuario: máximo 50.00 EUR en cloud
sample_intent = {
"credentialSubject": {
"spendingLimits": {
"maxAmount": {"currency": "EUR", "value": 50.00},
"allowedMerchants": ["*.hetzner.com", "ovh.com"]
},
"validUntil": "2026-12-31T23:59:59Z"
}
}
# Carrito presentado por el agente: 34.20 EUR en Hetzner
sample_cart = {
"credentialSubject": {
"payee": {"merchant_id": "robot.hetzner.com"},
"cart_total": {"currency": "EUR", "value": 34.20},
"line_items": [{"item": "Cloud CX22", "price": 34.20}]
}
}
payment_mandate = cp.evaluate_and_issue_payment_mandate(sample_intent, sample_cart)
print("Pago Autorizado con Éxito bajo Protocolo AP2:")
print(json.dumps(payment_mandate, indent=2))
6. El Cuarteto de Protocolos Agénticos: MCP, A2A, AG-UI y AP2
Con la consolidación de AP2, la arquitectura de ingeniería agéntica alcanza su madurez definitiva, completando un sistema modular donde cada protocolo resuelve un vector de comunicación especializado:
| Protocolo | Capa / Eje | Propósito Primario | Gobernanza / Origen | Estándar de Cable |
|---|---|---|---|---|
| MCP | Southbound (Sur) | Conectar el agente con herramientas, bases de datos y APIs locales. | Anthropic / Open Source | JSON-RPC 2.0 (stdio / SSE) |
| A2A | East-West (Este-Oeste) | Descubrimiento con Agent Cards y federación de tareas inter-agente. | Linux Foundation / Google | gRPC / JSON-RPC / REST |
| AG-UI | Northbound (Norte) | Streaming reactivo para la interfaz, estado JSON Patch y control humano. | CopilotKit / Microsoft / Pydantic | HTTP POST + SSE tipado |
| AP2 | Transaccional (Comercio) | Autorización no repudiable, mandatos criptográficos y pagos autónomos. | FIDO Alliance / Google / Mastercard | W3C Verifiable Credentials (JSON-LD) |
7. Neutralidad Financiera: Rieles Bancarios y Criptográficos
Una ventaja fundamental de AP2 es su agnosticismo respecto al riel de liquidación subyacente:
- Rieles Tradicionales (Cards & Banking): El Payment Mandate se traduce en un Network Token (Visa/Mastercard) de un solo uso o en una transferencia instantánea SEPA Request-to-Pay / FedNow, permitiendo la integración con el ecosistema bancario regulado sin fricción.
- Rieles Cripto y Web3 (Smart Contract Wallets): En entornos descentralizados, el Payment Mandate se materializa como una transacción sobre Account Abstraction (ERC-4337) o una firma de transferencia en stablecoins (USDC en redes L2 de bajo coste como Base o Arbitrum), garantizando liquidación atómica en milisegundos.
8. Preguntas Frecuentes sobre el Protocolo AP2 (FAQ & AEO)
¿Qué evita que un agente gaste más dinero del debido si alucina?
El agente nunca tiene acceso directo a los fondos. La autoridad radica en el Intent Mandate firmado criptográficamente por el usuario en su dispositivo seguro (Trusted Surface). Cuando el agente solicita pagar, el Credential Provider (un software financiero determinista, no un LLM) evalúa matemáticamente que el carrito no rebase los límites. Si el modelo alucina un importe superior, la solicitud es rechazada en la pasarela bancaria.
¿Por qué AP2 se estandariza dentro de la FIDO Alliance?
Porque la FIDO Alliance es el organismo de referencia internacional en autenticación sin contraseñas (creadores de Passkeys y WebAuthn junto al W3C). La integración de AP2 en FIDO garantiza que los mandatos de gasto de los agentes se puedan firmar con la misma seguridad biométrica y criptográfica que hoy protege el inicio de sesión en dispositivos Apple, Android y Windows.
¿En qué se diferencia AP2 del protocolo A2A?
A2A define cómo conversan y se delegan trabajo dos agentes (mensajería, habilidades, tareas y estados). AP2 define cómo se autoriza y liquida una compra entre el comprador, el comercio y el sistema bancario. De hecho, en una transacción real, el Shopping Agent y el Merchant Agent dialogan a través del Protocolo A2A transportando mandatos AP2 en sus mensajes.
Guías Relacionadas en esta Serie (Topic Cluster)
- 💳 Cartera Programable para Agentes: Autonomía Financiera Segura — Implementación práctica con tarjetas virtuales Stripe Issuing y Smart Wallets EIP-4337.
- 🔒 Identidad Agéntica: Seguridad y Delegación Zero-Trust (IETF AIMS) — Tokens de Transacción, OAuth 2.0 Token Exchange y desafíos Step-Up (RFC 9470).
- 📦 OpenSandbox: Ejecución Aislada y Credential Vault — Cómo proteger secretos y credenciales bancarias en el sidecar sin exponerlas al proceso del agente.
- 🌐 Protocolo A2A: Comunicación y Federación Inter-Agente (East-West) — Canal de negociación entre el Shopping Agent y el Merchant Agent.
- 🖥️ Protocolo AG-UI: Interacción Agente-Usuario (Northbound) — Uso del patrón Interrupt-and-Resume para pedir confirmación biométrica en el modo Human-Present.
Referencias y Fuentes Oficiales Tier 1
- 🌐 FIDO Alliance: Agentic Authentication & Payments Technical Working Groups . Estandarización de arquitecturas de autenticación y mandatos financieros para agentes de IA.
- 📄 W3C (World Wide Web Consortium): Verifiable Credentials Data Model v2.0 . Estándar para credenciales verificables, firmas digitales y afirmaciones a prueba de manipulaciones.
- 🏢 Google Open Source & Cloud: Agent Payments Protocol (AP2) Official Specifications & Working Papers . Arquitectura de referencia para el comercio autónomo y mandatos criptográficos.
- 💳 Mastercard & PayPal Developers: Verifiable Intent Framework & Network Tokenization for AI Agents . Directrices de pasarelas adquirentes y mitigación de fraude en pagos no presenciales agénticos.