How to Create a Bitcoin Lightning Invoice (Step-by-Step)
A Bitcoin Lightning invoice is a payment request string (starting with lnbc) that encodes the amount and recipient. You can generate one in seconds using a Lightning wallet app, BTCPay Server, or a managed service like Billtoolbox. The payer scans the QR code or pastes the invoice string, and the payment settles in under a second with near-zero fees.
Affiliate Disclosure: This article contains links to third-party services. Some may be affiliate links. We earn a small commission if you sign up at no extra cost to you. All services were independently evaluated.
A Lightning invoice is the standard way to request a Bitcoin payment over the Lightning Network. Unlike an on-chain Bitcoin address (which you can reuse), each Lightning invoice is single-use and typically expires after 24 hours. This makes them more secure — a payer cannot accidentally pay an old invoice, and you always know exactly which payment corresponds to which request.
This guide covers every method to generate a Lightning invoice — from simple mobile wallets to full node setups and managed business tools.
What Is a Lightning Invoice?
A Lightning invoice (also called a payment request) is a data string encoded in Bech32 format. It contains:
- Amount — in satoshis (or left open for the payer to fill in)
- Recipient node public key — identifies your Lightning node
- Payment hash — a cryptographic hash the payer uses to unlock the payment
- Expiry time — default 1 hour to 24 hours depending on the wallet
- Optional description — e.g., “Invoice #001 — Web design services”
The invoice looks like this (truncated): lnbc50000n1p3xkv...
Method 1: Mobile Lightning Wallet (Easiest)
The fastest way to create a Lightning invoice is with a mobile wallet. These require no technical setup.
| Wallet | Platform | Custodial? | Best For |
|---|---|---|---|
| Strike | iOS / Android | Yes | US users, USD payouts |
| Wallet of Satoshi | iOS / Android | Yes | Absolute beginners |
| Phoenix | iOS / Android | No (self-custody) | Self-custody beginners |
| Breez | iOS / Android | No (self-custody) | Non-custodial + POS mode |
| Zeus | iOS / Android | No (connects to your node) | Node operators |
Steps to create an invoice in any Lightning wallet:
- Open the wallet and tap Receive
- Enter the amount in satoshis (or leave blank for a flexible invoice)
- Add a description, e.g., “Freelance design — May invoice”
- Tap Generate Invoice
- Share the QR code or copy the invoice string and send to the payer
The payment will arrive within 1–3 seconds once the payer scans and confirms.
Method 2: BTCPay Server (Open Source, Self-Hosted)
BTCPay Server is a free, self-hosted payment processor used by thousands of businesses worldwide. It generates Lightning invoices automatically and ties them to orders in your WooCommerce, Shopify, or custom store.
- Deploy BTCPay Server on a VPS (LunaNode, Voltage, or self-hosted)
- Connect a Lightning node (LND or Core Lightning)
- Go to Invoices → Create Invoice
- Set amount, currency, and order metadata
- Copy the resulting Lightning invoice or embed the payment widget on your site
BTCPay generates BOLT11 invoices with a configurable expiry (default: 15 minutes for checkout flows, extendable).
Method 3: LND CLI (Node Operators)
If you run your own LND node, create an invoice from the command line:
lncli addinvoice --amt 50000 --memo "Invoice #001 — Web design"
Replace 50000 with the amount in satoshis and customize the memo. The output includes:
r_hash— the payment hashpayment_request— the full BOLT11 invoice string starting withlnbc
You can also use the REST API to generate invoices programmatically if you’re building an application.
Method 4: Billtoolbox Lightning Server (Managed)
Running your own node requires technical knowledge and ongoing maintenance. The Billtoolbox Lightning Server is a managed solution — you get a production Lightning node without managing the infrastructure yourself. Invoice generation is available through a simple API or dashboard.
Lightning Invoice: Common Fields Explained
| Field | Required? | Notes |
|---|---|---|
| Amount (satoshis) | Optional | Omit for open invoices (payer enters amount) |
| Description | Recommended | Visible to payer; include invoice reference |
| Expiry | Auto-set | Default: 3,600 seconds (1 hour) in most wallets |
| Fallback address | Optional | On-chain fallback if Lightning payment fails |
| Routing hints | Auto-added | Help payers route to poorly-connected nodes |
Frequently Asked Questions
Can I reuse a Lightning invoice?
No. Each Lightning invoice is single-use and has a unique payment hash. If an invoice expires unpaid, you generate a new one. This is by design — it prevents accidental double payments and lets you link each payment to a specific transaction record.
What happens if a Lightning invoice expires?
An expired invoice cannot be paid. If someone tries to pay after expiry, the payment will be rejected and the payer keeps their funds. Simply generate a new invoice and share the updated payment request.
How do I generate a Lightning invoice without my own node?
Use a custodial Lightning wallet (Strike, Wallet of Satoshi) or a managed service like Billtoolbox. These abstract away the node infrastructure completely — you get an invoice in seconds without running any software. For a business accepting regular payments, a managed service gives you the same capability as a self-hosted node with none of the uptime management.
Final Thoughts
Creating a Lightning invoice is genuinely simple once you have the right setup. Mobile wallets work perfectly for occasional use. For businesses processing regular Lightning payments, BTCPay Server or a managed service like Billtoolbox gives you the automation, record-keeping, and reliability you need without managing node infrastructure yourself.
Accept Bitcoin Lightning Payments for Your Business
Billtoolbox Lightning Server gives you a production Lightning node, invoice generation, and payment tracking — fully managed, no technical setup required.
Disclaimer: Bitcoin and Lightning Network payments involve technical and financial risk. Ensure your node has sufficient inbound/outbound liquidity before accepting business payments. This article is for informational purposes only and does not constitute financial advice.

