Instalação
Requisitos: Node.js 18+, Express 4+
Início rápido
l402(options) — middleware
Retorna um RequestHandler do Express que aplica pagamento L402 na rota.
Opções
Comportamento
Corpo da resposta 402
Cabeçalho WWW-Authenticate
Provedores
AlbyProvider — recomendado para modo soberano
Alby — carteira autocustodial. Você controla as chaves.
BTCPayProvider — auto-hospedado, sem necessidade de confiança
Execute seu próprio BTCPay Server. Soberania total.
BlinkProvider — custodial, início mais fácil
Blink — gratuito, sem KYC para pequenos valores.
LNbitsProvider
Auto-hospedado ou legend.lnbits.com.
OpenNodeProvider
ManagedProvider — modo cloud (0,3% de taxa)
l402kit.com hospeda o nó Lightning. Você recebe 99,7% de cada pagamento. Opt-in explícito.
O registro ocorre uma vez na inicialização (fire-and-forget, erros são silenciosos). A API aparece em l402kit.com/apis.json para que agentes possam descobri-la automaticamente.
Proteção contra replay
Padrão — em memória (desenvolvimento)
Integrado. Reinicia ao reiniciar o processo. Adequado para implantações de processo único.
Redis (produção — múltiplas instâncias)
RedisReplayAdapter usa SET key 1 NX EX ttl — atômico, sem condições de corrida.
Webhooks de pagamento
Receba um evento assinado após cada pagamento.
Payload do webhook:
Callback onPayment
Hook síncrono chamado após cada pagamento verificado, antes de next():
Defina SUPABASE_URL + SUPABASE_ANON_KEY em seu ambiente para registrar pagamentos automaticamente.
Schema da tabela de pagamentos (payments):
payment_hash armazena SHA256(preimage), não o preimage bruto. O preimage é o segredo de pagamento Lightning de 32 bytes — seu hash já é público na fatura BOLT11.
Utilitários independentes
Tipos
Tempo de verificação
A verificação do token executa SHA256(preimage) == paymentHash em memória — sub-milissegundo, sem chamada de rede no caminho crítico.
O ReplayAdapter em memória (padrão) também é executado de forma síncrona. Se você usar RedisReplayAdapter, adicione uma ida e volta ao Redis de 5–50 ms por requisição. Planeje a capacidade adequadamente para endpoints de alta frequência.
O middleware aceita silenciosamente o cabeçalho X-Payment (usado pelo protocolo x402 da Coinbase) além do cabeçalho padrão Authorization: L402 …. Ambos são tratados de forma idêntica — útil se você quiser atender clientes que utilizam qualquer um dos protocolos.
Nenhuma configuração é necessária; está sempre habilitado.
Guia de migração
v1.1 → v1.2
Renomeie a coluna em sua tabela payments: