Memberships & Subscriptions for Craft

Stripe and PayPal-powered subscriptions, tiered access, content gating, drip content, member portal, and revenue reporting — built natively into Craft CMS.

$99 one-time license fee + $59/year for updates

Headcount

In The Control Panel

Real screens from a Craft 5 install — the membership plans a site sells, with their price, interval and trial.

The Headcount plans screen in the Craft control panel listing three membership plans with their handle, price, billing interval, trial period and enabled status

Screenshot from a live install, not a mockup.

Features

Everything you need to turn your Craft site into a membership platform — recurring subscriptions or a fixed season, on the web and in your members’ pockets.

Stripe & PayPal Payments

Recurring billing through Stripe Checkout Sessions and PayPal Subscriptions API v2. Webhook-driven status sync keeps Craft and your gateway in lockstep, so subscription state is always correct.

Tiered Membership Plans

Define unlimited plans with configurable billing intervals (day, week, month, year), per-plan pricing, optional trial periods, and feature lists. Each plan maps to a Craft user group for clean access control.

Season Memberships

Not every membership renews on the day someone joined. A season plan runs to a fixed calendar window every member shares — a club’s July–June year — so everybody expires together, whenever they signed up. The window rolls forward on its own each year, and pro-rata pricing charges a mid-season joiner only for the part of the season they get.

Apple & Google Wallet Cards

Members add a membership card to their phone and prove membership away from your site. Scanning its QR code opens a page on your own domain that reads Valid or Not valid — no app, no reader hardware, just a phone camera at the counter. Apple cards update themselves on the device, so a cancelled membership stops looking valid straight away.

Content Gating

Restrict entries by section, entry type, category, or individual entry. Choose how locked content responds — redirect to a pricing page, show a paywall teaser, or hide the entry with a 404. Gating hooks Craft’s authorization layer, so it works regardless of template code.

Drip Content

Release content on a schedule based on each member’s subscription start date. Perfect for course-style memberships, onboarding sequences, and gradual value delivery.

Native User Group Sync

Active subscriptions automatically add users to a plan’s mapped Craft user group; cancellations and expirations remove them. Use any of Craft’s native group checks (currentUser.isInGroup, permissions, etc.) without changing how you work.

Coupons & Discounts

Create percentage or flat-rate codes that sync directly to Stripe Coupons. Apply to specific plans, set redemption limits and expiration windows, and track usage from the control panel.

Member Portal

Members manage their own subscriptions, payment methods, and invoices through the Stripe Customer Portal. One Twig helper drops in a portal link — no custom forms required.

Revenue Reporting

MRR, churn rate, trial conversion, and growth metrics in the control panel and as a dashboard widget. Know exactly how your membership business is performing without exporting data to a spreadsheet.

Transactional Emails

Welcome, receipt, payment failed, trial ending, cancellation, and drip unlock notifications — all sent through Craft’s mailer using your existing templates. Override every message with your own Twig.

REST API & Twig Helpers

A full JSON API for plans, subscriptions, checkout, portal, and member info — plus a craft.headcount Twig variable and {% headcountGate %} tag. Build a SaaS frontend, mobile app, or pure Twig pricing page without writing controllers.

CLI & Webhooks

Console commands for syncing plans, expiring subscriptions, and verifying gateway state. Outgoing webhooks signed with HMAC-SHA256 let you fan subscription events out to your own services, CRMs, or Slack.

Also part of a bundle

Need events and bookings too?

Headcount is one third of Showtime — events, bookings, and memberships as a single plugin, a single settings screen, and one line in your composer.json. If your project needs more than memberships, buy that instead.

Events & calendars

$149 on its own

Booking & appointments

$79 on its own

Headcount — you are here

Memberships & subscriptions

$99 on its own

$249, not $327

All three licenses bought separately come to $327. Showtime is $249 one-time — $78 less, 24% off — and Owl arrives at its Pro edition, not Lite.

One renewal

$199/year keeps all three current — one invoice and one expiry date instead of three staggered renewals to track.

Already running Headcount?

Installing Showtime adopts your existing Headcount install in place — plans, subscribers, gating rules, coupons, and settings stay exactly where they are, with no data migration and no re-entry. The Craft Plugin Store has no concept of an upgrade price, so email me and I’ll credit what you paid for Headcount. The full process is in Upgrading from a standalone plugin.

