# Mandato de AP2: qué es y qué demuestra

> Qué es un mandato de AP2, la diferencia entre el de checkout y el de pago, qué limita un mandato abierto y qué comprueba la tienda antes de cobrar.

URL: https://clione.ai/es/glosario/mandato-ap2/
Lang: es

Si tienes una tienda en España, la palabra «mandato» te suena a las domiciliaciones bancarias: el mandato SEPA que firma un cliente para que le cobres un recibo. **El mandato de [AP2 (Agent Payments Protocol)](/es/glosario/ap2/) es otra cosa, aunque la idea se parece**: una autorización firmada que alguien puede enseñar después. Aquí quien la usa es un [agente de IA](/es/glosario/agente-de-ia/) que compra por una persona, en lo que se llama [comercio agéntico](/es/glosario/comercio-agentico/), y lo que demuestra es que esa persona aprobó ese carrito y ese pago. A la tienda le importa porque es la prueba que tiene que comprobar antes de cobrar, y la que se mira si el cargo se discute.

## Cómo funciona

Google presentó los mandatos en septiembre de 2025 como contratos digitales a prueba de manipulaciones, firmados criptográficamente, que sirven de **prueba verificable de las instrucciones de una persona**. Aquel anuncio hablaba de tres: un mandato de intención, que recoge lo que la persona pide; un mandato de carrito, que fija los artículos y el precio exactos; y un mandato de pago, que une el medio de pago con ese carrito.[^google-ap2-launch]

La especificación vigente, la v0.2, trabaja con dos:[^ap2-spec]

- **El mandato de _checkout_** da a la tienda la prueba criptográfica de que el [agente comprador](/es/glosario/agente-comprador/) está autorizado a comprar el pedido que ha montado.
- **El mandato de pago** da esa prueba al proveedor de credenciales, a la red y al procesador de pagos de la tienda: el agente está autorizado a pagar ese pedido concreto.

Cada uno existe en dos estados. **Abierto**, cuando recoge las condiciones que pone la persona antes de que exista un pedido; **cerrado**, cuando autoriza una transacción concreta.[^ap2-site] Los mandatos se emiten como SD-JWT, un formato de credencial que permite revelar solo una parte de los datos, y cada uno declara su tipo y su versión en un campo `vct`, como `mandate.checkout.open.1`. La especificación pide que quien los procese compare esa cadena exacta, sufijo de versión incluido.[^ap2-spec]

### Quién firma cada uno

Depende de si la persona está delante.[^ap2-flows]

| Situación                                    | Qué firma la persona                                                                 | Qué firma el agente                                                    |
| -------------------------------------------- | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------- |
| Con la persona delante (_Human Present_)     | Los dos mandatos cerrados, en una superficie de confianza, por ejemplo con su huella | Nada: prepara el contenido y lo lleva a aprobar                        |
| Sin la persona delante (_Human Not Present_) | Los dos mandatos abiertos, con sus condiciones, antes de irse                        | Los mandatos cerrados, con su propia clave, dentro de esas condiciones |

La superficie de confianza es la pantalla donde la persona da su consentimiento, y **la especificación exige que no sea agéntica**: no puede ser el propio agente quien pida y conceda el permiso. Un mandato abierto lleva además la clave pública del agente, de modo que solo ese agente puede usarlo.[^ap2-spec]

### Cómo se atan al pedido

La tienda firma el pedido (un JWT de _checkout_). El mandato de _checkout_ queda unido a ese pedido mediante un _hash_ criptográfico, y el mandato de pago, al mismo pedido con el mismo _hash_.[^ap2-spec] El resultado práctico: **un mandato firmado para un carrito no sirve para otro**. Si el agente cambia un artículo, el _hash_ deja de coincidir.

## Qué puede limitar un mandato abierto

Las condiciones de un mandato abierto son restricciones con nombre propio. Las del mandato de _checkout_ son dos:[^ap2-checkout-mandate]

| Restricción                  | Qué fija                                                                  |
| ---------------------------- | ------------------------------------------------------------------------- |
| `checkout.allowed_merchants` | Las tiendas con las que se puede usar el mandato                          |
| `checkout.line_items`        | Qué artículos son aceptables para cada línea del pedido y en qué cantidad |

Las del mandato de pago cubren el dinero y el tiempo:[^ap2-payment-mandate]

