Recurring invoices
Schedule that emits a fresh invoice every period.
Last updated 2026-05-05
A recurring invoice is a template that issues a new draft (or auto-finalized) invoice every cycle — daily, weekly, monthly, quarterly, or annually — driven by the cron-scheduler app. The schedule honors the tenant's timezone, supports an optional end date or fixed cycle count, and can be paused or terminated at any time without affecting historical invoices. A "preview next run" panel on the detail page shows the date and amount of the next emission so finance can sanity-check before turning auto-finalize on.
Failed runs (e.g. due to a missing tax profile on the customer) raise an alert and stop the schedule; the operator must re-arm it manually after fixing the underlying data.
Related endpoints
GET /api/tenant/recurring-invoices— list.POST /api/tenant/recurring-invoices— create schedule.PATCH /api/tenant/recurring-invoices/:id— change cadence / amount.POST /api/tenant/recurring-invoices/:id/pause— pause without ending.POST /api/tenant/recurring-invoices/:id/run-now— manual trigger (admin-only).
See the source at apps/web/src/app/(tenant)/recurring-invoices, apps/api/src/recurring-invoices, and the scheduler at apps/cron-scheduler/src/jobs/recurring-invoices.ts.