ChurnStop
Compliance

FTC click-to-cancel compliance for WooCommerce Subscriptions.

ChurnStop enforces FTC click-to-cancel compliance at the code level, not through documentation or policy. Every save-flow screen keeps a visible one-click cancellation link. Non-compliant configurations are rejected before they can be saved. Civil penalties under the amended rule are up to $50,120 per violation per consumer; ChurnStop makes that liability structurally impossible on stores that install it.

Last updated 2026-04-18
$50,120
Maximum federal civil penalty per violation per consumer under the amended FTC Negative Option Rule.
May 2025
Effective date of the updated click-to-cancel rule. Applies to any US merchant selling a recurring subscription online.
0
Configurations ChurnStop will let you save that violate the rule. The compliance validator rejects non-compliant flows before write.

What the rule requires, and how ChurnStop enforces each part.

The amended rule has five operative requirements for online subscription merchants. Each one maps to a specific enforcement mechanism in the plugin.

  1. 01

    Cancellation must be available online, end-to-end

    What the rule saysFor subscriptions signed up online, the customer must be able to cancel online through a direct mechanism. Forcing a call, an email, or a support form is prohibited.

    What ChurnStop doesChurnStop runs entirely inside the customer's My Account page. The entire save flow, including the final cancel click, happens in a single browser session with no external contact required.

  2. 02

    Cancellation must take no more steps than sign-up

    What the rule saysIf sign-up took two clicks, cancellation must take at most two clicks. Save flows that insert extra steps compared to sign-up fail this test.

    What ChurnStop doesEvery ChurnStop save screen keeps a one-click cancellation link visible. From any point in the flow, "No thanks, cancel my subscription" completes cancellation without any additional step or confirmation dialog.

  3. 03

    The cancel option must be as visible as the retain option

    What the rule saysHiding or de-emphasising cancellation (small grey text, collapsed menus, buried links) is prohibited. The cancel option must be at least as prominent as the continue-subscription option.

    What ChurnStop doesThe plugin renders the cancel link as a first-class UI element on every flow screen. Admin configuration cannot hide it, shrink it, or bury it behind a menu; the compliance validator rejects any settings that would.

  4. 04

    No coercive retention attempts before allowing cancel

    What the rule saysYou may show save offers, but only after the customer has indicated intent to cancel. The offer screen cannot be the only path; the direct cancel link must remain visible.

    What ChurnStop doesSave offers only appear after the customer clicks cancel and selects a reason. Every offer screen carries the cancel link; the customer can decline and complete cancellation at any point with one click.

  5. 05

    Clear confirmation of cancellation status

    What the rule saysAfter cancellation, the customer must see a clear confirmation. There must be no ambiguous intermediate state where the customer appears cancelled but is still being billed.

    What ChurnStop doesCancellation is recorded atomically in a single WC Subs API call. The subscription moves to cancelled status immediately; the customer receives the standard WooCommerce cancellation notice; there is no "pending cancellation" state.

Compliant vs non-compliant save flows.

The difference is usually in three places: where the cancel link lives, how many clicks it takes, and whether the offer screen blocks or accompanies the path to cancel.

CheckNon-compliant patternChurnStop pattern
Cancel link visibilitySmall grey text at the bottom of a retention offer, or hidden in a dropdown.First-class UI on every screen. Same visual weight as the "continue" action.
Clicks to complete cancelThree or more: click cancel, view offer, confirm, confirm again.One, from any flow screen.
Cancel path vs offer pathOffer is the only screen; cancel is hidden behind a subsequent page.Offer and cancel live on the same screen, side by side.
Support routing"Contact support" is the only option for certain cancel reasons.Support is offered alongside cancel, never instead of.
Post-cancel state"Pending cancellation" limbo where billing continues for weeks.Atomic status change on the single WC Subs API call.
Admin guardrailCompliance depends on the merchant not misconfiguring the flow.Validator refuses to save any configuration that violates the rule.

The compliance validator, in code.

ChurnStop ships a ClickToCancel validator class that inspects every flow configuration at both settings-save time and runtime. If any check fails, the configuration is rejected with a specific violation message.

// src/Compliance/ClickToCancel.php (WordPress plugin)
$compliance = new ClickToCancel();
$violations = $compliance->validateFlow($payload);