Only need memberships? Headcount on its own is the cheaper buy — nothing here changes that.

Frequently Asked Questions

Common questions about Headcount.

The $99 one-time fee gives you a single-site license for Headcount with every feature: Stripe and PayPal billing, tiered plans, season memberships, Apple and Google Wallet cards, content gating, drip content, the member portal, coupons, revenue reporting, the dashboard widget, the Twig API, the REST API, CLI commands, and outgoing webhooks. You also get one year of updates.

After the first year, you can renew for $59/year to continue receiving updates and new features. If you choose not to renew, your existing version will continue to work — you just won’t receive updates.

Yes. Headcount uses Stripe for recurring payments by default — you’ll need a Stripe account and your API keys to process subscriptions. PayPal is optional and can be enabled alongside Stripe if you want to offer both.

Yes. All card details are collected by Stripe Checkout (or PayPal) — Headcount never sees or stores raw payment data. That keeps your site in PCI SAQ A scope, the lowest compliance level.

Yes. A plan can be set to a fixed season — one payment for a calendar window every member shares, so a club running July to June has everybody expire together on 30 June no matter when they joined. The window rolls forward automatically each year, and optional pro-rata pricing charges a mid-season joiner only for the months they get. Season plans are taken as a one-off Stripe payment, so they cannot be paid for with PayPal.

Yes. Members can add a card carrying their name, plan, status and expiry date, plus a QR code that opens a page on your own site reading Valid or Not valid — designed to be scanned with a plain phone camera by a shop offering a members’ discount, with no app or reader hardware involved. The credentials are your own (an Apple Pass Type ID certificate and a Google Wallet issuer account), and either platform can be used on its own. Apple cards keep themselves up to date on the device, so a cancelled membership stops looking valid straight away.

Yes. Access rules are configured in the control panel by section, entry type, category, or individual entry. Headcount hooks Craft’s authorization layer, so unauthorized visitors get redirected, see a paywall, or get a 404 — regardless of what your templates do. You can still use the {% headcountGate %} tag for finer control.

Each drip schedule sets how many days after a member’s subscription start an entry should unlock. Use craft.headcount.isUnlocked(entry) in templates, or rely on the access rules to handle locked entries automatically.

Yes. Each plan maps to a Craft user group. Active subscribers are automatically added to the group; cancellations and expirations remove them. You can use any native Craft check (currentUser.isInGroup, group permissions, etc.) without changing how you work.

Headcount ships with welcome, receipt, payment failed, trial ending, cancellation, and drip unlock emails — all rendered through Craft’s mailer. Override any of them with your own Twig templates.

Yes. JSON endpoints under /actions/headcount/api/ cover plans, subscriptions, checkout sessions, member info, and the Stripe Customer Portal. Authenticate with the user session or with an API key passed via the X-Headcount-Api-Key header — perfect for SaaS frontends, mobile apps, or external integrations.

Headcount requires Craft CMS 5.0 or later and PHP 8.2 or later, plus a Stripe account for payment processing. PayPal is optional. Both MySQL and PostgreSQL are supported.

Yes. Showtime bundles Owl Pro (events & calendars), Stub (booking & appointments), and Headcount into one plugin under a single $249 license — $78 less than the $327 the three cost separately, with one $199/year renewal instead of three. If you already own Headcount, installing Showtime adopts your existing plans and subscribers in place with no data migration, and I’ll credit what you paid — see Upgrading from a standalone plugin. If memberships are all you need, buy Headcount on its own.

Each license covers one Craft CMS installation. For additional sites, you’ll need additional licenses, available through the Craft Plugin Store.

Stripe and PayPal post lifecycle events to dedicated endpoints (/actions/headcount/webhook/stripe and /actions/headcount/webhook/paypal). Headcount logs every event for idempotency and updates subscription state automatically. Outgoing webhooks signed with HMAC-SHA256 let you fan events out to your own services.

Ready to get started?

Add memberships and subscriptions to your Craft CMS project today.

$99 one-time license · $59/year for updates

More in Site Features

Pairs well with Headcount

The bigger pieces a client asks for by name. Events, bookings, memberships, courses, reviews, a support desk, job listings and the rest.