Skip to main content

Instalación

Requisitos: Node.js 18+, Express 4+

Inicio rápido


l402(options) — middleware

Devuelve un RequestHandler de Express que aplica el pago L402 en la ruta.

Opciones

Comportamiento

Cuerpo de la respuesta 402

Encabezado WWW-Authenticate


Proveedores

AlbyProvider — recomendado para el modo soberano

Alby — billetera sin custodia. Tú controlas las claves.

BTCPayProvider — autoalojado, cero confianza

Ejecuta tu propio BTCPay Server. Soberanía total.

BlinkProvider — con custodia, el inicio más sencillo

Blink — gratuito, sin KYC para montos pequeños.

LNbitsProvider

Autoalojado o en legend.lnbits.com.

OpenNodeProvider

ManagedProvider — modo nube (0.3% de comisión)

l402kit.com aloja el nodo de Lightning. Recibes el 99.7% de cada pago. Opt-in explícito.
El registro se ejecuta una vez al inicio (fire-and-forget, los errores son silenciosos). La API aparece en l402kit.com/apis.json para que los agentes puedan descubrirla automáticamente.

Protección contra repetición

Por defecto — en memoria (desarrollo)

Integrado. Se reinicia al reiniciar el proceso. Adecuado para despliegues de un solo proceso.

Redis (producción — múltiples instancias)

RedisReplayAdapter usa SET key 1 NX EX ttl — atómico, libre de condiciones de carrera.

Webhooks de pago

Recibe un evento firmado tras cada pago.
Payload del webhook:

Callback onPayment

Hook síncrono ejecutado tras cada pago verificado, antes de next():

Registro de pagos con Supabase

Establece SUPABASE_URL + SUPABASE_ANON_KEY en tu entorno para registrar los pagos automáticamente.
Esquema de la tabla de pagos (payments):
payment_hash almacena SHA256(preimage), no el preimage en crudo. El preimage es el secreto de pago Lightning de 32 bytes — su hash ya es público en la factura BOLT11.

Utilidades independientes


Tipos


Tiempo de verificación

La verificación del token ejecuta SHA256(preimage) == paymentHash en memoria — sub-milisegundo, sin llamada de red en el camino crítico. El ReplayAdapter en memoria (por defecto) también se ejecuta de forma síncrona. Si usas RedisReplayAdapter, añade un viaje de ida y vuelta a Redis de 5–50 ms por solicitud. Planifica la capacidad en consecuencia para endpoints de alta frecuencia.

Compatibilidad con x402 (encabezado X-Payment)

El middleware acepta silenciosamente el encabezado X-Payment (utilizado por el protocolo x402 de Coinbase) además del encabezado estándar Authorization: L402 …. Ambos se tratan de forma idéntica — útil si deseas atender clientes que hablen cualquiera de los dos protocolos.
No se necesita configuración; siempre está habilitado.

Guía de migración

v1.1 → v1.2

Renombra la columna en tu tabla payments: