+27 66 341 7545 (Whatsapp only) [email protected]

ReCurr Tutorial Series — Part 7: Invoicing

Welcome back to the ReCurr tutorial series. This tutorial explains how invoices are generated, how email notifications work, and how to set up PDF invoice attachments.

ReCurr handles invoicing differently depending on the payment method — automated card payments create renewal orders automatically, while Manual EFT subscriptions generate invoices with bank details for the customer to pay via bank transfer.


Before You Begin

Make sure you have completed:


How Invoicing Works: Card vs Manual EFT

ReCurr uses two different invoicing flows depending on the payment method:

Card Payments (PayFast) Manual EFT
Invoice creation Automatic — renewal order created on payment date Automatic — invoice created on invoice day (default: 25th)
Payment processing Automatic — card charged immediately Manual — customer pays via bank transfer, admin marks as paid
Customer email Renewal success/failure notification Invoice with bank details and EFT reference
PDF attachment Not included Included (if PDF plugin installed)
Payment terms Charged immediately Due within 7 days
Retry on failure Automatic (up to 3 retries) Not applicable

Card Payment Invoicing

For subscriptions paid by credit or debit card via PayFast, the invoicing process is fully automated:

How It Works

  1. ReCurr runs a daily background task that checks for subscriptions due for renewal
  2. When a subscription’s next payment date arrives, ReCurr:
    • Creates a WooCommerce renewal order
    • Charges the customer’s stored card via PayFast
    • Records the payment in the subscription’s payment history
    • Calculates the next payment date
  3. The customer receives an email confirming the renewal
  4. The admin receives a payment notification email

What the Customer Receives

Subject: “Subscription #27 renewed successfully”

The email confirms the renewal with the amount charged. No action is needed from the customer — everything is automatic.

What Happens If Payment Fails

If the card payment fails (e.g., expired card, insufficient funds):

  1. ReCurr automatically retries the payment (up to 3 times by default, configurable in Settings)
  2. The customer receives a “Payment failed” email after each attempt, asking them to update their payment method
  3. The admin receives a “Payment failed” notification
  4. If all retry attempts fail, the subscription is placed On Hold and the customer is notified

Screenshot 1: Example of a renewal success email received by the customer.

Screenshot 2: Example of a payment failed email received by the customer.


Manual EFT Invoicing

For corporate clients paying via bank transfer, ReCurr generates invoices automatically on a scheduled day each month.

The Invoice Cycle

Step When What Happens
1 Invoice day (default: 25th) ReCurr generates invoices for all active Manual EFT subscriptions at 6:00 AM
2 Invoice day Customer receives invoice email with bank details and EFT reference
3 Within your Payment Terms (default: 7 days) Customer makes EFT payment using the provided reference, or pays online through the Pay Now link
4 When payment received Admin verifies payment in bank account
5 Admin action Admin clicks “Mark as Paid” on the subscription (see Tutorial 5)
6 Next cycle Cycle repeats

Steps 4 and 5 are only for a payment that arrives in your bank account. If the customer used the Pay Now link instead, ReCurr is told by PayFast and settles the invoice itself — there is nothing for you to do, and you should not mark it paid again. Either route does the same work: the invoice is completed, the payment is recorded against the subscription, the licence key is extended, and the customer is emailed a renewal confirmation (v2.7.22 — before that, an invoice paid through the Pay Now link recorded the payment but never extended the licence).

If the invoice is not paid (v2.7.21), ReCurr chases it for you rather than letting it go quiet:

Stage When What Happens
1 On the due date Customer is emailed a reminder carrying the same bank details, reference and Pay Now link as the original invoice
2 A week later Second reminder
3 A week after that Final notice
Every day While anything is outstanding You receive a summary naming each overdue invoice, what is owed on it, and how many days late it is

Nothing is suspended or cancelled automatically. Withdrawing service for non-payment is a commercial decision and stays yours. The unpaid invoice is also shown at the top of the subscription screen, in red once it is past due — worth knowing because the subscription’s own Next Payment date moves forward when the invoice is raised, not when it is paid, so that date alone will not tell you anybody is behind.

What the Customer Receives

Subject: “Invoice #1234 – Payment Due”

