Glossary

Invoice expiry

Invoice expiry is the deadline attached to a live invoice: the bounded window during which it can be paid at the amount it was quoted. The quote is fixed when the invoice goes live, and it is honored only until expiry. Once that moment passes the invoice expires rather than re-pricing — the locked amount no longer applies, and a payment that still needs to be made requires a fresh invoice at a fresh rate.

01

What invoice expiry is

An invoice that is priced in fiat but paid in crypto carries a conversion rate, and that rate is volatile — it moves continuously. To give the customer a stable figure to pay, the rate is locked when the invoice goes live, converting the fiat price into an exact crypto amount. That locked amount cannot be honored forever: the further the market drifts from the locked rate, the more exposed the party carrying the risk becomes. Expiry is the boundary that closes this exposure.

The expiry window is sized to be long enough for a customer to complete payment but short enough to limit how far the market can move while the quote stands. Inside the window the invoice is live and the locked amount holds. At expiry the invoice transitions to an expired state: the quote lapses, and the invoice is no longer payable at that amount. Expiry governs the conversion quote, not the chain — once a customer has broadcast their transaction, how long it takes to confirm is decided by the network, not by the invoice deadline.

Expiry and the rate lock are two halves of one guarantee rather than two separate rules. The lock fixes what is owed; the expiry fixes how long that figure stands. This is why a fiat-anchored crypto invoice is shown with a countdown — the amount and the deadline travel together, and a customer reads them as a single instruction: send exactly this, before this time.

02

What it means in a crypto payment

For a merchant, expiry is what keeps a fiat-priced sale settling at the agreed price without either side carrying open-ended exchange-rate risk during checkout. A payment that lands inside the window settles the invoice at the quoted figure; the merchant knows the fiat amount they agreed to is what they receive in value. The deadline removes the ambiguity of a quote that would otherwise drift — there is a clear point at which the offer is no longer on the table.

Expiry also defines the edge cases. A deposit that arrives after the window has closed is not measured against a quote that has since gone stale — it is surfaced as its own event so the merchant can decide how to handle it, rather than silently settling at an out-of-date rate. And because the locked amount only stands until expiry, a customer who waits too long is not penalized with a wrong figure; they are simply re-quoted on a new invoice that captures the current rate.

03

Invoice expiry on halfin

halfin invoices are fiat-anchored: the merchant sets the amount in a fiat currency, halfin locks the fiat-to-crypto rate when the invoice is activated, and from that point the invoice carries an exact crypto amount and an expiry by which it must be paid. While the invoice is live the customer is paying a fixed figure against a deadline, and a payment that confirms inside the window settles the invoice at the locked amount.

When the window closes without payment, the invoice expires. The locked rate lapses with it, so the amount can no longer be paid against that invoice — a new invoice would capture a fresh quote. A deposit that lands after expiry does not quietly settle at the stale rate; halfin surfaces it as a distinct late-deposit event so the merchant can choose how to handle the funds. Underpayment and overpayment are measured against the locked amount while the invoice is live, not against the live market rate, which keeps every outcome of the invoice anchored to the figure the customer was quoted.