Recurring Revenue. Automated.
Customers subscribe. We handle billing cycles, failed payments, and lifecycle management. You focus on your product.How It Works
past_due status until the payment situation is resolved.
Subscription States
| Status | Description |
|---|---|
pending | Awaiting first payment |
active | Live and billing normally |
trialing | In free trial period |
past_due | Payment failed, awaiting resolution |
canceled | Will not renew after current period |
paused | Billing paused temporarily |
Billing Intervals
| Interval | Frequency | Best For |
|---|---|---|
| Weekly | Every 7 days | Usage-heavy products |
| Monthly | Every month | Standard SaaS |
| Quarterly | Every 3 months | B2B software |
| Yearly | Every 12 months | Committed customers |
Failed Payments
When a payment fails, the subscription transitions topast_due status. The customer is notified via email to update their payment method.
Managing Subscriptions
Cancel
Cancellation is always effective at the end of the current billing period. The customer retains access until the paid period ends.currentPeriodEnd so you know when access expires.
There is no immediate cancellation option. Customers always retain access through the end of their paid period.
Upgrade/Downgrade
| Scenario | Behavior |
|---|---|
| Upgrade mid-cycle | Takes effect immediately |
| Downgrade mid-cycle | Takes effect at the end of the current billing period |
Metrics
MRR (Monthly Recurring Revenue)
Key Metrics
| Metric | What It Tells You |
|---|---|
| MRR | Monthly recurring revenue |
| Churn | % subscriptions canceled |
| LTV | Customer lifetime value |
| ARPU | Average revenue per user |
Webhooks
Subscribe to subscription lifecycle events via webhooks. Configure webhook endpoints in Settings —> Webhooks. Webhook payloads use standard Waffo Pancake conventions:- IDs are UUID v4 format
- Amounts in smallest currency units
- Timestamps in ISO 8601 UTC
- Billing frequency uses the
billingPeriodfield (e.g.,monthly,yearly)
Customer Portal
Let customers manage their own subscriptions:- View details
- Update payment method
- Change plans
- Cancel
- Download invoices
Customer Portal
Self-service subscription management.
Best Practices
Offer annual discounts
Offer annual discounts
15-20% off yearly = lower churn + better cash flow.
Don't cut access immediately
Don't cut access immediately
Failed payment ≠ instant cancellation. Give time to update card.
Send reminders
Send reminders
Trial ending. Upcoming charge. No surprises.