DE | EN
Insights > Odoo > Subscription Billing & Recurring Revenue Management in Odoo

Subscription Billing & Recurring Revenue Management in Odoo

October 22, 2025

Subscription business models demand precise recurring billing systems: automated invoice generation, payment collection, revenue recognition compliance (ASC 606/IFRS 15), dunning management, and MRR/ARR analytics.

Whether you're running SaaS platforms, membership sites, managed services, or equipment leasing—manual billing creates revenue leakage, late payments, and accounting reconciliation nightmares.

Odoo's subscription billing engine automates the entire lifecycle: contract management, usage-based pricing, proration logic, payment retry workflows, and financial reporting. This technical deep-dive shows the architecture, configuration, and best practices.

Article Overview

What You'll Learn

Subscription Architecture

Scheduled actions, cron jobs, invoice generation logic

Pricing Models

Fixed, usage-based, tiered pricing, proration

Payment Automation

Auto-charge, retry logic, dunning workflows

Revenue Recognition

Deferred revenue, ASC 606 compliance, MRR tracking

Technical Architecture

How Odoo's Subscription Engine Works

Cron-based invoice generation, payment tokenization, deferred revenue automation. Built on PostgreSQL triggers and Python scheduled actions.

Automated Invoice Generation

Odoo's ir.cron scheduled action runs daily (configurable) to scan all active subscriptions with next_invoice_date <= today. For each subscription, it:

  • 1. Generates invoice lines based on subscription products/services
  • 2. Applies proration logic for mid-cycle changes (upgrades/downgrades)
  • 3. Creates draft invoice in account.move table
  • 4. Auto-posts invoice (optional: can stay as draft for review)
  • 5. Updates next_invoice_date based on recurring plan frequency

Payment Collection & Retry Logic

For subscriptions with tokenized payment methods (Stripe, PayPal, SEPA Direct Debit):

Automatic Payment Flow
Day 0: Invoice posted → Payment gateway API called with saved token
Day 3: If failed → Retry #1 + email notification
Day 7: If failed → Retry #2 + escalation email
Day 14: If failed → Subscription suspended + dunning workflow triggered

Retry intervals, suspension thresholds, and email templates are fully configurable per recurring plan.

Revenue Recognition (ASC 606 / IFRS 15)

For subscription businesses, revenue must be recognized over the service period, not at invoice date:

  • Deferred Revenue Account: Invoice creates liability (customer prepaid for future service)
  • Daily Revenue Recognition: Odoo's deferred revenue cron prorates revenue daily
  • MRR/ARR Calculation: Real-time dashboards track Monthly Recurring Revenue & churn
Pricing Strategies

Supported Subscription Pricing Models

Fixed, usage-based, tiered, per-user, freemium. Flexible pricing architecture to match your business model.

Fixed Recurring Pricing

Use Case: SaaS with flat monthly fees, gym memberships, managed services contracts.

Monthly Plan
€99/mo
Billed monthly, cancel anytime
Annual Plan
€990/yr
17% discount, 12-month commitment

Usage-Based / Metered Billing

Use Case: Cloud infrastructure (AWS-style), API platforms, IoT data plans, print/copy services.

Example: Cloud Storage
Base: €10/month
+ €0.02/GB stored (usage tracked via API)
+ €0.10/GB egress bandwidth

Invoice automatically calculates usage from meter readings

Tiered Pricing

Use Case: Volume discounts, feature-gated plans, per-user/per-seat pricing.

Starter
€29
1-5 users
Business
€99
6-20 users
Enterprise
Custom
21+ users

Mid-Cycle Changes & Proration

Handle upgrades, downgrades, cancellations with automatic proration calculation:

Example: Mid-Month Upgrade
Customer upgrades from €99/mo → €199/mo on Day 15 of 30-day cycle:

Proration Calculation:
• Refund unused portion: €99 × (15/30) = €49.50 credit
• Charge new plan for remaining period: €199 × (15/30) = €99.50
• Net charge: €99.50 - €49.50 = €50 immediate invoice
• Next full billing: €199/mo on renewal date
Implementation Guide

Subscription Billing Best Practices

Technical considerations, gotchas, and optimization strategies from 47+ implementations.

✓ Configure Deferred Revenue Accounts

Set up 492x Deferred Revenue accounts in Accounting module. Critical for ASC 606 compliance. Odoo's cron will automatically recognize revenue daily based on subscription period.

✓ Test Proration Logic Thoroughly

Mid-cycle upgrades/downgrades are complex. Always test: monthly → annual conversions, different proration methods (exact days vs. months), timezone handling for global customers.

✓ Implement Dunning Workflows

Don't just suspend failed payments. Configure escalating email sequences, grace periods, retry intervals. Track dunning metrics: voluntary vs. involuntary churn.

✓ Monitor MRR/ARR Dashboards

Odoo provides real-time subscription analytics: MRR growth, churn rate, expansion revenue, customer LTV. Export to BI tools (Power BI, Tableau) for advanced cohort analysis.

Need Help with Subscription Billing Implementation?

Our team has implemented subscription billing for SaaS, managed services, and recurring revenue businesses across Europe.

Schedule Technical Consultation