> ## Documentation Index
> Fetch the complete documentation index at: https://docs.payzor.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Pagos x402

> Pagos HTTP 402 nativos en USDC on-chain. Pides → 402 con términos → pagas → reintentas → liquidado.

# Pagos x402

HTTP tiene un código de estado para pagos desde 1997: **`402 Payment Required`**. Nadie lo usaba porque no existía una forma estándar de pagar de verdad.

[x402](https://www.x402.org) lo vuelve real: un recurso declara un precio, el cliente paga en USDC on-chain firmando una carga de pago, y el servidor la verifica y la liquida, todo dentro de peticiones HTTP normales. Payzor lo implementa de forma nativa.

## El flujo

```mermaid theme={null}
sequenceDiagram
    participant C as Agente / Cliente
    participant S as Payzor (servidor del recurso)
    participant F as Facilitador x402
    C->>S: GET /charges/chg_xxx/x402
    S-->>C: 402 + términos de pago (accepts[])
    Note over C: firma el pago en USDC
    C->>S: GET a la misma URL + cabecera X-PAYMENT
    S->>F: verify(payload)
    S->>F: settle(payload)
    F-->>S: recibo (hash de transacción)
    S-->>C: 200 + recurso + liquidación
```

## Cómo se ve un 402

```json theme={null}
{
  "x402Version": 1,
  "error": "Paga este cargo firmando USDC y reintentando con X-PAYMENT.",
  "accepts": [
    {
      "scheme": "exact",
      "network": "base-sepolia",
      "maxAmountRequired": "10000",
      "resource": "https://tu-host-payzor/charges/chg_xxx/x402",
      "description": "API credits pack",
      "payTo": "0xc80B70D33B1755F7C43B9C1Df48cD089FA7cAB78",
      "asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
      "extra": { "name": "USDC", "version": "2" }
    }
  ]
}
```

`maxAmountRequired` va en unidades base de USDC (6 decimales): `10000` = \$0.01.

## Dónde lo vas a encontrar en Payzor

| Recurso                           | Qué protege                                                                                                     |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| `GET /charges/:id/x402`           | Liquida on-chain un cargo de comercio existente (lo marca `paid`, método `x402`).                               |
| `GET /shop/products/:sku/content` | Implementación de referencia de contenido digital de pago; copia este patrón para tus propios recursos de pago. |

## Por qué le importa a los negocios

* **El pagador no necesita cuenta de Payzor.** Cualquier billetera sirve.
* **Sin contracargos.** La liquidación es final.
* **Un solo camino de código para humanos y agentes**: al final es HTTP y ya.

<Note>
  La ruta de demostración liquida contra el facilitador público de CDP en Base Sepolia. Para producción, configura tu propia dirección de tesorería (`X402_PAY_TO`) y la red mediante las variables de entorno que te dé tu operador de Payzor.
</Note>
