WooCommerce Subscriptions is the standard plugin for recurring billing on WordPress — meal plans, box subscriptions, memberships, donations, software licenses. Pairing it with Clover for card processing means the same merchant account handles your subscription renewals and your in-store sales, with one settlement and one reconciliation. This guide walks the full setup and the edge cases you should test before turning real renewals on.
What you need
- WooCommerce Subscriptions installed and activated (from WooCommerce.com).
- A Clover-aware payment gateway plugin that supports saved cards and recurring billing — CloverWoo, Kestrel, or a similar Subscriptions-aware gateway.
- A Clover developer app with the payment tokenisation permission enabled.
- An active Clover merchant account (not Sandbox for production; Sandbox works for dry-run testing).
How recurring billing actually works with Clover
Clover doesn't manage subscription schedules — that's WooCommerce Subscriptions' job. Clover just provides the rails for charging cards. Specifically, on the initial subscription purchase, the customer's card is tokenised via Clover's PCI-compliant iframe and the resulting Clover-issued token is stored in WooCommerce against the subscription. On every renewal, WooCommerce Subscriptions calls the payment gateway with the token, the gateway pushes a charge to Clover, and Clover settles it like any other transaction.
The customer is not present for renewals (it's a server-to-server charge), so SCA/3DS challenges don't apply the same way they do for one-off card-present checkout. Clover handles the merchant initiated transaction (MIT) flag automatically when the token is used for recurring charges.
Step 1: Enable saved cards in your Clover gateway
In CloverWoo → Checkout → enable 'Save cards for repeat customers'. This sets the gateway to request tokenisation on every successful first-time payment, so the resulting Clover token is available for future subscription renewals.
Step 2: Configure WooCommerce Subscriptions
WooCommerce → Settings → Subscriptions. The settings that matter for Clover specifically:
- Allow Subscription Suspension: Yes (let customers self-suspend without losing payment method).
- Process Renewals: 'Process renewal automatically' (vs manually). This is what triggers the tokenised charge.
- Failed Renewal Retry Schedule: the default 4-retry schedule (1 day, 3 days, 7 days, 14 days) works fine for Clover. After 4 failures, the subscription suspends.
- Failed Renewal Email Template: include a clear 'update payment method' link that uses Clover's tokenisation iframe so the customer can drop in a new card without exposing card numbers to your server.
Step 3: Test your first renewal in Sandbox
Before going live, run a Sandbox subscription end-to-end. Create a test product as a $1/day subscription. Buy it as a test customer. Then manually advance the renewal in WooCommerce → WooCommerce → Subscriptions → 'Process renewal now'. Confirm:
- The renewal charge appears in the WooCommerce subscription log as 'Active' status.
- The charge appears in Clover's transaction list with a 'recurring' or 'MIT' flag.
- Stock decrements (if the subscription product is stock-tracked).
- The customer's saved card record in WooCommerce shows a 'last used' timestamp updated to now.
Then deliberately break a renewal: change the test card to a known-failing test card number (Clover Sandbox publishes test cards that always decline). Run another renewal. Confirm the failure flows through to WooCommerce Subscriptions' retry queue and the customer email goes out.
Step 4: Handle plan changes and prorations
WooCommerce Subscriptions supports plan upgrades and downgrades with prorated charging. Clover handles the resulting charges as standard transactions on the existing token — no special configuration needed. The proration math happens in WooCommerce; Clover just receives the final amount.
One thing to verify: if a customer upgrades from a $20/mo plan to a $50/mo plan mid-cycle, WooCommerce calculates the proration and immediately charges the difference. Clover settles that prorated charge as a separate transaction. Make sure your bookkeeping process knows to expect mid-cycle settlements, not just monthly anniversary settlements.
Step 5: Failed renewals — what to monitor
Renewals fail for the same reasons one-off charges fail: insufficient funds (decline code 51), card expired (54), do-not-honor (05), card reported lost/stolen (41/43). The retry schedule handles most of these by simply trying again later. The failures you actually need to watch for:
- Card expired: requires the customer to update payment. WooCommerce sends the email; make sure your sender domain isn't in spam filters.
- Repeat decline 05 (do not honor): often a bank fraud flag, especially for new customers. Customer needs to call their bank.
- Token rejected by Clover: rare, but happens if Clover invalidates a token (e.g., card reported stolen). Log this case explicitly so you can reach out personally.
Common gotchas
Subscription products with variations
If your subscription product has WooCommerce variations (size, frequency, plan), make sure the price is correctly tied to the variation, not the parent product. Renewals charge the current variation price, which can surprise customers if you change the variation price mid-cycle. WooCommerce Subscriptions has a 'preserve renewal price' setting — use it.
Mixed carts (one-off + subscription)
If a customer buys a subscription and a one-off item in the same cart, the gateway charges the total at checkout but only saves the token for the subscription's recurring charges. The one-off item doesn't re-bill. This works correctly out of the box, but customers occasionally ask why the one-off product isn't being re-billed — the answer is 'because it's not a subscription'.
Refunds on subscription renewals
Refunding a subscription renewal charges back through Clover normally, but doesn't cancel the underlying subscription. Cancel the subscription separately in WooCommerce if that's the customer's intent. CloverWoo's refund flow handles the Clover side; WooCommerce Subscriptions handles the subscription state.
Next steps
- Full payment gateway setup: Clover payment gateway for WooCommerce.
- When payments fail: Clover payment failure decode.
- Refund handling: Clover refunds in WooCommerce.
Frequently asked questions
Does CloverWoo support WooCommerce Subscriptions out of the box?
Yes. CloverWoo's payment gateway implements the Subscriptions-required interfaces: saved card tokenisation, server-to-server charge against a stored token, refund support, and proper handling of merchant-initiated transactions. No extra configuration beyond enabling 'Save cards' in the gateway settings.
Can I switch a live subscription's payment gateway from another plugin to CloverWoo?
Not seamlessly. Tokens are gateway-specific — a token issued by another plugin can't be used by CloverWoo. The cleanest migration is to email active subscribers asking them to update their payment method through CloverWoo's tokenisation flow before their next renewal. Your old plugin can be deactivated once all active subscriptions have re-tokenised.
What happens to a subscription if Clover invalidates the token?
The next renewal fails with a 'token not found' or similar error code. WooCommerce Subscriptions enters its retry schedule and emails the customer asking them to update payment. The customer drops in a new card via Clover's tokenisation iframe, a fresh token is saved, and the subscription resumes.
Are SCA/3DS challenges a concern for Clover subscription renewals?
Generally no. Renewals are merchant-initiated transactions (MIT) — the customer isn't present, so the SCA flow that applies to fresh card-present checkout doesn't apply. Clover marks the renewal charge with the MIT flag automatically, and most issuers honor that without challenging. Some issuers occasionally do challenge MIT charges, in which case the charge fails and the customer needs to re-authorise the saved card.
Can I use Clover for subscriptions in EU / LATAM regions?
Yes — CloverWoo supports Clover's EU and LATAM environments, including saved-card tokenisation. The SCA/PSD2 compliance behaviour follows Clover's regional implementation, which means a few more renewal failures in EU than in NA on average, but the retry schedule + update-payment email handles those well.