The invoice email contains:

Hi John,

Please find your invoice #1234 attached.

================================
Invoice #: 1234
Subscription #: 27
Amount Due: R2,999.00
Due Date: 2 March 2026
================================

BANK DETAILS FOR EFT PAYMENT
--------------------------------
Bank: FNB
Account Name: Your Business (Pty) Ltd
Account Number: 12345678910
Branch Code: 250655
Account Type: Cheque Account
--------------------------------

IMPORTANT: Please use the following reference when making payment:
>>> SUB-27 <<<

Payment Terms: Due within 7 days of invoice date.

Thank you for your business!

If you have the WooCommerce PDF Invoices & Packing Slips plugin installed, a PDF invoice is attached to this email automatically.

Screenshot 3: Example of a Manual EFT invoice email received by the customer.

Pro-rata First Invoice

If the subscription was created with the pro-rata option enabled (see Tutorial 5, Step 7), the first invoice will be for the pro-rated amount. All subsequent invoices will be for the full recurring amount.

Only monthly subscriptions invoiced every month are pro-rated. A quarterly or annual subscription’s first invoice is the full amount — since v2.8.0 it is no longer labelled “(Pro-rata first invoice)”.

(v2.8.8) A monthly subscription added on or after the invoice day has a first invoice that also carries the next month — an invoice raised on the invoice day is for the next month, and before 2.8.8 that month was never invoiced. A quarterly or annual subscription is invoiced on the last invoice day on or before its anniversary, ahead of the period it bills. Tutorial 5 (Step 7 and the invoice cycle) gives the figures.

The invoice’s payment reference (v2.8.8)

The invoice email and the PDF invoice both give the subscription’s EFT reference (for example SUB-12345) as the payment reference — the PDF gives the invoice number only when there is no EFT reference. Before 2.8.8 the PDF asked for the invoice number.

Bill Every (v2.8.0)

A subscription added with Bill Every above 1 (Tutorial 5, Step 5a) is invoiced once every that many billing periods — for example every second month. Each invoice is one period’s amount; the invoice day, the payment terms and the reminders work as for any other Manual EFT invoice.


Email Notifications — Complete Reference

ReCurr sends the following email notifications automatically:

Customer Emails

Email Subject When Sent
Subscription Activated “Your subscription #27 is now active” When subscription status changes to Active
Renewal Success “Subscription #27 renewed successfully” After successful card payment
Payment Failed “Payment failed for subscription #27” After each failed payment attempt
Subscription Cancelled “Subscription #27 cancelled” When subscription is cancelled
Subscription On Hold “Subscription #27 on hold” When subscription is placed on hold (after max failed retries)
Manual EFT Invoice “Invoice #1234 – Payment Due” When invoice is generated for Manual EFT subscription
Invoice Overdue Reminder (v2.7.21) “Reminder: invoice #1234 is overdue” On the due date, and again a week later
Invoice Final Notice (v2.7.21) “Final reminder: invoice #1234 is overdue” Two weeks after the due date

Admin Emails

Email Subject When Sent
New Subscription “[New Subscription] Subscription #27 activated” When a subscription is first activated
Subscription Reactivated (v2.8.8) “[Subscription Reactivated] Subscription #27 reactivated” When a subscription becomes active again — a missed payment paid, a card updated while on hold, a status set by hand; it names the status it came from. Before 2.8.8 this sent another “[New Subscription]”
Payment on hold for review (v2.8.8) “[ACTION REQUIRED] A PayFast payment is on hold for review – order #1234” When PayFast confirms a card update or a trial’s activation without a card token: the payment is recorded and the order put On hold with a note for you
Payment Received “[Subscription Payment] Payment received for subscription #27” After successful card renewal payment
Subscription Cancelled “[Subscription Cancelled] Subscription #27 cancelled” When a subscription is cancelled
Payment Failed “[Payment Failed] Subscription #27 payment failed” After a payment failure
New Manual Subscription “[New Manual Subscription] Subscription #27 created” When admin creates a Manual EFT subscription
Overdue Invoices (v2.7.21) “[Overdue] 3 unpaid invoices” Daily, but only when an invoice has just reached a new chase stage — it stays quiet when there is nothing new to act on

