
SB506 – Setting Up Recurring Contract Billing for a SaaS CRM Model in D365 Finance
🧩 Introduction
Welcome to SB506 in our Subscription Billing series! In the previous article SB505, we covered the modular architecture of Subscription Billing in Dynamics 365 Finance. Now, we’re diving straight into Recurring Contract Billing (RCB)—the heart of any subscription-based setup.
If your company offers SaaS, support retainers, telecom plans, or monthly rentals, this module is where your billing engine lives. And to make this article practical and relatable, we’ll focus on a real-world CRM SaaS use case, using actual item numbers from our catalog.
⚙️ What is Recurring Contract Billing?
Recurring Contract Billing (RCB) is a powerful engine in D365 Finance that:
- Automates recurring billing (monthly, quarterly, yearly)
- Supports usage, milestone, and flat-fee items
- Integrates with revenue deferrals and renewal cycles
- Generates invoices (sales order or free text) per billing schedule
Think of it as your subscription calendar and invoice machine. You define what’s billed, when, and how—and D365 does the rest.
🏁 Prerequisites
Before we begin setup, ensure the following:
🔧 Features & Settings
- Subscription Billing and Recurring Contract Billing are enabled in Feature Management



- The legacy “Revenue Recognition” feature is disabled
- Number sequences are defined for Billing Schedule IDs
- Relevant products (services/items) are released to your legal entity
👤 User Access
- You have access to:
Subscription billing > Recurring contract billing workspace
🧠 Product Items Used in This Article
Product Number | Product Name | Type |
SBX-CRM-M01 | CRM Subscription – Monthly | Service |
SBX-IMP-ONE | Onboarding Setup Fee | Service |
SBX-SUPP-M | Monthly Tech Support | Service |
SBX-RNW-ANN1 | Annual CRM Subscription Renewal | Service |
These items will be used throughout this article as we build a full billing schedule for a SaaS CRM client.
🧩 Scenario: Billing Setup for a SaaS CRM Subscription
Let’s imagine your company sells a monthly CRM SaaS subscription. The offering includes:
- A core monthly CRM license (SBX-CRM-M01)
- A one-time onboarding fee (SBX-IMP-ONE)
- Optional tech support (SBX-SUPP-M)
- Automatic annual renewal (SBX-RNW-ANN1)
Our client “ABC Ltd” signs up on April 1, 2025, for a 12-month subscription.
🔧 Step 1: Configure Billing Parameters
📍 Path: Subscription billing > Recurring contract billing > Setup > Recurring contract billing parameters
Key settings:
Field | Value | Purpose |
Align to month | Yes | Align billing to calendar month |
Prorate partial periods | Yes | Adjust billing for partial start months |
Proration method | Daily | More precise for mid-month contracts |
Default invoice type | Sales order | Ensures standard sales invoicing |
Align deferral to billing | Yes | Required if using deferrals |
Use trade agreements | Yes | Pull pricing from price list if needed |
Note – We will change default billing schedule group during billing schedule creation

🧠 Step 2: Create a Billing Schedule Group (Template)
📍 Path: Subscription billing > Setup > Billing schedule groups

💡 This group can be reused for all monthly CRM customers.
🧾 Step 3: Create the Billing Schedule
📍 Path: Subscription billing > Recurring contract billing > Billing schedules > Active Billing Schedules

You’ve now created a blank schedule tied to a customer and template.

➕ Step 4: Add Billing Lines
🔹 Line 1 – CRM Subscription (Monthly)
- Item: SBX-CRM-M01
- Item type: Standard
- Quantity: 1
- Unit price: 500
- Billing frequency: Monthly
Note – Make sure you populate Site under Line details > Products > storage dimensions > Site
Site (and often Warehouse) is part of the inventory dimension group, even for subscription items — because Subscription Billing uses the sales order framework, which is tightly integrated with inventory and logistics.

🧾 This creates 12 billing events of £500 each.
🔹 Line 2 – Onboarding Setup (One-Time)
- Item: SBX-IMP-ONE
- Item type: Standard
- Unit price: 1200
- Quantity: 1
- Billing frequency: One-time (limit to first period)

💡 This appears on the first invoice only.
🔹 Line 3 – Optional Tech Support
- Item: SBX-SUPP-M
- Unit price: 150
- Billing frequency: Monthly

🛠️ Add only if customer subscribes to support.
🔹 Line 4 – CRM Annual Renewal
Leave this out for now. Since auto-renewal is enabled, D365 will generate a renewal line using item SBX-RNW-ANN1 when the last period is invoiced.
🔍 Step 5: Review Billing Details
Click View billing details per line to preview each monthly billing event. You can adjust start dates, skip periods, or override prices here if needed.
🧾 Step 6: Generate Invoices
📍 Path: Subscription billing > Periodic tasks > Generate invoice

Set:
- Start Date: 01-Apr-2025
- End Date: 30-Apr-2025
- Consolidate by: Customer
- Posting Option: Post Invoice Automatically



🎯 Output:
- Verify billing


- Verify Voucher Transactions

🔁 Step 7: Automate Monthly Billing
📍 Use batch job: Subscription Billing > Recurring Contract Billing > Periodic Tasks > Generate invoice batch processing
🔹 Invoice Batch Parameters
Field | Value | Why |
Filter by | Start date | Ensures billing lines that start on or before today are included. |
Add the number of days or months | ✅ Enabled | Needed to dynamically move the date window forward each month. |
Select by days or months | Months | So the job calculates based on whole months, not daily offsets. |
Number of days or months | 0 | Ensures only current month’s billing lines are selected. |
Exclude zero consumption | Yes | Keeps invoices clean; avoids zero-quantity usage lines. |
Consolidate by customer | Yes | Combines lines for the same customer into a single invoice. |
Consolidate all periods | No | Prevents catching previous or future periods — keeps it month-specific. |
Posting option | Post invoice automatically | To fully automate invoice creation and posting. |
Don’t print child item | Yes | Cleaner invoice layout if using bundles. |
Records to include | Subscription Billing Number | To run globally, do not set specific billing numbers or lines |


🔄 Bonus: Prorated Billing Example
If a customer starts mid-month (e.g. April 10), proration will adjust the first period’s invoice to reflect a partial amount. This ensures fair billing for partial months.

Please note that a different billing schedule is being used for this explanation.
Billing Schedule Details:
- Start Date: 10-Apr-2025
- End Date: 31-Mar-2026
- Flat Monthly Rate: £500
- Invoice Run Cut-off (End Date): 30-Apr-2025
- Resulting Charge: £350 (not full £500)

Calculation

🔁 Bonus: Auto Renewal

Fast forward in the future and I generated invoices for rest of 11months periods.

Auto renewed

Billing details line added too.

✅ Summary
You’ve just built a real-life recurring billing model in D365 Finance using the CRM SaaS scenario:
Line | Item No | Description | Frequency | Amount |
1 | SBX-CRM-M01 | CRM SaaS Subscription | Monthly | £500 |
2 | SBX-IMP-ONE | Onboarding Setup Fee | One-time | £1200 |
3 | SBX-SUPP-M | Monthly Tech Support | Monthly | £150 |
4 | SBX-RNW-ANN1 | Auto Renewal (Generated) | Annual | £6000 |
🔜 What’s Next?
In SB507, we’ll explore the three item types (Standard, Usage, and Milestone) in detail using this same SaaS CRM model. You’ll also meet the SBX-CONS-API01 item to demonstrate usage-based billing for API calls.
Expand Your Knowledge: See More Subscription Billing Blogs
Share this content:
Post Comment