Skip to content

Odoo Subscriptions: Recurring Billing & Management Guide

DeployMonkey Team · March 22, 2026 12 min read

Subscriptions Module

Odoo Subscriptions handles recurring revenue: monthly/annual plans, auto-invoice generation, upsells, renewals, and churn tracking. It integrates with Sales for quotation, Accounting for invoicing, and Website for online signup.

Setup

1. Recurring Products

# Create subscription product:
# Products → Create
# Name: "Pro Plan - Monthly"
# Type: Service
# Invoicing Policy: Ordered quantities
# Recurring: Yes
# Recurring Period: Monthly (or Yearly, Weekly)
# Price: $79/month

# Create annual variant:
# Name: "Pro Plan - Annual"
# Recurring Period: Yearly
# Price: $790/year (2 months free)

2. Subscription Templates

# Subscriptions → Configuration → Plans
# Plan: "Professional"
# Products included:
#   - Pro Plan: $79/mo
#   - Priority Support: $29/mo (optional)
#   - Extra Storage 100GB: $10/mo (optional)

# Plan settings:
# - Auto-close after X days without payment
# - Renewal reminder: 30 days before expiry
# - Grace period: 7 days after payment failure

Subscription Lifecycle

# 1. Draft → Customer signs up (website or quotation)
# 2. In Progress → Active subscription, billing started
# 3. To Renew → Approaching renewal date
# 4. Renewed → Customer renewed for next period
# 5. Closed → Subscription ended (cancelled or expired)

# Auto-actions:
# → Auto-invoice on each billing date
# → Email invoice to customer
# → Payment collected (if online payment configured)
# → If payment fails → retry → grace period → suspend

Billing

# Auto-invoicing:
# Odoo creates invoices automatically each period
# "Generate Recurring Invoices" scheduled action runs daily

# Invoice contains:
# - All recurring products on the subscription
# - Period dates (March 1 - March 31)
# - Any one-time charges added

# Payment collection:
# - Online payment (Stripe/PayPal auto-charge)
# - Manual payment (bank transfer, check)
# - Token-based recurring charge (saved card)

Upsells & Downgrades

# Upsell: add products or upgrade plan
# Subscription → Upsell → add new line or change quantity
# → Prorated invoice for remaining period

# Downgrade: reduce plan
# → Takes effect at next billing period
# → No prorated refund (configurable)

# Plan change: Starter → Pro
# → Close Starter subscription line
# → Add Pro subscription line
# → Prorate difference

Renewal Management

  • Auto-renewal (default): subscription continues each period
  • Manual renewal: customer must confirm renewal
  • Renewal reminder email: 30 days before expiry
  • Renewal quote: send updated quotation for price changes
  • Multi-year contracts: lock in rates for 1-3 years

Churn Management

  • Churn rate dashboard: cancelled / total per month
  • Cancellation reasons: collect via survey on cancellation
  • At-risk indicators: payment failures, support tickets, low usage
  • Retention offers: discount code for cancelling customers
  • Winback campaigns: email churned customers after 30/60/90 days

MRR Dashboard

# Subscriptions → Dashboard:
# MRR (Monthly Recurring Revenue)
# New MRR (from new subscriptions)
# Churned MRR (from cancellations)
# Expansion MRR (from upsells)
# Net MRR = New + Expansion - Churned

# Cohort analysis:
# Month 1: 100 customers, $10K MRR
# Month 6: 82 customers, $11.5K MRR (upsells offset churn)
# Retention: 82%

Website Integration

  • Pricing page with plan comparison table
  • Online signup → subscription auto-created
  • Customer portal: view subscription, invoices, change plan
  • Self-service cancellation with reason collection

DeployMonkey + Subscriptions

DeployMonkey itself runs on Odoo Subscriptions. Deploy it for your SaaS or subscription business — the AI agent configures plans, billing, and churn management from your business model.