Hold invoices are LN invoices where the receiver doesn’t immediately release the preimage upon receiving a payment. Instead, the receiver performs some action and then either accepts the payment, explicitly rejects it, or lets it time out.
For example, Alice could automatically generate hold invoices on her website but wait until a customer actually paid before searching her inventory for the requested item. This would give her a chance to cancel the payment if she couldn’t deliver.
Hold invoices are sometimes spelled “hodl invoices.”
Primary code and documentation
Optech newsletter and website mentions
- Discussion about bi-directional fees to allow charging for hold invoices
- Zap 0.7.0 Beta adds support for hold invoices
- Reverse up-front payments could improve hold invoice cost spreading
- LND #3390 simplifies hold invoice logic by separate HTLC tracking
- C-Lightning #2540 adds hook allowing plugins to implement hold invoices