if ( ! empty( $violations ) ) {
return new WP_REST_Response([
'error' => 'Compliance violation',
'violations' => $violations,
], 422);
}

The validator is the single choke point. No settings API call, no admin action, and no runtime flow mutation can bypass it. If the plugin is active, the flows the plugin runs are compliant.

Compliance FAQ

Common questions from merchants and counsel.

What is the FTC click-to-cancel rule?

The FTC click-to-cancel rule, formally an update to the Negative Option Rule under ROSCA (the Restore Online Shoppers' Confidence Act), requires that online subscription services make cancellation at least as easy as sign-up. For a subscription signed up online, cancellation must be available online through a direct mechanism that takes no more steps than the sign-up flow. The rule went into effect May 2025 and applies to any US-based subscription merchant regardless of size.

Does ChurnStop comply with the click-to-cancel rule?

Yes. ChurnStop enforces click-to-cancel compliance at the code level, not through documentation or policy. Every save-flow screen keeps a visible "No thanks, cancel my subscription" link that is exactly one click from completing cancellation. The plugin's compliance validator refuses to save any flow configuration that would remove the decline link, add extra steps, or hide the cancellation path. Non-compliant settings are blocked before save.

What can the FTC fine me for a click-to-cancel violation?

Civil penalties under the amended rule are up to $50,120 per violation per consumer. State ROSCA analogues (California, New York, Florida) carry separate penalties. A non-compliant cancellation flow applied to 10,000 subscribers is a theoretical federal liability over $500M before state penalties. Enforcement has included both the FTC and state attorneys general since 2024.

Are save offers still allowed under the rule?

Yes. Save offers are allowed, but only after the customer has clearly indicated intent to cancel, and only if the offer screen does not hide or disguise the cancellation path. A single-screen offer with a visible "cancel anyway" link is compliant. A multi-step offer chain that moves the cancel button or requires clicking through retention content is not. ChurnStop's save flow fits within the allowed pattern by design.

Does the rule apply to WooCommerce Subscriptions stores?

Yes - the rule applies to any US-based merchant selling a recurring subscription online, regardless of the platform. WooCommerce Subscriptions stores are not exempt. Foreign merchants selling to US consumers are subject to the rule as well. The default WooCommerce Subscriptions cancellation page is click-to-cancel compliant on its own, but adding a save flow without proper safeguards can make the store non-compliant. ChurnStop is built to prevent that regression.

What if my save flow screens redirect customers to support first?

That is a rule violation. Forcing a customer to contact support, fill out a form, or wait for a response before being allowed to cancel is prohibited. Support routing as an optional path shown alongside a one-click cancel link is fine. Support routing as the only path is not. ChurnStop lets you offer a "Get technical help" choice for the "technical issues" cancel reason, but that path is always shown next to the direct cancel link, never instead of it.

How does ChurnStop's compliance guard work technically?

The plugin ships a ClickToCancel validator class (src/Compliance/ClickToCancel.php) that inspects every flow configuration before it is saved. It checks that the decline-and-cancel link is present on every step, that the link completes cancellation in a single click, that no step can be bypassed, and that the cancellation event is recorded atomically (no intermediate "pending cancellation" state that appears cancelled but is still billing). The validator runs at settings-save time and at runtime; non-compliant flows are rejected with a specific violation message.

Do I need a lawyer to configure ChurnStop?

No. The entire point of ChurnStop is that compliance is enforced at the code level so you cannot accidentally configure a non-compliant flow. That said, if your store is subject to state laws that impose stricter requirements than the federal rule, or if you run bundled services that raise different disclosure questions, consult counsel before launch. ChurnStop covers the federal click-to-cancel rule and common state ROSCA analogues; it does not cover every possible subscription-law edge case.

Install the free tier and get compliance by default.

The free ChurnStop plugin on wordpress.org includes the full compliance validator. Paid tiers add branching flows, A/B testing, and analytics - all gated by the same validator.

This page explains how ChurnStop implements the federal FTC click-to-cancel rule. It is not legal advice. Merchants subject to stricter state ROSCA analogues, to state-specific auto-renewal laws (California BPC 17600 et seq., New York GBL Section 527-a, and similar), or to bundled-service disclosure requirements should consult counsel before launch.