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.