lightning · Intermedio

Generar una invoice BOLT11 con LNbits

Crea una invoice, conserva su hash de pago y presenta un QR listo para el checkout.

El problema

El checkout necesita una invoice por un importe exacto y una referencia interna para confirmar después el mismo pago.

Implementación

Prerequisitos

  • Instancia LNbits accesible.
  • Wallet de pruebas.
  • API key guardada exclusivamente en el servidor.

Solicita la invoice desde tu backend; nunca expongas la admin key en el navegador.

curl -X POST "$LNBITS_URL/api/v1/payments" \
  -H "X-Api-Key: $LNBITS_INVOICE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"out":false,"amount":1250,"memo":"Venta POS-1042"}'

Conserva payment_hash junto a la venta y entrega payment_request al cliente para generar el QR. Define una expiración y evita reutilizar invoices.

Validación

Decodifica BOLT11 y comprueba importe, descripción y expiración. Paga en testnet o con una wallet controlada y consulta el hash hasta confirmar.

Consideraciones de seguridad

  • Usa únicamente la invoice key con privilegios mínimos.
  • Aplica timeout y valida la respuesta de LNbits.
  • Nunca registres API keys ni preimages.

Conclusión

La invoice es una solicitud de pago desechable. Vincularla a una venta propia mantiene el dominio comercial separado del proveedor Lightning.

Sigue construyendo

Explora el proyecto detrás de estas decisiones.

Ver Lightning PoS