How it works
Your checkout calls the Subscription engine to create a subscription. The engine then sends each payment out through Primer, which routes it to the provider that should take it, such as Stripe, Adyen, Airwallex, or Checkout.com.- Checkout: Your paywall uses the Primer SDK and calls Subscription engine APIs to create subscriptions.
- Payment processing: The engine processes payments through Primer while managing subscription state.
- Real-time updates: Webhooks keep your backend synchronized with subscription changes.

Data model
Three objects describe what you sell and what a customer holds.- Offering (Feature): A named unit of entitlement, meaning what a customer gets access to, kept separate from pricing. An offering must exist before a price point can grant it. Learn more about offerings.
- Price point: One versioned, sellable pricing configuration. It sets the currency, what is charged now, whether there is a trial, and the renewal terms, and it grants one or more offerings. Learn more about price points.
- Purchase: What the customer ends up holding. A recurring subscription, a one-off that grants lifetime access, or a consumable granted without tracking either.
Payment types
FunnelFox Payments handles recurring subscription payments, one-off purchases, free trials, and consumables.Subscription payments
All your subscription payments appear on the Payments page of your FunnelFox Payments dashboard and in the Payments block of each customer’s page.

One-off purchases
One-offs grant lifetime access. All transactions also appear under Payments along with subscription payments. Purchased one-offs appear in the OneOffs block of the customer’s page.
- Started At: When lifetime access was activated.
- Paid: What the customer paid for the one-off.
- Initial Order: Links to the original payment.
- Price Point: The lifetime product purchased.
- Features: The offerings the one-off grants.
Free trials
You can launch free trials without payment transactions. When you create a price point with a free trial, FunnelFox Payments processes it like a normal payment but cancels it before completing the transaction. This saves payment details for subscription renewal without charging the customer.Consumables
Consumables grant a customer an entitlement without tracking it as a subscription or a lifetime purchase. This makes them suited to credit packs, one-time add-ons, and similar products. A consumable is an Offering (Feature) with the typeconsumable that you
attach to a price point. How often it is granted depends on the product
carrying it: a subscription product re-grants it on every billing cycle, while
a lifetime product grants it once.
Each customer’s consumables appear in the Consumables block of their page
in the FunnelFox Payments dashboard, with a status of active or revoked.
Learn more about consumables.
Subscription lifecycle
Every subscription starts, renews, and eventually ends. Its status tells you where it is.1
The subscription starts
A subscription with a trial starts as
INTRO. It becomes RECURRING
when the engine charges the customer at the end of the trial.A subscription created by a
migration with the
delayed_start strategy waits as UPCOMING instead. It starts when the
previous subscription expires.2
It renews each cycle
A
RECURRING subscription is charged two hours before each billing
cycle, so access never lapses. Each successful charge starts the next
cycle.3
A failed charge goes to recovery
A failed renewal does not end the subscription. The engine sets
GRACE,
which keeps the customer’s access, or RETRY, which means it is still
trying to charge.Both end in RECURRING if a charge succeeds, or EXPIRED if recovery
runs out. Learn more about
recovering failed payments.4
The subscription ends
Turning off auto-renewal sets
AUTORENEW_OFF. The subscription runs to
the end of the period the customer already paid for, then expires.EXPIRED means access is revoked.PAUSED sits outside this cycle. It suspends access until a set date, then
resumes on its own.
A subscription can hold more than one status at a time. See
subscription status for the full
reference.
