Subscriptions
Automate recurring billing for your SaaS, membership, or subscription business. Reevit handles invoice generation, payment collection, retry logic, and dunning—so you can focus on building your product instead of managing billing infrastructure.Why Automated Subscriptions?
The Challenge
Building subscription billing is complex:- Invoice Generation: Create invoices on schedule (monthly, yearly)
- Payment Collection: Charge customers automatically
- Retry Logic: Handle failed payments with smart retry strategies
- Dunning: Manage customers whose payments fail repeatedly
- Proration: Handle upgrades, downgrades, and mid-cycle changes
- Multiple Providers: Different PSPs have different subscription APIs
- Build scheduling infrastructure
- Implement retry logic for each provider
- Handle dunning manually
- Manage subscription state across providers
- Write provider-specific code
The Solution
Reevit provides one API for subscription billing that:- Generates invoices automatically on your schedule
- Charges customers using their preferred payment method
- Retries failed payments with configurable policies
- Handles dunning automatically
- Works across all providers with unified API
How Subscriptions Work
The Subscription Lifecycle
- Create Subscription: Define customer, plan, amount, and billing interval
- Invoice Generated: Reevit creates invoice on schedule (e.g., monthly on the 10th)
- Payment Attempted: Reevit charges customer using their payment method
- Success/Failure: Payment succeeds or fails
- Retry (if failed): If payment fails, Reevit retries according to your policy
Key Concepts
- Subscription: The recurring billing agreement with a customer
- Invoice: A billing record for a specific billing period
- Payment: The actual charge attempt for an invoice
- Retry Policy: Rules for how failed payments are retried
- Dunning: Process of managing customers with failed payments
Creating Your First Subscription
Let’s create a subscription for a customer signing up for your premium plan:Reevit automatically injects the correlation metadata needed for PSP webhooks. Use
metadata for your own fields like plan tier or signup source.Understanding the Request
Response
What Happens Next
- Subscription Created: Customer is now subscribed
- First Invoice: Invoice created immediately (or on next billing date)
- Payment Attempted: Reevit charges customer
- Success: Customer gains access, subscription continues
- Failure: Retry according to your retry policy
Subscription Statuses
Understanding subscription statuses helps you manage customer access:Status Transitions
Active → Paused:- Customer requests pause
- Max retries reached (configurable)
- Manual pause via API
- Customer resumes
- Manual resume via API
- Customer cancels
- Manual cancellation via API
- Non-payment after grace period
Managing Subscriptions
List Subscriptions
- Dashboard: Show all active subscriptions
- Reporting: Generate subscription reports
- Customer lookup: Find customer’s subscription
Query Parameters
Get Single Subscription
- Customer portal: Show subscription details
- Support: Look up subscription for support ticket
- Billing: Check subscription status before charging
Updating Subscriptions
Change Plan or Amount
- Immediate: Subscription updated with new plan/amount
- Next Invoice: New amount charged on next billing cycle
- Proration: Reevit can handle proration (if supported)
- Upgrades: Customer upgrades to higher tier
- Downgrades: Customer downgrades to lower tier
- Price changes: Update subscription price
Canceling Subscriptions
Cancel Subscription
- Status: Subscription status changes to
canceled - Access: Revoke customer access immediately or at period end
- Invoices: No more invoices generated
- Webhook:
subscription.canceledevent sent
- Customer cancellation: Customer cancels subscription
- Non-payment: Cancel after grace period
- Policy violation: Cancel due to terms violation
Resuming Subscriptions
Resume a paused subscription:- Status: Subscription status changes to
active - Billing: Invoices resume on next billing date
- Access: Customer regains full access
- Webhook:
subscription.resumedevent sent
- Customer request: Customer wants to resume
- Payment updated: Customer updates payment method
- Issue resolved: Problem that caused pause is fixed
Invoices
Invoices are billing records for subscription renewals. Each billing cycle generates a new invoice.Invoice Lifecycle
- Draft: Invoice created, not yet due
- Due: Payment due, Reevit attempts charge
- Paid: Payment succeeded
- Failed: Payment failed, may retry
- Canceled: Invoice canceled (e.g., subscription canceled)
Invoice Statuses
Managing Invoices
List Invoices
- Customer portal: Show billing history
- Accounting: Export invoices for accounting
- Support: Review invoice history for customer
Query Parameters
Get Single Invoice
Retrying Failed Invoices
Manual Retry
Manually retry a failed invoice:- Customer updated payment: Retry after customer fixes payment method
- Temporary issue resolved: Retry after provider issue resolved
- Manual intervention: Support team retries on behalf of customer
Automatic Retries
Reevit automatically retries failed invoices according to your retry policy (see Retry Policies below).Retry Policies
Retry policies define how failed subscription payments are retried. This is crucial for recovering revenue from failed payments.Why Retry Policies Matter
Without retry policies:- Failed payment = lost revenue
- Customer may not notice payment failed
- Manual intervention required
- Revenue leakage
- Automatic retries recover most failed payments
- Customers notified before final retry
- Minimal manual intervention
- Higher revenue recovery
Setting Retry Policy
Delay Format
Delays specify when to retry after failure:Policy Hierarchy
Retry policies are applied in order of specificity:- Plan-level: Specific to a subscription plan (most specific)
- Org-level: Default for your organization (empty
plan_id) - Global: System default (least specific)
- Premium plan: 4 retries at
15m,1h,24h,72h - Basic plan: 3 retries at
1h,24h,7d - Default (no plan): 3 retries at
15m,1h,24h
Real-World Example
Scenario: Customer’s card expires- Day 1, 10:00 AM: Invoice due, payment fails (expired card)
- Day 1, 10:15 AM: First retry (15m delay) - still fails
- Day 1, 11:15 AM: Second retry (1h delay) - still fails
- Day 2, 11:15 AM: Third retry (24h delay) - customer updated card, succeeds!
Webhook Events
Subscriptions trigger webhook events you can use to automate your business logic.Subscription Events
Invoice Events
Example: Automating Access
Business Value
Revenue Recovery
Without Reevit:- 10% of subscription payments fail
- No automatic retries
- Manual intervention required
- Result: 10% revenue loss
- 10% of payments fail initially
- Automatic retries recover 70% of failures
- Minimal manual intervention
- Result: Only 3% revenue loss
Time Savings
Without Reevit:- Build scheduling infrastructure: 2-4 weeks
- Implement retry logic: 1-2 weeks
- Handle dunning: 1 week
- Ongoing maintenance: Ongoing
- Integrate API: 1-2 days
- Configure retry policies: 1 hour
- Ongoing maintenance: Minimal
Customer Experience
Without Reevit:- Payment fails → Customer loses access immediately
- No notification → Customer confused
- Manual retry → Friction
- Payment fails → Retry automatically
- Customer notified → Clear communication
- Automatic recovery → Seamless experience
Best Practices
1. Set Appropriate Retry Policies
- High-value plans: More retries, longer delays
- Low-value plans: Fewer retries, shorter delays
- Consider customer behavior: When do customers typically fix payments?
2. Notify Customers
- Before final retry: Give customers chance to update payment
- After failure: Clear instructions on how to fix
- After success: Confirm payment and thank customer
3. Handle Cancellations Gracefully
- Immediate vs. end of period: Choose based on your business model
- Proration: Handle partial refunds if needed
- Feedback: Ask why customer canceled
4. Monitor Failed Payments
- Track failure rates: Identify patterns
- Review retry success: Optimize retry policies
- Customer support: Proactive outreach for repeated failures
5. Use Metadata
Store useful information in subscription metadata:- Signup source
- Promo code used
- Customer tier
- Custom flags
Next Steps
Payments
See how payment intents, statuses, and refunds work end-to-end.
Webhooks
Consume
invoice.* and subscription.* events to sync billing state.Workflows
Automate emails, CRM updates, and dunning nudges when renewals fail.
Connections
Ensure your PSP connections are healthy for recurring charges.

