# AX-SYS-30: Permite que los agentes paguen sin un checkout humano

> Access and identity · advanced · AX-SYS-30

Acepta el pago dentro de la propia petición, mediante un desafío de pago que el agente pueda responder o una credencial de pago con alcance limitado, en lugar de exigir que una persona cree una cuenta y escriba una tarjeta en un formulario de pago.

## Por qué

Las APIs y servicios de pago se venden casi siempre a través de un embudo humano: crear una cuenta, elegir un plan, introducir una tarjeta. La documentación de Stripe nombra el problema: estos flujos requieren intervención humana, lo que impide a los agentes completar tareas de forma autónoma. La alternativa que está surgiendo es hacer del pago parte del protocolo. Con los machine payments de Stripe, el servidor devuelve un desafío de pago, el agente presenta una credencial de pago válida y Stripe liquida el pago en el saldo del vendedor. Con tarjetas, esa credencial es un Shared Payment Token, una autorización con alcance limitado para usar el método de pago del cliente que lleva sus propios límites de uso y de caducidad, de modo que los límites de gasto del usuario viajan con ella (consulta [AX-SYS-21](ax-sys-21-bound-autonomy-with-limits.mdx)). El protocolo x402, gestionado por la x402 Foundation, hace lo mismo sobre HTTP simple: una petición sin pago recibe `402 Payment Required` y una cabecera `PAYMENT-REQUIRED` que describe qué pagar; el cliente reintenta con una cabecera `PAYMENT-SIGNATURE` y recibe la liquidación en `PAYMENT-RESPONSE`. Estos protocolos son recientes y siguen cambiando, y Stripe admite más de uno, así que tómalos como ejemplos y no como un estándar cerrado. La decisión de diseño que se mantiene es la misma en todos: el agente paga con una credencial delegada y limitada, nunca con los datos de tarjeta del usuario (consulta [AX-SYS-27](ax-sys-27-keep-user-secrets-out-of-agent-context.mdx)).

## Haz

Devuelve un desafío de pago legible por máquinas en los endpoints de pago y acepta credenciales de pago con alcance y límites.

## No hagas

Hacer que el registro humano y el formulario de tarjeta sean la única forma de pagar, ni pedir a un agente que transmita números de tarjeta.

## Artefacto

```http
GET /premium-data HTTP/1.1
Host: api.example.com

HTTP/1.1 402 Payment Required
PAYMENT-REQUIRED: <base64 JSON: amount, asset, network, payTo, maxTimeoutSeconds>

GET /premium-data HTTP/1.1
Host: api.example.com
PAYMENT-SIGNATURE: <base64 JSON: the signed payment payload>

HTTP/1.1 200 OK
PAYMENT-RESPONSE: <base64 JSON: success, transaction, network, payer>
```

Nombres de cabecera tomados de la especificación de transporte HTTP de x402 v2.

## Fuentes

1. [Stripe Docs: Machine payments](https://docs.stripe.com/payments/machine): Monetizing an API or service typically requires account creation, subscription selection, and payment entry; these flows require human input, which blocks agents from completing tasks autonomously. With machine payments, your server returns a payment challenge, the agent presents a valid payment credential, and Stripe settles the payment. Shared Payment Tokens are scoped grants that let an agent use a customer's payment method, and each SPT includes usage and expiration limits
2. [x402 Foundation: x402](https://www.x402.org/): If a request arrives without payment, the server responds with HTTP 402, prompting the client to pay and retry
3. [x402 specification v2: HTTP transport](https://github.com/x402-foundation/x402/blob/main/specs/transports-v2/http.md): The server signals payment is required with HTTP 402 and a PAYMENT-REQUIRED header; the client sends payment in a PAYMENT-SIGNATURE header; the server returns settlement results in a PAYMENT-RESPONSE header, each carrying base64-encoded JSON

---
Source: Agent Experience Principles (axprinciples.com)