draft status first. The draft is your review window: a chance to catch missing usage, wrong amounts, or invoices that should never have existed, before anything becomes real.
A draft invoice is not yet accounts receivable. It has no sequential invoice number, no payment attached, and no customer email sent. It is not synced to your accounting, tax, or CRM integrations. All of that happens at finalization. This is what makes a draft safe to edit or remove.

Draft invoice in the Lago app
The lifecycle of a draft
Every draft invoice leaves thedraft status in one of two ways:
- It is finalized. Automatically when the grace period ends, or manually before that. The invoice becomes real: it gets its number, enters your books, and payment collection starts.
- It is deleted. You remove it because it should never have been generated. It disappears as if it had never existed.
Edit a draft invoice
While an invoice is indraft status, you can:
- Add usage records by sending events with a timestamp within the billing period;
- Add missing fees manually from the Dashboard;
- Edit existing fees, adjusting the total amount or the unit count;
- Apply coupons to the customer’s account; and
- Add credits to the customer’s wallet or credit note wallet.
Add usage records
To add usage to a draft invoice, send events whosetimestamp falls within the invoice’s billing period. Events dated after the period are not lost: they land on the next invoice.
Billing period: January 1 to January 31 Grace period: 3 days Today: February 2 The draft invoice was generated on February 1. To add usage to it, event timestamps must fall between January 1 and January 31. ✅ Usage event on January 11 (timestamp:After sending new events, refresh the draft invoice to see them taken into account.1673457300): included in the draft ❌ Usage event on February 2 (timestamp:1675354500): excluded, billed on the next invoice
Add a missing fee
Lago does not generate fees for charges with zero units, so some charges may not appear on the draft by default. You can add them by sending usage records, as above, or manually from the Dashboard:- Open the draft invoice details;
- Click “Add a fee” (if applicable);
- Select the charge and its filters;
- Adjust the display name (optional);
- Choose between
Total amountandTotal units; - Input your values.
Total amount overwrites the fee with the exact amount you enter. Total units lets Lago recalculate the fee from your pricing model.
Manual fee editing is only available in the Dashboard.
Edit an existing fee
- Open the draft invoice details;
- Click the ellipsis icon next to the fee;
- Adjust the display name (optional);
- Choose between
Total amountandTotal units; - Input the new values. The same recalculation logic applies as above.
Coupons and credits
Coupons and credits added during the grace period won’t appear ondraft invoices, but they will be automatically applied to the next finalized invoice.
Finalize a draft invoice
When the grace period ends, draft invoices are finalized automatically. You can also finalize a draft manually at any time, from the Dashboard or the API, if you have finished reviewing it and want to bill sooner. Finalization is the moment the invoice becomes real:- It receives its sequential invoice number;
- It enters your accounts receivable and your analytics;
- Payment collection starts, and the customer email is sent if configured;
- It syncs to your accounting, tax, and CRM integrations; and
- The
invoice.createdwebhook fires.
Delete a draft invoice
Sometimes the mistake is the invoice itself: a duplicate subscription that produced two drafts, test data leaking into production, a misconfiguration generating nonsensical fees. You can delete a draft invoice. It disappears as if it had never been generated. No accounts receivable entry, no voided invoice left in your records, nothing for finance to explain. Deleting a draft is safe by design. As described above, a draft has no external footprint: no number, no payment, no email, no sync. Removing it leaves nothing behind.Delete vs. void
Lago has two removal actions. They answer different questions:- Void applies to
finalizedinvoices. The invoice was real, you just won’t collect it. Voiding keeps a record, preserves the invoice number, and stays visible for reporting. See void invoices. - Delete applies to
draftinvoices only. The invoice was a mistake. Deleting removes the record entirely: it no longer appears in the UI, the API, exports, or analytics.
What happens when you delete a draft
- The entire invoice is removed. If the draft consolidated several subscriptions, they all come off together.
- The subscription stays active and usage keeps aggregating. Deleting an invoice never touches the subscription lifecycle.
- The invoice disappears from all views: invoice list, customer page, API responses, exports, and analytics. A direct API lookup returns
404. - It never appears in overdue balances, payment requests, or dunning campaigns.
- No customer email is sent, no payment is created or reversed, and no sync is triggered to payment providers, ERPs, CRMs, or tax providers.
- The action is traceable: an audit log entry records who deleted which invoice and when, and an
invoice.deletedwebhook fires with the full invoice payload before the object disappears.
Impact on billing
Deleting a draft means “this billing should not have happened.” Lago does not re-bill the deleted period. The next billing run starts fresh from the next period. What this means in practice:- Usage-based charges: events from the deleted period are not re-invoiced. They stay in your event store but no future invoice targets that window.
- Recurring billable metrics: nothing is lost. Recurring metrics accumulate from the beginning of the subscription, so the running total naturally appears on the next invoice.
- Subscription fees and fixed charges: the deleted period’s fee is never billed. The next period bills its own fee, independently.
- Progressive billing: invoices already issued mid-period are finalized, real AR. They are never affected by deleting the period-end draft. Their credits apply only to the period they belong to, so they are not carried to the next invoice.
- Coupons: a draft never consumes coupons. A one-time coupon pending for the period stays unused and applies to the next finalized invoice.
How to delete a draft invoice
- Dashboard
- API
- Open the draft invoice;
- Click the ellipsis icon and select “Delete invoice”;
- Confirm in the modal.
Permissions and guardrails
- Draft-only. Delete is available only while the invoice is in
draftstatus. For any other status, the action is hidden in the UI and rejected by the API. - Dedicated permission. The action is guarded by a new
invoices:deletepermission, separate frominvoices:void. By default, only the Admin role holds it. - API keys use the existing
invoices:writescope. - No race with finalization. If a draft is deleted at the same moment the grace period expires, exactly one action wins. An invoice is never both finalized and deleted.