Title: ReCurr &#8211; Subscription Billing
Author: recurr2026
Published: <strong>June 5, 2026</strong>
Last modified: June 5, 2026

---

Search plugins

![](https://ps.w.org/recurr-subscriptions/assets/banner-772x250.png?rev=3562182)

![](https://ps.w.org/recurr-subscriptions/assets/icon-256x256.png?rev=3562182)

# ReCurr – Subscription Billing

 By [recurr2026](https://profiles.wordpress.org/recurr2026/)

[Download](https://downloads.wordpress.org/plugin/recurr-subscriptions.1.0.0.zip)

 * [Details](https://en-ca.wordpress.org/plugins/recurr-subscriptions/#description)
 * [Reviews](https://en-ca.wordpress.org/plugins/recurr-subscriptions/#reviews)
 *  [Installation](https://en-ca.wordpress.org/plugins/recurr-subscriptions/#installation)
 * [Development](https://en-ca.wordpress.org/plugins/recurr-subscriptions/#developers)

 [Support](https://wordpress.org/support/plugin/recurr-subscriptions/)

## Description

**ReCurr** is the WooCommerce subscription billing plugin built specifically for
South African businesses using PayFast. Sell **annual subscriptions** with automatic
renewal, secure card tokenisation, and customer self-management — all native to 
WordPress and WooCommerce.

Whether you run a membership organisation, an annual SaaS, a recurring donation 
programme, or any business with annual recurring revenue, ReCurr gives you the foundation
to bill your customers reliably every year on the same date.

#### Why ReCurr?

Most subscription plugins built for WooCommerce focus on US/EU payment gateways.
ReCurr is **built from the ground up for PayFast**, South Africa’s leading payment
gateway, with proper handling of:

 * PayFast tokenisation for secure recurring payments
 * Anniversary-based annual billing (renews on the same date each year)
 * PayFast ITN (Instant Transaction Notification) verification
 * Failed-payment retry logic with customer notifications
 * Customer self-cancellation from the WooCommerce My Account area

#### Features

 * **Annual subscription billing** — customers pay once a year, automatically renewed
   via PayFast tokenised card
 * **PayFast integration** — full tokenisation, ITN handling, and recurring payment
   support
 * **Customer self-cancellation** — from the standard WooCommerce My Account area
 * **Failed-payment retry** — automatic retry on failed renewals (3 attempts, then
   on-hold)
 * **Email notifications** — activation, renewal success, payment failed, cancellation
 * **Customisable email templates** — edit every transactional email’s subject and
   body with merge-tag placeholders
 * **Admin dashboard** — view, filter, search, and manually manage all subscriptions
 * **CSV export** — export the subscriptions list (respects the active filter and
   search)
 * **At-a-glance widget** — WordPress dashboard widget with active counts, annual
   recurring value, and upcoming renewals
 * **WooCommerce Blocks support** — works with both Classic and Blocks checkout
 * **HPOS-compatible** — declared compatible with WooCommerce High-Performance Order
   Storage
 * **GPL-licensed, plain readable PHP** — no obfuscation, no phone-home calls, no
   telemetry

#### About this plugin

This plugin provides annual subscription billing only. It is fully functional with
no licence required, no time limits, and no usage restrictions. A separate, more
advanced subscription plugin is sold by the same developer at https://recurr.co.
za — it is not bundled with, downloadable from, or required by this plugin.

#### Requirements

 * WordPress 5.8 or higher
 * WooCommerce 5.0 or higher
 * PHP 7.4 or higher
 * SSL certificate (HTTPS) — required for PayFast
 * PayFast Merchant Account with tokenisation enabled

#### Privacy

ReCurr does NOT collect any usage data, telemetry, or analytics. The plugin makes
no outbound calls to any server other than PayFast (for processing payments) and
your own WordPress site. No data is shared with the plugin author.

PayFast itself is a third-party payment service. When customers complete a subscription
purchase, their card is tokenised by PayFast and the token is stored in your database
for future renewals. See PayFast’s privacy policy at https://payfast.io/privacy-
policy/ for details on how PayFast handles cardholder data.

### External services

This plugin connects to one external service: **PayFast**, the South African payment
gateway. PayFast is required — the plugin cannot process subscription payments without
it, and this processing cannot be performed locally. You must have your own PayFast
merchant account to use this plugin.

The plugin contacts PayFast in three ways:

 1. **Hosted checkout (https://www.payfast.co.za/eng/process, sandbox: https://sandbox.
    payfast.co.za/eng/process).** When a customer places a subscription order, the 
    customer is redirected to PayFast to enter and tokenise their card. The data sent
    is the order amount, a signed request signature, the customer’s billing first name,
    last name and email address, the order ID, the item name, and your PayFast merchant
    ID/key. This happens once per signup, at checkout.
 2. **Instant Transaction Notification validation (https://www.payfast.co.za/eng/query/
    validate, sandbox: https://sandbox.payfast.co.za/eng/query/validate).** When PayFast
    notifies your site of a payment result, the plugin posts the received notification
    back to PayFast to confirm it is genuine. The data sent is the exact notification
    payload PayFast sent. This happens once per payment event (signup and each renewal).
 3. **Ad Hoc charge API (https://api.payfast.co.za/subscriptions).** On each annual
    renewal, the plugin charges the stored card token. The data sent is the renewal
    amount, item name, your merchant ID, a timestamp, and a signed request signature.
    This happens once per subscription per year (on renewal).

No data is sent to the plugin author or any analytics/telemetry service. PayFast’s
general terms and conditions: https://payfast.io/legal/general-terms-conditions/—
PayFast’s privacy policy: https://payfast.io/privacy-policy/

## Screenshots

 * [[
 * Admin subscriptions list — view, filter, search, and export all subscriptions
 * [[
 * Subscription detail — full payment history with admin status controls
 * [[
 * At-a-glance dashboard widget — active counts and annual recurring value
 * [[
 * Customer self-service — subscriptions and cancellation from My Account
 * [[
 * One-click setup — enable annual billing from the product editor
 * [[
 * Customisable transactional emails with merge-tag placeholders
 * [[
 * PayFast gateway configuration under WooCommerce Payments

## Installation

 1.  Install the plugin via **Plugins  Add New  Search  “ReCurr”** in your WordPress
     admin, or upload the zip via **Plugins  Add New  Upload Plugin**.
 2.  Activate the plugin.
 3.  Make sure WooCommerce is active first (ReCurr requires it).
 4.  Go to **WooCommerce  Settings  Payments**, find **PayFast Subscriptions (ReCurr)**,
     click **Manage**.
 5.  Enter your PayFast Merchant ID, Merchant Key, and Passphrase. **The Passphrase
     is required.** It must be set on your PayFast account (PayFast dashboard  Settings
     Security passphrase) and the value entered here must match it _exactly_ (no leading
     or trailing spaces). ReCurr signs every PayFast request with this passphrase; 
     if it is missing or does not match, PayFast rejects the payment with a signature
     error.
 6.  Confirm Tokenisation is enabled on your PayFast account (contact PayFast support
     if not).
 7.  Set the PayFast ITN URL in your PayFast dashboard to: `https://yourdomain.com/?
     wc-api=recurr_payfast` (replace yourdomain.com with your actual domain).
 8.  Create a subscription product: **Products  Add New**, set price, then in the **
     Product Data** section check **Enable Annual Subscription**.
 9.  Test the flow with PayFast Sandbox Mode before going live.

## FAQ

### Does this plugin support monthly billing?

No. This plugin supports annual subscriptions only — the renewal interval is fixed
at one year.

### Does this plugin support free trials?

No. Customers are charged the annual amount at signup; there is no trial period.

### Does this plugin work with payment gateways other than PayFast?

Not at this time. ReCurr is built specifically for PayFast. If you need a different
gateway, this is not the right plugin for you.

### Does this work with WooCommerce Blocks checkout?

Yes. ReCurr is compatible with both Classic and Blocks checkout.

### What happens to my data if I uninstall the plugin?

By default, your subscription history is preserved when you uninstall this plugin,
so you can reinstall it later or migrate to another plugin without losing data. 
If you want all subscription data permanently deleted on uninstall, tick the “Permanently
delete all subscription data when the plugin is uninstalled” checkbox in ReCurr  
Settings  Data Management before uninstalling.

### Is the plugin obfuscated?

No. The free plugin is plain readable PHP, GPL-licensed. You can audit every line
of code in the plugin folder.

### Does ReCurr send any data to your servers?

No. This plugin makes no outbound calls to ReCurr or any analytics/telemetry service.
The only external service it contacts is PayFast, your payment gateway (see the “
External services” section above for details).

### Do customers need an account to subscribe?

Yes. Because a subscription must be managed over time, ReCurr requires customers
to create an account at checkout when the cart contains a subscription product (
guest checkout is automatically disabled for those carts only). This lets every 
subscriber view, manage, and cancel their own subscription from My Account. Non-
subscription products in your store are unaffected and can still be bought as a 
guest.

### How do I cancel a customer’s subscription?

In WordPress admin: **ReCurr  Subscriptions  click the subscription  Cancel**. Customers
can also cancel from their My Account area.

### PayFast says “signature mismatch” or returns a 400 Bad Request at checkout.

This is almost always a Passphrase problem. ReCurr signs every PayFast request using
your Passphrase, so it must be configured correctly:

 1. In your PayFast dashboard, go to **Settings  set a Security passphrase** (if you
    have not already).
 2. In **WooCommerce  Settings  Payments  PayFast Subscriptions (ReCurr)  Manage**,
    enter the _exact same_ passphrase — type it manually rather than copy/pasting, 
    as trailing spaces or hidden characters will break the signature.
 3. Save and try the checkout again.

If you use PayFast Sandbox Mode for testing, the sandbox account has its own separate
passphrase — make sure you are entering the sandbox passphrase while sandbox mode
is enabled, and the live passphrase when it is disabled.

### I’m getting “Tokenisation not enabled” errors from PayFast.

PayFast requires you to request Tokenisation activation on your merchant account.
Email PayFast support at support@payfast.io and ask them to enable subscription 
tokenisation on your Merchant ID.

### Where can I get help?

 * WordPress.org plugin support forum (https://wordpress.org/support/plugin/recurr-
   subscriptions/)
 * ReCurr support: admin@recurr.co.za

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“ReCurr – Subscription Billing” is open source software. The following people have
contributed to this plugin.

Contributors

 *   [ recurr2026 ](https://profiles.wordpress.org/recurr2026/)

[Translate “ReCurr – Subscription Billing” into your language.](https://translate.wordpress.org/projects/wp-plugins/recurr-subscriptions)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/recurr-subscriptions/),
check out the [SVN repository](https://plugins.svn.wordpress.org/recurr-subscriptions/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/recurr-subscriptions/)
by [RSS](https://plugins.trac.wordpress.org/log/recurr-subscriptions/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release.
 * Annual subscription billing via PayFast tokenisation.
 * Customer self-cancellation from My Account.
 * Admin subscriptions list with status filter and search.
 * Subscriptions CSV export.
 * At-a-glance dashboard widget (active counts, annual recurring value, upcoming
   renewals).
 * Customisable transactional email templates with merge-tag placeholders.
 * Failed-payment retry with email notifications.
 * WooCommerce Blocks checkout compatibility.
 * HPOS-compatible.

## Meta

 *  Version **1.0.0**
 *  Last updated: **1 day ago**
 *  Active installations: **Fewer than 10**
 *  WordPress Version: ** 6.2 or higher **
 *  Tested up to: **7.0**
 *  PHP Version: ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/recurr-subscriptions/)
 * Tags:
 * [payfast](https://en-ca.wordpress.org/plugins/tags/payfast/)[recurring billing](https://en-ca.wordpress.org/plugins/tags/recurring-billing/)
   [south africa](https://en-ca.wordpress.org/plugins/tags/south-africa/)[subscriptions](https://en-ca.wordpress.org/plugins/tags/subscriptions/)
   [woocommerce](https://en-ca.wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://en-ca.wordpress.org/plugins/recurr-subscriptions/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/recurr-subscriptions/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/recurr-subscriptions/reviews/)

## Contributors

 *   [ recurr2026 ](https://profiles.wordpress.org/recurr2026/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/recurr-subscriptions/)