Skip to content

[BC Idea][SubscriptionBilling]: Flexible Subscription Billing: Pause Billing and Support Quantity 0 for Usage-Based Contracts #6637

@miljance

Description

@miljance

BC Idea Link

https://experience.dynamics.com/ideas/idea/?ideaid=af0de868-5207-f111-83da-6045bdb7b78a

Description

🎯 Goal

Improve flexibility in contract billing by allowing a subscription to be "paused" without termination. This requires enabling a Quantity of 0 for both manual entry and usage data imports.

👤 User Stories

  • Manual Pause: In consultation with a customer, a subscription should not be invoiced for a specific period (e.g., the customer is temporarily not using the service).
  • Usage-Based Pause: Currently, importing usage data with a quantity of 0 triggers an error. Users expect the import to succeed and the next billing date to increment, even if the resulting invoice line shows 0 consumption.

🛠 Technical Concept

1. Subscription Lines (Quantity 0)

  • Enable the Quantity field in subscriptions to accept 0.
  • New Dialog Logic:
  • If Quantity is set to 0:

"If you set the quantity to 0, the billing will pause until further notice but the subscription lines are not terminated. Do you want to continue?"

  • If Quantity is changed to any other value (<> 0):

"If you change the quantity, the amount for open subscription lines will be recalculated. Do you want to continue?"

2. Usage Data Processing

  • Import: Allow "Create Imported Lines" to read CSV lines with quantity 0.
  • Processing: * Update Process Imported Lines to remove the error: "Usage data with quantity 0 cannot be processed."
  • Ensure Create Usage Data Billing and Process Usage Data Billing handle quantity 0 identical to other values.

3. Billing & Invoicing Logic

  • Next Billing Date: When invoicing a line with quantity 0, the "Next Billing Date" must still be incremented to the next period to avoid billing gaps.

  • Billing Lines: * Non-usage lines: Created with quantity 0.

  • Usage-based lines: Created with the latest quantity before 0 and pricing retrieved from the usage data.

  • Posting: Document lines should reflect the billing lines (Quantity 0).

I will provide the implementation for this BC Idea

  • I will provide the implementation for this BC Idea

Metadata

Metadata

Assignees

No one assigned

    Labels

    ApprovedThe issue is approvedBCIdeaIssue related to a BCIdeaFinanceGitHub request for Finance area

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions