If you bill clients on a weekly, monthly, or quarterly cycle, you know the pain of invoice day. Someone has to open the accounting system, pull up each client's contract terms, create the invoice with the correct line items and amounts, send it, and then follow up when it goes unpaid. Multiply that by 50 or 500 clients and you have a full-time job that adds zero strategic value. Automating recurring invoice generation eliminates this busywork and ensures every invoice goes out on time, every time.
This tutorial builds a complete recurring billing automation using Make.com as the orchestration engine, with QuickBooks Online or Xero as the accounting backend.
The Recurring Invoice Lifecycle
Before building, map the complete lifecycle. A recurring invoice system is not just "send the same invoice every month." It must handle schedule variations, amount changes, dunning, and cancellation gracefully.
Fig. 1 — Five-stage recurring invoice lifecycle with automated loop
Step 1: Build the Billing Schedule Data Store
The foundation of recurring invoicing is a structured billing schedule. Create a Make.com data store (or use Airtable/Google Sheets as the source of truth) with one row per active subscription. Each row needs these fields:
- Client ID: Maps to your CRM and accounting system customer record.
- Billing frequency: Weekly, monthly, quarterly, annually.
- Next invoice date: The date the next invoice should be generated.
- Line items: JSON array of items, quantities, unit prices, and tax codes.
- Payment terms: Net 15, Net 30, Due on Receipt.
- Status: Active, Paused, Cancelled.
- Auto-charge: Boolean. If true, charge the card on file instead of sending an invoice.
This data store becomes your single source of truth. When a sales rep closes a new retainer deal, a separate automation (triggered by the CRM deal stage change) creates a new row here with the billing terms from the contract.
Step 2: Build the Daily Invoice Generation Scenario
Create a Make.com scenario that runs daily at a fixed time (e.g., 6:00 AM). The scenario queries the billing schedule data store for all rows where next_invoice_date <= today and status = "Active". For each matching row, the scenario executes the following steps.
First, it creates an invoice in QuickBooks Online using the "Create Invoice" module. The line items, customer reference, due date (calculated from payment terms), and tax settings all come from the data store row. The invoice number follows your sequential format and includes a reference to the billing period (e.g., "Monthly Retainer - March 2026").
Second, it updates the data store row, advancing the next_invoice_date by the billing frequency interval. A monthly subscription dated March 1 becomes April 1. A quarterly subscription dated January 15 becomes April 15. Use the addDays or addMonths function in Make.com to calculate this correctly, handling month-end edge cases.
Step 3: Deliver the Invoice with a Payment Link
After the invoice is created in your accounting system, send it to the client. QuickBooks and Xero both support sending invoices directly from their platform, but you get more control by handling delivery in Make.com. Compose an HTML email with the invoice summary (amount, due date, line items) and a direct payment link.
For clients on auto-charge, skip the email delivery. Instead, call the Stripe or Square API to charge the card on file for the invoice amount. On success, record the payment in QuickBooks against the invoice. On failure (declined card), fall back to the standard email delivery with a payment link and flag the record for manual follow-up.
Step 4: Automate Payment Tracking and Dunning
Build a separate scenario that runs daily and checks for overdue invoices. Query QuickBooks for all invoices where the due date has passed and the balance is greater than zero. For each overdue invoice, apply a tiered dunning sequence:
- Day 1 overdue: Friendly reminder email. "Your invoice #INV-2026-0084 was due yesterday. Click here to pay now."
- Day 7 overdue: Firmer reminder with the outstanding amount highlighted. CC the account manager.
- Day 14 overdue: Escalation email to the client's billing contact and your AR manager. Include a warning about service impact.
- Day 30 overdue: Pause the subscription in the billing schedule data store. Trigger a service suspension workflow if applicable.
Track each dunning step in the data store so you never send duplicate reminders. When payment is received (detected by a QuickBooks webhook), reset the dunning counter and send a payment confirmation.
Fig. 2 — Tiered dunning sequence from gentle reminder to service suspension
Step 5: Handle Subscription Changes
Real-world subscriptions change constantly. Build handlers for common modifications:
- Upgrades/downgrades: When a client changes their plan, update the line items in the billing schedule. Optionally generate a prorated invoice for the remainder of the current period.
- Pausing: Set the status to "Paused" in the data store. The daily scenario skips paused subscriptions. When reactivated, recalculate the next invoice date.
- Cancellation: Set the status to "Cancelled," generate a final invoice for any unbilled usage, and trigger a cancellation confirmation email.
- Price increases: Update the unit price in the billing schedule and optionally send a 30-day notice email before the new rate takes effect.
Expected Results
Businesses that automate recurring invoicing typically see invoice delivery accuracy jump to 100% (no more missed or late invoices), days sales outstanding (DSO) decrease by 30-45% due to consistent payment reminders, and AR labor costs drop by 80% or more. The automation pays for itself within the first billing cycle for most companies with 50+ recurring clients.
"We used to spend two full days at the start of every month creating and sending invoices. Now it just happens. Our DSO dropped from 42 days to 26 days in three months." — SaaS company, 300 monthly subscriptions
For businesses that need to automate the step before recurring invoicing (getting from a signed proposal to the first invoice), see our tutorial on automating the quote-to-invoice pipeline. For a deeper look at the full financial automation stack, explore our invoice automation solutions page.
Need Help Setting This Up?
Our automation engineers can build this workflow for you in days, not weeks. Get a free process audit to see exactly how it would work for your business.
Book Your Free Process Audit