| Restricción                           | Qué fija                                                             |
| ------------------------------------- | -------------------------------------------------------------------- |
| `payment.amount_range`                | El intervalo en el que tiene que caer el importe final               |
| `payment.budget`                      | El gasto total máximo cuando el agente puede reutilizar el mandato   |
| `payment.agent_recurrence`            | Las condiciones para que el agente use el mismo mandato varias veces |
| `payment.allowed_payees`              | A quién se puede pagar                                               |
| `payment.allowed_payment_instruments` | Con qué medios de pago                                               |
| `payment.execution_date`              | La ventana de tiempo en que puede ejecutarse el pago                 |
| `payment.reference`                   | El mandato de _checkout_ concreto al que queda atado el pago         |

Un mandato de pago cerrado, en cambio, ya no habla de condiciones sino de hechos: el identificador de la transacción (el _hash_ del pedido), a quién se paga, el importe con su moneda en código ISO 4217 y el medio de pago usado.[^ap2-payment-mandate]

## En una tienda

Un **ejemplo ficticio**: una clienta le pide a su agente que le compre dos paquetes de té sencha en Té Ejemplo, su tienda de siempre, cuando vuelvan a tener existencias. Así quedaría, simplificado, el contenido de su mandato de _checkout_ abierto, con los nombres de campo de la especificación:[^ap2-checkout-mandate]

```json
{
  "vct": "mandate.checkout.open.1",
  "constraints": [
    {
      "type": "checkout.allowed_merchants",
      "allowed": [
        { "id": "te-ejemplo", "name": "Té Ejemplo", "website": "https://te-ejemplo.es" }
      ]
    },
    {
      "type": "checkout.line_items",
      "items": [
        {
          "id": "linea-1",
          "acceptable_items": [
            { "id": "SENCHA-100", "title": "Té verde sencha ecológico, 100 g" }
          ],
          "quantity": 2
        }
      ]
    }
  ]
}
```

Cuando el agente llega al pago, la tienda hace dos comprobaciones: que **el mandato cerrado coincide con el pedido actual** y que se cumplen las restricciones del mandato abierto (aquí, que la tienda es Té Ejemplo y que el carrito lleva dos paquetes de ese té).[^ap2-flows] Si algo no encaja, la tienda o el proveedor de credenciales pueden devolver un error de restricción sin resolver (`unresolved_constraint`) y **obligar a que la clienta vuelva a aprobar la compra**: el flujo sin la persona delante pasa a ser uno con ella delante.[^ap2-flows]


Que un mandato abierto es un cheque en blanco para el agente. No lo es: solo vale para el agente cuya clave lleva,[^ap2-spec] dentro de las tiendas, artículos, importes y fechas que fijan sus restricciones,[^ap2-checkout-mandate][^ap2-payment-mandate] y la tienda y el proveedor de credenciales comprueban que el pedido cerrado las cumple antes de cobrar.[^ap2-flows] **Un mandato abierto sin restricciones útiles es un problema de quien lo firma, no un permiso del protocolo.**


## Cómo comprobarlo

1. **Mira la versión de los mandatos que recibes.** El campo `vct` dice tipo y versión, y la especificación pide comparar la cadena exacta.[^ap2-spec]
2. **Lee las restricciones antes de aceptar un pedido sin la persona delante.** Las del _checkout_ nombran tiendas y artículos; las de pago, importes, destinatarios y fechas.[^ap2-checkout-mandate][^ap2-payment-mandate]
3. **Comprueba que el mandato cerrado corresponde al carrito que vas a cobrar**, recalculando el _hash_ del pedido que firmaste.[^ap2-spec]
4. **Guarda los mandatos y los recibos de cada pedido.** En una disputa, la especificación pide recalcular ese _hash_ y comprobar que la referencia de cada recibo coincide con el _hash_ del mandato cerrado correspondiente.[^ap2-spec]
5. **Pregunta a tu plataforma y a tu pasarela** si verifican mandatos de AP2 por ti. Para la mayoría de tiendas, ese trabajo lo hará un intermediario, no su propio código.

## Concepto cercano: pagos delegados

Los [pagos delegados](/es/glosario/pagos-delegados/) son la práctica general: un agente paga en nombre de una persona con un permiso limitado de antemano. El mandato es la manera en que AP2 deja constancia de ese permiso, como un registro firmado de **qué se autorizó, para qué pedido y con qué límites**.[^ap2-site] Otros protocolos delegan el pago de otra forma: el [ACP (Agentic Commerce Protocol)](/es/glosario/acp/) lo hace con una credencial de un solo uso y un importe máximo, sin mandatos. Y la [intención de compra](/es/glosario/intencion-de-compra/) es lo que el mandato abierto convierte en condiciones que se pueden comprobar.

Para seguir, la entrada de [AP2](/es/glosario/ap2/) explica el protocolo entero y la [ruta de lectura de comercio agéntico](/es/aprender/comercio-agentico/) ordena el resto del vocabulario.
