CRMcy Docs

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.