Who Is This For?
This guide is for merchants who sell subscription-based services or products with recurring billing. Common examples include:| Business Type | Examples |
|---|---|
| SaaS Products | Project management tools, CRM, analytics platforms |
| Content Platforms | Online learning, premium newsletters, media access |
| Digital Services | Cloud hosting, API access, design tools |
| Membership | Community access, premium support, exclusive content |
Subscription Lifecycle
Before setting up, it helps to understand how subscriptions flow:| Status | What It Means |
|---|---|
trialing | Customer is in a free trial period |
active | Paying customer, subscription is active |
past_due | Payment failed, Waffo is retrying automatically |
canceling | Customer canceled, but still has access until period ends |
canceled | Subscription has fully ended |
Step 1: Create Subscription Products
You’ll typically create multiple products for different pricing tiers (e.g., Free, Pro, Enterprise).Configure Pricing
- Name: Your plan name (e.g., “Basic Plan”, “Pro Plan”)
- Billing Period: Choose monthly, quarterly, or yearly
- Price: Set the recurring price
- Description: What’s included in this plan
Step 2: Organize Plans with Product Groups
If you have multiple tiers (Free, Pro, Enterprise), use Product Groups to organize them.Add Products to the Group
Select the subscription products that belong together. This helps manage pricing tiers as a unit.
Product groups are optional but recommended if you offer multiple pricing tiers. They prevent trial abuse and simplify management.
Step 3: Share and Start Selling
Just like one-time products, subscription products get a checkout link.Share the Checkout Link
Copy the checkout link from the product detail page:Build a Pricing Page
Create a pricing page on your website that links to each plan’s checkout URL:Prices below are examples only. Set them based on your actual business.
| Plan | Price | Checkout Link |
|---|---|---|
| Basic | $9/month | https://checkout.waffo.ai/your-store/basic-plan |
| Pro | $29/month | https://checkout.waffo.ai/your-store/pro-plan |
| Enterprise | $99/month | https://checkout.waffo.ai/your-store/enterprise-plan |
Step 4: Monitor Subscriptions
Subscriptions Dashboard
Navigate to Subscriptions in the sidebar to see all active, trialing, and canceled subscriptions.
- Customer email
- Current plan
- Status (active, trialing, past_due, etc.)
- Current period start and end dates
- Next billing date
Subscription Detail
Click on any subscription to view details:- Payment history
- Plan changes
- Cancellation details (if applicable)
Step 5: Handle Cancellations
When a customer cancels, the subscription enters a canceling state. The customer keeps access until the current billing period ends, then it becomes canceled.What Happens Automatically
- Customer receives a cancellation confirmation email
- You receive a notification
- Access continues until the period ends
- No further charges are made
View Cancellations in Dashboard
Filter subscriptions by Canceling or Canceled status to see who has left.Business Scenarios
The following are example scenarios. Adjust them to match your actual business.
Scenario 1: SaaS with Monthly and Yearly Plans
- Create products: Create both monthly and yearly versions of the same plan
- Group them: Create a product group to link them together
- Pricing page: Link each option on your website
- Monitor: Track MRR and churn in the Analytics page
Scenario 2: Content Platform with Free Trial
- Create product: Set up your subscription plan and price
- Enable trial: Set a 14-day free trial period
- Share link: Customer signs up and starts trial immediately
- After trial: Automatically converts to paid subscription, or expires if they don’t add payment
Scenario 3: API Service with Tiered Plans
- Create products: Create a subscription product for each tier with different API call quotas and prices
- Group them: Create a product group with shared trial
- Integrate webhooks: Grant appropriate API limits based on which plan the customer subscribes to
Going Further: Code Integration
When You Need Code
- Access control: Check subscription status in your app to gate features
- Automated provisioning: Use webhooks to automatically create accounts or adjust limits
- Custom cancellation flows: Build in-app cancellation with feedback collection
Key Webhook Events
| Event | When It Fires |
|---|---|
subscription.activated | New subscription started |
subscription.updated | Plan changed or renewed |
subscription.canceled | Subscription fully ended |
order.completed | Recurring payment processed |
subscription.past_due | Payment attempt failed |
Testing
Check Subscription
Verify the subscription appears in your Subscriptions page with the correct plan and status.
Launch Checklist
- Subscription products created for each plan/tier
- Product group set up (if multiple tiers)
- Pricing page links to correct checkout URLs
- Test subscription flow works end-to-end
- Cancellation flow tested
- Notification emails look correct
- Products published to production
Next Steps
Set Up Webhooks
Automate access control with subscription event notifications
Usage-Based Billing
Combine subscriptions with metered usage