Admin emails are sent to your site’s administration email address (Settings > General in WordPress); the renewal notifications can go to another address, under Subscriptions > Settings > General > Send renewal notifications to.

Who the emails come from (v2.8.8): every ReCurr email — to your customers and to you — comes from the “From” name and address set in WooCommerce > Settings > Emails, the sender WooCommerce uses for its own emails (a mail plugin that sets its own sender still decides). Customers’ replies go to that address, and it is the address customers are asked to write to. Before 2.8.8 the emails arrived from “WordPress” unless a mail plugin set the sender.

The renewal email (v2.8.8) says why its amount differs and what comes next: when account credit paid part of a renewal it reads, for example, “Amount: R10,00 (R15,00 less R5,00 account credit)”, and it ends with the next payment and its date (a Manual EFT subscription’s names its next invoice and the day it is sent). Your “[Subscription Payment]” email names the credit on its Amount Paid line.

Screenshot 4: Example of an admin notification email (e.g., New Subscription or Payment Received).


Setting Up PDF Invoice Attachments

ReCurr integrates with the WooCommerce PDF Invoices & Packing Slips plugin to attach PDF invoices to Manual EFT invoice emails.

Step 1: Install the Plugin

  1. Go to Plugins > Add New
  2. Search for “WooCommerce PDF Invoices & Packing Slips”
  3. Install and activate the plugin by Ewout Fernhout (WP Overnight)
  4. The free version is sufficient — no paid add-ons are required

Screenshot 5: The “WooCommerce PDF Invoices & Packing Slips” plugin in the WordPress plugin search results.

Step 2: Configure the Plugin

  1. Go to WooCommerce > PDF Invoices (or WooCommerce > Settings > PDF Invoices depending on the version)
  2. Configure your business details:
    • Shop name
    • Shop address
    • Company logo (optional but recommended)
    • Footer text
  3. Save your settings

Screenshot 6: WooCommerce PDF Invoices settings page with business details.

Step 3: Verify It Works

Once the plugin is active, ReCurr automatically detects it and attaches PDF invoices to Manual EFT invoice emails. No additional configuration is needed in ReCurr.

To verify:

  1. Create a Manual EFT subscription with “Send first invoice immediately” enabled (Tutorial 5)
  2. Check the customer’s email — it should have a PDF attachment
  3. The PDF includes the order details, your business information, and bank details

Screenshot 7: An email with the PDF invoice attached (showing the attachment in the email client).

Screenshot 8: The PDF invoice opened, showing business details, order information, and line items.

Note: PDF attachments are only added to Manual EFT invoice emails. Card renewal notification emails do not include PDF attachments as payment is processed automatically.


Email Delivery — Recommended Setup

WordPress sends emails using PHP’s mail() function by default, which can be unreliable. For production use, we recommend using a dedicated email service.

Recommended: MailerSend

We recommend MailerSend for reliable email delivery. Set it up using a WordPress SMTP plugin:

  1. Install an SMTP plugin (e.g., WP Mail SMTP or FluentSMTP)
  2. Configure it with your MailerSend SMTP credentials
  3. Send a test email to verify delivery

This ensures your invoice emails, payment notifications, and subscription alerts are delivered reliably to your customers’ inboxes.

Screenshot 9: SMTP plugin settings configured with an email service (general example).


Viewing Invoices in WooCommerce

All invoices (both card renewal orders and Manual EFT invoices) are stored as standard WooCommerce orders. You can view them at WooCommerce > Orders.

To identify subscription-related orders:

  • Card renewals — Look for orders with a note: “Renewal order for subscription #27”
  • Manual EFT invoices — Look for orders with payment method “Manual EFT Transfer” and a note: “Monthly invoice for subscription #27”

Screenshot 10: WooCommerce Orders list showing subscription renewal and invoice orders.


Troubleshooting

Invoices Not Being Generated for Manual EFT

  • Confirm the subscription status is Active (not On Hold or Cancelled)
  • Confirm today is the configured invoice day (default: 25th) — invoices are only generated on that day
  • Confirm the subscription is actually due. A quarterly or annual subscription is only invoiced on the invoice day of the month it falls due, not every month
  • Check that WordPress Cron is running. If your site has low traffic, consider setting up a real cron job via your hosting panel

