BOLT 11 invoices
The lnbc1... string your wallet shows. It encodes the amount (optional), the payment hash, the destination node, an expiry (often an hour), optional route hints for private channels, and a signature by the receiver. One invoice, one payment: reusing the hash would let an intermediary who saw the first preimage claim later payments.
LNURL and Lightning addresses
Because invoices are one-time, static QR codes needed a workaround. LNURL lets a wallet fetch a fresh invoice from a web server on demand. A Lightning address ([email protected]) is LNURL behind an email-style name. Convenient and widely used; the trade is that a web server is involved, which can see requests and must be trusted to hand out the right invoices.
BOLT 12 offers
The native fix. An offer (lno1...) is a reusable, signed request that lives entirely in the Lightning protocol. The payer's node sends an onion message to the receiver asking for an invoice, gets a fresh one back, and pays it. No web server, better privacy (the payer can use a blinded path so the receiver's node is hidden), support for recurring payments and refunds. Adoption is growing across implementations and wallets.
Keysend
A payment sent to a node's public key with the preimage included in the onion, with no invoice at all. Used for tips and streaming payments; the receiver cannot prove it was requested.
Reading an invoice
Wallets decode it for you, but you can paste one into a decoder to see the destination, amount and expiry. Check the amount; a malicious site could hand you an invoice for more than the price.