Getting Started with Built-in Membership
Built-in membership lets you sell podcast subscriptions directly through Benecaster — no separate membership plugin required. Subscribers pay via Stripe and get private feed access immediately. This guide walks you through going from zero to accepting your first paid subscriber.
Prerequisites
- Benecaster installed and licensed (any plan, including Launch)
- Stripe account (sign up free)
Built-in membership is available on every licensed plan, Launch included.
Step 1: Connect Stripe
Go to Benecaster → Settings → Membership → Payments and enter your Stripe API keys. You need both a publishable key and a secret key — get them from the Stripe Dashboard under Developers → API keys.
Click “Test connection” to confirm the keys work. The status indicator should show “Test mode — keys saved” or “Live mode — keys saved.”
See Connecting Stripe for Subscriptions for the full walkthrough, including webhook setup.
Start in test mode while you’re setting up. You can switch to live mode after testing.
Step 2: Create Your Membership Tiers
Go to Benecaster → Memberships → Tiers and click “Add tier.”
Each tier needs:
- Name — what subscribers see (e.g. “Monthly Supporter”)
- Slug — a URL-safe identifier; set once, never changed after subscribers enroll
- Monthly price and/or Annual price — in USD (or your Stripe account currency)
- Description — optional, but improves the subscribe shortcode card
When you save a tier, Benecaster automatically creates the corresponding Stripe Product and Prices. You don’t need to do anything in the Stripe Dashboard — tier management stays entirely in Benecaster.
If you later change a price, Benecaster creates a new Stripe Price on the same Product. Existing subscribers keep their current rate; new subscribers see the updated price.
Step 3: Activate Built-in Membership on Your Show
Go to Benecaster → Shows → [Your Show] → Subscription and set the bridge to Built-in Membership.
Once both requirements are met — Stripe keys configured and at least one active tier — the bridge selector shows the “Built-in Membership” option. Selecting it saves benecaster_builtin as the active bridge for this show.
There is no plan requirement. Built-in Membership is available on every licensed plan, Launch included.
Step 4: Add the Subscribe Shortcode to Your Site
Place [benecaster_subscribe show_id="N"] on any page or post, replacing N with your show’s ID.
Finding your show ID: every show displays a #412-style chip you can click to copy. It appears in the header when you open a show — on every sub-tab — and on each card in Benecaster → Shows, including archived ones. Click it and paste.
The shortcode renders a tier picker with one card per active tier. When your show has at least one tier with both monthly and annual prices, a billing period toggle appears above the cards.
Test the flow before going live:
- Make sure test mode is active in Settings → Membership → Payments
- Click a Subscribe button on the frontend
- Enter Stripe’s test card number:
4242 4242 4242 4242, any future expiry, any CVC - Complete checkout — the form submits to
POST /benecaster/v1/shows/{id}/subscribe - After a brief pause you’ll see a “Subscription confirmed — taking you to your account…” splash before being redirected to your account page
- Confirm you receive a welcome email and see a feed URL on the account page
Logged-out signups. If a visitor isn’t logged in, the subscribe shortcode shows a guest signup form. When the visitor’s email doesn’t match an existing WordPress user, a new account is created automatically. If the email does match an existing account, the subscriber is prompted to log in instead.
They get a “set your password” email automatically. An account created this way has no password, so without one the subscriber could receive their feed but never log in to the account page to find it, reset a token, or manage anything. Benecaster sends that email itself — you don’t need to configure anything, and no add-on is required.
The email is a managed template, so you can rewrite it like any other. See Customizing Emails — the type is guest_password_set.
Changed 2026-08-24. Benecaster used to send nothing here and expected each site to implement it, via the
benecaster_subscribe_user_createdaction. If you built that yourself, remove it now — two set-password emails means two single-use reset links, and the later one invalidates the earlier, so whichever your subscriber opens first fails. A developer can suppress the built-in one with thebenecaster_subscribe_send_password_emailfilter if you would rather keep your own.
Error messages. The subscribe shortcode maps server errors to plain-language messages in the subscriber’s language:
| Error | What subscribers see |
|---|---|
already_subscribed |
You’re already subscribed to this show |
benecaster_login_required |
An account with that email already exists — please log in |
stripe_not_configured |
Stripe is not configured — (admins see a settings link) |
benecaster_network_error |
Network error — check your connection and try again |
If you see a stripe_not_configured error on the frontend, go to Settings → Membership → Payments and confirm both the publishable and secret keys are saved for the active mode.
Step 5: Go Live
When you’re satisfied with the test flow:
- In Settings → Membership → Payments, disable “Use Stripe test mode”
- Confirm the status indicator shows “Live mode — keys saved”
- Verify the subscribe shortcode on your site shows real pricing (not test data)
Test mode and live mode are completely separate in Stripe. Test subscriptions do not transfer to live mode, and no real charges are made in test mode.
Going Over Your Subscriber Limit
Hitting your paying-subscriber limit does not stop new signups, on any plan. This is the same behavior you get with an external membership plugin, and it is intentional — one rule everywhere, whichever bridge you use and whichever plan you’re on.
What happens instead:
- The subscriber completes checkout and is billed normally.
- Benecaster issues them a token, so their feed URL works.
- That token is flagged over-limit and silently serves your public feed instead of their tier’s private feed.
- The subscriber sees no error and gets no notification. Their podcast app keeps working — it just receives public episodes.
Benecaster does not pause, cancel, or refund the Stripe subscription when a subscriber goes over-limit.
On your side it is not silent: a persistent amber warning appears in your WordPress admin, and over-limit subscribers are amber-highlighted in Benecaster → Subscribers. Upgrading your plan clears the flags at the next daily validation check and restores private feed access — no RSS URL change and nothing for the subscriber to do.
The Launch plan is no different. Its limit is 10 paying subscribers rather than 50 or 250, but reaching it does not close signups — the eleventh subscriber is served the public feed like any other over-limit token.
See Free vs. Paid Features for the limit figures and enforcement preferences, and Launch Plan Subscriber Limits for the Launch specifics.
First-Run Guards
If Stripe is not connected when a visitor loads a page with the subscribe shortcode:
- Admins see: “Stripe is not connected — visit Settings → Membership → Payments to finish setup”
- Non-admins see: “Subscriptions are temporarily unavailable”
The shortcode does not render any tier cards until Stripe is configured for the active mode.