Subscription billing is powered by our payment infrastructure.
It stores the card on file, runs the renewal schedule, retries failed charges,
and hosts the billing portal. Pocketsflow configures all of it for you and keeps
your dashboard, orders, and webhooks in sync — you never log into the payment provider.
When to use subscriptions
Subscriptions are a good fit when:- You deliver ongoing value — a community, regular content drops, office hours, a tool, or a members-only feed.
- You want predictable recurring revenue instead of one-off spikes.
- You’re comfortable managing renewals, trials, and cancellations.
Subscription vs. product at a glance. A product is bought once and accessed
forever. A subscription bills on a repeating schedule, tracks each subscriber’s
status over time, can offer a free trial, and gives buyers a self-service portal
to manage or cancel. They’re separate objects in Pocketsflow with separate
dashboard sections.
How recurring billing works
When someone subscribes:- Our payment infrastructure collects the first payment (or, with a trial, authorizes the card and defers the charge).
- Pocketsflow creates a subscriber record with a live status and grants access.
- At the end of each billing period, our payment infrastructure automatically charges the saved card again.
- Each successful charge is recorded as a new order in your dashboard,
tagged as an
initialorrenewalpayment, so recurring revenue appears alongside one-time sales. - If a charge fails, the subscriber moves to
past_dueand our payment infrastructure retries. - The customer can cancel or manage their plan at any time from the portal.
Billing frequency
Every subscription bills on one of three frequencies:
Monthly is the default. Choose the frequency in the Trial & frequency
section of the subscription editor. A common pattern is to publish two
subscriptions for the same offer — a monthly plan and a discounted yearly plan
— and let buyers choose.
Free trials
A subscription can start with a free trial measured in days. Set the trial length in the Trial & frequency section (0 = no trial).
- During the trial the customer has full access but is not charged.
- When the trial ends, our payment infrastructure charges the card on file automatically and the
subscriber moves from
trialingtoactive. - If the customer cancels before the trial ends, they’re never charged.
Creating a subscription
The subscription editor is a short, four-step wizard. You can revisit any step before or after publishing.1
Define the subscription
Set the core details and what subscribers receive:
- Name and short description (subtitle).
- What subscribers get — either a file to download, a URL to send them to (for example a Discord invite, a course platform, or a members area), or a callback URL that receives the subscription and customer IDs so your own system can grant access.
- Price per billing period, in your account currency.
- Free trial length in days, and the billing frequency (weekly / monthly / yearly).
- An optional thumbnail (recommended 1280×720, 16:9).
2
Design the product page
Decide whether the subscription shows a public product page before
checkout, and if so choose its layout, colors, typography, and which sections
appear. This reuses the exact same nine-layout page system as one-time
products — see Page templates. If you turn the
product page off, buyers go straight to the embedded checkout.
3
Style the checkout
Pick a checkout skin (template) and palette. This is the same checkout
template system used by products — see Checkout page.
You can also require the buyer’s first name and/or last name here (the
payment form always collects email).
4
Configure the portal & redirects
Set up post-purchase behavior in the Portal step:
- Redirect URL (required) — where buyers land after subscribing.
- Portal text (
portalText) — the headline shown at the top of the buyer’s native subscriber portal (see The customer portal). - Privacy policy and terms of service links.
- Optionally, the callback URL pattern used to notify your own system.
Make sure your page and checkout copy clearly communicate that this is a
recurring charge, the amount, the frequency, and any trial. Clear
disclosure reduces refund requests, chargebacks, and support tickets.
The public subscription page
If you enable a product page, the subscription renders it using the same public page renderer as one-time products, so all nine layouts, the typography and corner tokens, background patterns, reviews, and sales-count social proof are available. See Page templates for the layout catalog.- The primary call-to-action (its label is configurable, e.g. “Subscribe for $19/mo”) sends the visitor to the shared embedded checkout with the subscription attached.
- If you don’t enable a product page, the subscription link takes visitors directly to checkout — ideal when you drive traffic from a landing page or ad you’ve already written the pitch on.
- Reviews and the live subscriber/sales count can be shown or hidden per subscription.
The embedded checkout
Subscriptions use the same checkout as products, including the embeddable mode. You can drop the checkout straight onto your own website. When embedded, the checkout communicates with the parent page usingpostMessage:
- A
processingmessage fires as soon as payment starts. - A single
successmessage fires once the order is confirmed, carrying the order details — so your site can show its own confirmation, unlock content, or fire analytics. - A
resizemessage keeps the iframe sized to its content.
The subscriber lifecycle
Every person who subscribes gets a subscriber record (one per subscription they join). It stores their email, name, live status, test-mode flag, and a link to their personal billing portal. Its status is the single source of truth for where they are in the billing lifecycle.Status reference
When a new subscriber activates, Pocketsflow emails both the subscriber (an
“activated” email with a link to their portal) and you (a “new subscription”
notification). No manual step is required to grant access.
Managing subscribers from the dashboard
In the Subscriptions area you can:- See every subscriber for a plan and their current status.
- Distinguish active, past-due, and canceled subscribers at a glance.
- View each subscriber’s payment history — every renewal is a dated order.
- Identify which subscription each subscriber is tied to and when they joined.
- Open a subscriber’s portal link to help them with billing changes.
- Cancel a subscription on a customer’s behalf.
Renewals
At the end of each billing period our payment infrastructure charges the saved card automatically:- On success, Pocketsflow records a new order tagged
renewal, keeps the subscriberactive, and fires theinvoice.payment_succeededwebhook. - On failure, the subscriber moves to
past_due, our payment infrastructure retries on its dunning schedule, and Pocketsflow firesinvoice.payment_failed.
The customer portal
Every subscriber gets a native, branded self-service portal — hosted on your Pocketsflow subdomain, not a plain third-party redirect. From it a customer can see where their subscription stands, review every charge, cancel, resume, and update the card on file, all without emailing you. What a subscriber sees and does in the portal:- A headline you write — the
portalTextfrom the Portal step is shown at the top of the page (for example, “Manage your Pro membership below”). - Subscription details and live status — plan, price, billing frequency,
next billing date, and the current subscription status (
active,trialing,past_due,paused, orcanceled). - Full payment history — the initial charge plus every renewal, each with a receipt.
- Cancel — schedules the subscription to end at the period end (cancel-at-period-end), so the buyer keeps access through the period they’ve paid for.
- Resume — undoes a pending cancellation while the paid period is still
running, returning the subscription to
active. - Manage / Update payment method — hands off to the secure payment page to change the card on file. Card details are entered on the secure payment page, never stored by you.
How the portal link is structured
The portal link follows this pattern, on your account’s subdomain:subscriptionIdis the subscription’sid.subscriptionCustomerIdis that subscriber’ssubscriptionCustomer.id.
Portal text and redirects
In the Portal step of the editor you control:- Portal text (
portalText) — the headline shown at the top of the buyer’s native portal. - Redirect URL — where a buyer lands after subscribing (required).
- Privacy policy and terms of service links surfaced during the flow.
Cancel, pause, and resume
Make your cancellation policy explicit on your page, checkout, and portal:- Where customers cancel — usually the self-service portal, or by contacting you.
- When it takes effect — our payment infrastructure supports cancel at period end (the customer
keeps access until the paid period runs out) as well as immediate cancellation.
A cancel-at-period-end change fires the
customer.subscription.updatedwebhook so your systems can react without cutting access early. - Refunds — decide whether you refund the most recent renewal on cancellation.
canceled, access is revoked, and the customer.subscription.deleted
webhook fires.
Failed payments and dunning
When a renewal payment fails:- The subscriber moves to
past_dueandinvoice.payment_failedfires. - Our payment infrastructure retries the charge automatically on its dunning schedule.
- If a retry succeeds, the subscriber returns to
activeand a renewal order is recorded. - If retries are exhausted, the subscription ends and the subscriber becomes
canceled/unpaid.
- Turn on notifications for failed payments so you can nudge high-value customers.
- Point past-due customers to their portal to update the card on file.
- Decide up front how long you’ll keep access on while a payment is failing, and state it in your terms.
Upgrades, downgrades, and plan changes
If you offer multiple plans (for example monthly and yearly, or tiers):- Give subscribers a clear path to switch plans.
- Decide whether a change takes effect immediately or at the next billing date, and whether you prorate.
- Communicate exactly how price and access change when switching.
Webhooks for subscriptions
If you consume webhooks, subscription events can drive access control in external systems and notifications in your own tools (Slack, a CRM, a Discord bot). The events a subscription’s lifecycle fires:Each webhook payload includes the
subscription (with its id and the
subscriber’s customerId) and the customer (email, first and last name). Use
the subscriber customerId you stored at activation to match every later event
to the right person. Webhooks fire in test mode for test subscriptions and
live for real ones.Testing a subscription end-to-end
Before you send real traffic:1
Publish in test mode
Create the subscription in test mode so no real money moves.
2
Subscribe with a test card
Open the checkout in a private window and subscribe. Confirm you (and the test
buyer) receive the activation emails and that the redirect works.
3
Check the subscriber record
Confirm a subscriber appears with status
active (or trialing) and that a
first order was recorded.4
Open the portal
Follow the portal link from the activation email and confirm it opens the
billing portal rather than an error.
5
Verify webhooks (if used)
Confirm your endpoint received
payment_intent.succeeded, and later
invoice.payment_succeeded on renewal.Frequently asked questions
Can one subscription have both a monthly and a yearly price?
Can one subscription have both a monthly and a yearly price?
A single subscription has one frequency and price. To offer monthly and
yearly, publish two subscriptions for the same offer and let buyers pick. It
keeps each plan’s billing, trials, and reporting clean.
What happens to access during a free trial?
What happens to access during a free trial?
Trial subscribers get full access immediately and are billed automatically
when the trial ends. If they cancel before then, they’re never charged.
How do I revoke access when someone cancels?
How do I revoke access when someone cancels?
Access is revoked when the subscription ends. If you gate access in your own
system via a callback or webhook, act on
customer.subscription.deleted
(immediate) or schedule end-of-access from customer.subscription.updated
(cancel at period end).Do renewals show up as sales?
Do renewals show up as sales?
Yes. Every successful charge — initial and renewal — is recorded as an order
and appears in your dashboard and analytics, so you can see MRR-style recurring
revenue next to one-time sales.
Can a subscriber update their card themselves?
Can a subscriber update their card themselves?
Yes — that’s what the customer portal is for. Point past-due customers there to
fix a failed payment without your involvement.
What’s next
- To increase revenue per customer, set up Upsells & bundles.
- To design the subscription’s page, see Page templates.
- To skin its checkout, see Checkout page.
- To monitor performance, explore Analytics.
- For the buyer’s-eye view, see Managing subscriptions and Refunds.
- To embed subscriptions on your own site and handle webhooks, clone the subscriptions example on GitHub.