Reference architecture·Reference·8 min·Updated 2026-10-05
Subscription business
Term subscriptions, amendments, renewals — and the billing schedule that has to hold it all together.
Business requirement
Sell a term subscription, let the customer change it mid-term, renew it at the end, and invoice all of that correctly without anyone reconciling by hand.
Why it is not trivial
The hard part is not the first order. It is the second change. An amendment has to be priced against what the customer currently holds, produce a delta rather than a replacement, and have that delta reach billing — which means asset state, pricing and billing all have to agree about the same dates.
Recommended architecture
A term selling model on the product, an asset lifecycle that records state over time, and billing schedules generated from the order. Amendments are new transactions read against current asset state, not edits of the original.
Salesforce components
Select one to open its detail.
Flow
Scroll the diagram sideways
An amendment is a new transaction read against current asset state, not an edit of the old one. That is why the asset state periods matter: they are what lets the system say what the customer held on the day the change takes effect, and therefore what the billing delta should be.
Implementation
- Set the selling model before any price exists. It is required on the price book entry and cannot be changed afterwards.
- Fill the period fields on the order line — period boundary, boundary start month, boundary day, billing frequency. They are required by the billing engine and are not surfaced as required.
- Use
StartDate, notServiceDate. The engine reads the former. - Prove the amendment path early, with a real change on a real asset, before the catalog grows.
Watch out
- A one-time product rejects a billing frequency and an end date. Mixing one-time and recurring lines in one bundle needs the selling models to be right per component.
- Ramp segment dates are locked on a yearly segment and editable on a custom one — what looks like a date bug is a segment type.
Alternatives
Where the commercial model is genuinely simple and never amended, a flat recurring price on the price book entry and no asset lifecycle is lighter. The moment mid-term change is real, that shortcut has to be unwound.
Salesforce resources
Guide