Subscription Manager sells access to a Drupal site. A subscriber picks a plan, pays through a billing service, and holds the roles the plan grants for as long as the subscription is active. The module owns the local model — plans, subscriptions, charges, role grants and revocations, the subscriber-facing pages — and leaves the money to connector plugins, one per billing service.
Connectors come in two modes, and a site can run both behind a chooser that lets a subscriber pick the payment rail:
- Self-scheduling — the billing service owns the contract and its renewals (Stripe subscriptions, Recharge, Chargebee, Shopify). The connector mirrors the remote state into local subscriptions, mostly from webhooks, and the service's own customer portal handles changes.
- Charge-based — the billing service only holds a reusable payment instrument (a bank-debit mandate, a vaulted card) and Subscription Manager runs the billing cycle itself: when and how much to charge, including metered usage, every charge recorded, failed payments retried on a schedule with a grace period (dunning), reversals and refunds, cancellation at period end, and a native management page where a subscriber can cancel, resume, update their payment method or change plan. Suited to rails like GoCardless or Helcim that offer a payment primitive rather than a subscription product.
Features
- Plans synced from the billing service; each grants a set of roles and selects its scheduling mode.
- One active subscription per user, with roles granted and revoked from a snapshot taken at grant time, so a plan edited or deleted later cannot leave a former subscriber with access.
- A subscribe flow with a connector chooser, a management page (the service's hosted portal, or the native one), and a billing history with invoice links.
- Dunning: scheduled retries, a grace period, suspension and recovery, a policy for payer-initiated reversals, optional built-in mails, and events for sites that notify their own way.
- Seams for metered usage (tagged usage raters) and for tax calculation and invoicing (a replaceable service, so a bridge module can plug in a tax engine).
- JSON endpoints and
drupalSettingsfor decoupled front ends; Drush commands for syncing, reconciling and resolving duplicate subscriptions; default Views listings. - Remote billing is stopped when a subscriber's account is deleted, with the identifiers logged for an operator when a connector cannot do it by API.
The README documents the module for subscribers, site builders, operators, connector maintainers and developers.
Connector modules
- Stripe Subscription
- Recharge Subscription
- Chargebee Subscription
- Shopify Subscription (Shopify native subscriptions)
These connectors were written against 1.0.0-beta3 and need updating for the API changes since; each change is documented in a change record, and a catch-up issue will be filed in each connector's queue once 1.0.0-beta7 is released. Planned charge-based connectors: GoCardless (#3616779: GoCardless connector module (bank debit: Bacs, SEPA, ACH, PAD)) and Helcim (#3618742: Helcim connector module (charge-based card payments, CAD/USD)).
Requirements
Drupal 11.3 or later (Drupal 12 support is planned for 1.0.0). Core's Options and User modules. At least one connector module.
Current status
Beta. The stable-release roadmap tracks what remains before 1.0.0; pre-1.0 releases make breaking changes without a compatibility layer, each with a change record.
Project information
Minimally maintained
Maintainers monitor issues, but fast responses are not guaranteed.- Project categories: E-commerce
- Ecosystem: Stripe Subscription, Chargebee Subscription, Recharge Subscription, Shopify Subscription, Samcart Subscription
4 sites report using this module
- Created by grasmash on , updated
Stable releases for this project are covered by the security advisory policy.
There are currently no supported stable releases.
Releases
Feature release — Phase 3 of the stable-release roadmap
Development version: 1.0.x-dev updated 11 Oct 2026 at 03:36 UTC

