Status overview
Draft
A draft invoice is created automatically at the end of each billing period, or manually via the API. In draft state:- Line items reflect the latest aggregated usage
- The invoice can be regenerated (if usage was updated)
- No charge has been attempted
line_items — one entry per metric/price pair — so you can verify each charge before finalizing.
Finalized
Finalizing locks the invoice amounts. Once finalized:- Line item amounts cannot be changed
- Payment collection is triggered automatically
- The
invoice.finalizedwebhook fires
In the automatic billing cycle, Monigo finalizes invoices for you. You only need to call finalize manually if you generated a draft invoice yourself and want to trigger collection.
Paid
When Monigo successfully collects payment from your configured provider, the invoice moves topaid. The invoice.paid webhook fires and paid_at is set.
If collection fails (insufficient funds, expired card, etc.), the invoice remains finalized and the invoice.payment_failed webhook fires. Monigo does not automatically retry — you should listen for this webhook and take action (notify the customer, pause the subscription, retry after they update their payment method).
List paid invoices for a customer:
Void
Voiding cancels an invoice without collecting payment. Void adraft or finalized invoice when:
- The invoice was generated in error
- The customer should not be charged for that period
- You need to issue a corrected invoice (void → regenerate)
Webhook events
Related
- Billing Cycle — when invoices are generated automatically
- Idempotency & Replayability — replaying events before regenerating
- Webhooks — receiving and verifying invoice events

