Skip to content
ProRecurring and Subscription invoices are Easy Invoice Pro features. Upgrade to Easy Invoice Pro →

Recurring & Subscription invoices

Use recurring invoices when you bill the same client on a schedule — monthly retainer, yearly hosting, quarterly maintenance, etc. Easy Invoice Pro generates each new invoice automatically via WordPress cron and (optionally) emails it to the client.

Recurring vs Subscription — what's the difference?

FeatureRecurringSubscription
TriggersNew invoice on a scheduleNew invoice + payment auto-charge
Best for"Send me the bill, I'll pay it""Bill me and just charge my card"
Requires gateway supportNo — works with all gatewaysYes — works with Stripe / Authorize.Net
Trial periodNoYes
Maximum cyclesYes (optional cap)Yes (optional cap)
Client-side reviewNo — auto-generatedOptional — client can edit amount each cycle

Enable each module independently:

  • RecurringEasy Invoice → Settings → Invoice → Enable Recurring Invoices
  • Subscription → set in the per-invoice subscription section (requires Pro license tier that includes it)

1. Enable the engine

Open Easy Invoice → Settings → Invoice and tick Enable Recurring Invoices. Save.

This unlocks the Recurring section inside each invoice's builder.


2. Make any invoice recurring

  1. Build a normal invoice (see Invoices walkthrough).
  2. Inside the builder, find the Recurring section.
  3. Tick Enable Recurring.
  4. Configure:
FieldWhat it does
Frequencyday / month / year
IntervalNumber of frequency units — e.g. Frequency=month, Interval=3 ⇒ every 3 months (quarterly).
Start DateFirst generation date. Defaults to today.
End Date / Max Cycles(Optional) Stop after N invoices or a specific date.
Auto-send to clientEmail each new generated invoice automatically.
Statusactive / paused / cancelled (set later from the Recurring list).
  1. Publish the invoice. From now on, the cron generates new child invoices on the schedule.

3. The Recurring dashboard

Open Easy Invoice → All Invoices and filter by Recurring (a star icon in the title indicates parent invoices). You can:

  • Pause — stop generation until you resume
  • Resume — restart
  • Cancel — stop permanently
  • Manual trigger — generate the next child invoice now (useful for testing)

Each parent invoice keeps a history of every child invoice it has created.


4. Subscription invoices

Same idea as Recurring but with auto-charging the client's card. Setup:

  1. Open Easy Invoice → Settings → Invoice → Subscription Invoices (visible only with a compatible Pro license tier and after enabling subscriptions globally).

  2. On the invoice builder, find the Subscription section. Configure:

    • Frequency + Interval
    • Trial enabled + Trial days + Trial amount (e.g. $0 for 14 days)
    • Variable amount — let the client review and edit each cycle's amount before charge
    • Maximum cycles — stop after N successful charges
  3. The client's first payment saves their card via the gateway (Stripe / Authorize.Net). Subsequent cycles auto-charge.

Why two engines instead of one? Subscriptions require gateway support for stored-card charging, which not every Pro user has. Recurring works with any gateway (PayPal, Bank Transfer, even Manual) because the client manually pays each invoice as it's generated.


5. Cron — make sure it runs

Recurring + Subscription rely on WordPress cron firing at least once per day. WordPress runs cron on each page hit by default, which is unreliable on low-traffic sites.

For reliability:

  1. In wp-config.php add: define('DISABLE_WP_CRON', true);
  2. Add a real server cron job hitting https://yoursite.com/wp-cron.php every 15 minutes:
    */15 * * * * curl -s https://yoursite.com/wp-cron.php > /dev/null

Otherwise, recurring invoices may generate hours or days late.


6. Tips for new users

  • Test with a +1 day Interval first. Make a fake recurring invoice with Frequency=day, Interval=1, then check tomorrow that a new child invoice was created.
  • Auto-send is powerful — and risky. Don't enable auto-send until you've manually triggered at least one child invoice and confirmed it looks right.
  • Pause before cancelling. Cancelling is permanent. Pausing keeps history and lets you resume next month.

Combining with other Pro features

Combined withEffect
Partial paymentsEach generated invoice supports installments.
Deposit invoicesEach cycle creates a deposit + balance pair.
Payment remindersReminders apply to every generated child.
Client portalClients see all generated invoices in one place.

Next