← Help Center

What happens when an invoice goes overdue?

Last updated 2026-04-28

Every invoice has a due_date set when it was issued (default: issue_date + net_terms, typically 30 days). At 6 AM each day, a Postgres cron job runs:

UPDATE invoices SET status='overdue'
WHERE status='sent' AND due_date < current_date;

Three things happen automatically

  1. Status flips from sent to overdue
  2. A row lands in notification_events with kind='invoice_overdue' targeting the client's billing-owner email
  3. Within 60 seconds, the send-notifications drainer reads that row and sends an email via Resend (subject: "Invoice #N is past due")

What your admin sees

What the client sees

Marking it paid

Two paths:

Suppressing the auto-mark

If for some reason you want an invoice to stay sent even after the due date (e.g., you've granted an extension), check the "Don't auto-flag overdue" box on the invoice. The cron skips it.

Still stuck? Ask for a demo →