An Invoice Was Generated But Cannot Be Found

The subscription’s activity log says “Invoice #1234 generated”, but the invoice is not on Invoices → Unpaid and not in your orders list.

  • Check WooCommerce > Settings > Accounts & Privacy > “Retain pending orders”. If that field is set, WooCommerce moves every pending order past that age to the trash on a daily job, with no notice. An unpaid ReCurr invoice sits in the pending status by design — that is what keeps its Pay Now link alive — so before v2.7.21 this deleted unpaid invoices along with the customer’s ability to pay them. ReCurr invoices are exempt from v2.7.21 onward; clear the field if you have no particular reason for it
  • Look in the WordPress trash. Trashing is reversible for 30 days; after that WordPress empties the trash and the invoice must be raised again from Invoices → Add Invoice
  • Remember that Payment History on the subscription only lists actual payments, so an unpaid invoice will never appear there. Invoices → Unpaid is the list to check

The Customer Says They Never Received the Invoice

  • Check for a “Not sent” flag beside the invoice on Invoices → Unpaid (v2.7.21). If the invoice email failed to send, ReCurr records it there and in the subscription’s activity log rather than failing silently. Use Resend
  • Check which address it went to. Resend uses the email stored on that individual invoice, while scheduled invoices go to the customer’s WordPress account email. Changing a customer’s address on the licence record changes neither of those — see Tutorial 5 for where a customer’s email actually lives
  • Then work through Emails Not Being Received below

Emails Not Being Received

  • Check the customer’s spam/junk folder
  • Verify your SMTP/email service is configured correctly
  • Send a test email from your SMTP plugin to confirm delivery
  • Check ReCurr’s log lines under WooCommerce → Status → Logs (source “recurr”) for email-related errors (v2.8.6)

PDF Attachments Missing

  • Confirm the WooCommerce PDF Invoices & Packing Slips plugin is installed and activated
  • PDF attachments only apply to Manual EFT invoice emails, not card renewal notifications
  • Check ReCurr’s log lines under WooCommerce → Status → Logs (source “recurr”) for PDF generation errors (v2.8.6)

Renewal Payments Failing

  • Check the subscription’s payment token in the admin detail view
  • Tokens created in sandbox mode do not work in live mode
  • Review the payment history and activity log for error details
  • Ensure the PayFast gateway is configured correctly (Tutorial 3)

What’s Next?

You now understand how ReCurr handles invoicing and email notifications for both card and Manual EFT subscriptions. The final tutorial provides a complete reference of all available settings.

Up next: Tutorial 8: Settings Reference — Complete reference of all available settings.


Quick Checklist

  • [ ] Understand the difference between card and Manual EFT invoicing
  • [ ] Reviewed the invoice cycle for Manual EFT (invoice day → email → payment → mark as paid)
  • [ ] Familiar with all customer email notifications
  • [ ] Familiar with all admin email notifications
  • [ ] WooCommerce PDF Invoices & Packing Slips installed (optional, for PDF attachments)
  • [ ] PDF plugin business details configured
  • [ ] Email delivery service set up (recommended: MailerSend via SMTP plugin)
  • [ ] Verified invoices appear in WooCommerce > Orders

Need Help?


This is Part 7 of the ReCurr Tutorial Series. All tutorials are available at cyberdummies.co.za/recurr.

Tutorial Topic
1. Getting Started Install, activate, and initial configuration
2. Creating Subscription Products Billing periods, pricing, and discounts
3. Configuring PayFast Gateway credentials, sandbox vs live, ITN setup
4. Managing Subscriptions Admin dashboard, status management, details
5. Manual EFT Subscriptions Corporate clients paying via bank transfer
6. Customer Experience Checkout flow and My Account subscription management
7. Invoicing Invoice generation, PDF attachments, email delivery (you are here)
8. Settings Reference Complete reference of all available settings

We Are Here To Help!

Office

Queenswood
Pretoria
SA

Hours

M-T: 9am – 4pm
F: 9am – 12pm
S-S: Closed