TL;DR
Real fields exist: Cancellation Possible Until, Term Until, Subsequent Term. The clauses that fill them sit in a document nothing reads. Blank means terminable.
On the subscription contract line, in five named fields — and Business Central models notice periods properly, which surprises most people. What it cannot do is fill them in, because the notice period is a clause in a document the ERP has never read.
Which fields actually hold a renewal date?
Five, and they do different jobs. Microsoft's definitions, quoted:
| Field | What Microsoft says it does |
|---|---|
| Subscription Line End Date | "specify a date on which you stop billing a subscription line" |
| Cancellation Possible Until | "specifies when a contract line can be cancelled in due time" |
| Term Until | "specifies the minimum time until which a contract line is, or should be, charged, even if it's terminated" |
| Subsequent Term | "specifies the duration of the automatic extension after the initial term" |
| Initial Term / Notice Period | Set the first commitment window and the warning it requires |
The distinction between the middle two is the one that costs money. Cancellation Possible Until is your deadline to act. Term Until is what you still owe if you act. They are not the same date and confusing them is how a company gives notice on time and still pays for a full period.
The end date is deliberately independent: "The end date doesn't depend on the dates in the Cancellation Possible Until and Term Until fields."
And Subsequent Term does double duty — it is both the length of the automatic extension and, in Microsoft's words, what "determines the rhythm of updating the Cancellation Possible Until and Term Until dates."
How is the notice deadline actually calculated?
Microsoft publishes a worked example, and it is worth reading closely. For a contract line billing from the first of January that renews annually with a three-month notice period:
"Term Until is 12.31.YYYY. The contract line should be charged for the whole year even if it's terminated in due time." "Cancellation possible until is 09.30.YYYY. The contract line can be terminated in due time up to this date. If the cancellation is received later, the contract line is billed for another year."
That last sentence is the entire cost of a missed renewal, in Microsoft's own words. Miss the September date and you own the following year. The system will not warn you it happened, because nothing went wrong — the extension is the documented behaviour.
The two dates stay in step with each other: "If either the Cancellation Possible Until or Term Until dates change, the other field is recalculated. The cancellation period is always used for this calculation."
What happens if the fields are left blank?
The contract becomes something nobody agreed to. Microsoft is direct:
"If validity and notice periods aren't set, the contract lines are valid indefinitely or can be terminated at any time."
Read that as a risk in both directions. A blank notice period on a vendor contract tells your system you may walk away whenever you like — which is not what the master services agreement says, and you will discover the difference when you try. A blank one on a customer contract quietly removes a commitment you negotiated.
Blank is not neutral. It is a wrong answer that looks like an empty field — and on the record an empty field looks identical whether the agreement truly has no notice period or nobody ever opened it.
One related trap: you cannot fix a wrongly billed line by backdating it. Microsoft: "you can't just terminate it retroactively… you must first issue a credit memo… The credit memo resets the Next Billing Date, and you can terminate the contract line."
What keeps these dates current?
A scheduled job, and it is not on by default.
"Use the Update Subscription Line Dates action on the customer or vendor subscription contract to update the notice dates. The action should always run in the job queue."
Microsoft names the automated route as well: "You can add the update of the end dates to the job queue by using Update Serv. Comm. Term. Dates (Codeunit 8058) to run automatically. Typically, businesses run the codeunit once a day and outside business hours."
So the renewal calendar depends on a job queue entry somebody has to set up. If it is not scheduled, the dates are stale rather than absent — which is worse, because a stale date still looks like an answer. It is the same dependency that makes an unattended job queue a silent control.
So where does the data actually come from?
A clause in the agreement, typed in by a person who read it once.
Every one of those date fields is a fact about a document: the initial term, the renewal length, the notice period. Business Central models them well and sources them not at all. The chain is:
- Somebody reads the MSA and finds the termination clause.
- Somebody translates "ninety days prior to the end of the then-current term" into Notice Period and Subsequent Term.
- Somebody types it onto the contract line.
- Nothing ever checks step three against step one again.
The same chain runs for every document type in the portfolio — and an MSA, a SOW and an MOU each behave differently.
And nothing re-checks after an amendment. A renegotiated notice period arrives as a signed amendment in an inbox; the contract line keeps the number typed in two years ago.
This is document intelligence, and it is the same capability as invoice extraction pointed at a different document. Microsoft already lists contracts as a supported type for agent attachments — and caps PDFs at ten pages, which is why an agreement needs its own extraction path rather than the built-in one.
The shape that works is a sidecar app — one that runs in your own Azure tenancy, reads the agreement where it already lives, extracts the termination clause, and writes the notice period onto the contract line for a person to confirm. The document does not move and the ERP stays the system of record. That is the whole architecture: Dynamics manages the renewal, and something beside it works out what the renewal actually says.
About Cognilium Cognilium builds AI optimization apps for Microsoft Dynamics 365 — companion apps that optimize the pricing, inventory, warehouse and planning decisions your ERP manages but can't optimize. Dynamics is your system of record. Cognilium is your system of intelligence. https://cognilium.ai · https://www.linkedin.com/company/37180269/
Legal AI Ops. We transform legal workflows with agentic AI, copilots, agentic workflows and decision intelligence — built into core workflows rather than beside them, to raise productivity and cut operational overhead. Contract Review Copilot is the contract-review app in that family. It ships as Paralegent AI, in production today. How we build Legal AI Ops — custom AI capabilities on top of legal work, against your playbook and your Dynamics 365.
Pull your five largest vendor agreements and check whether the notice period on the contract line matches the termination clause in the document. Bring the mismatches to a 15-minute call.
Sources
- Cancel planned subscription lines — Business Central ·
ms.date2025-07-11, updated 2026-01-12 - Vendor subscription contracts — Business Central ·
ms.date2026-05-04 - Attachment capabilities and limitations (preview) — Business Central ·
ms.date2026-05-03
Sources and fact-check
| # | § | Claim | Tier | Primary source | Verdict |
|---|---|---|---|---|---|
| 1 | 1 | The five field definitions, each quoted | T1 — verbatim ×4, field names copied character-exact | service-commitment-cancellation, fetched 2026-09-10 | PASS |
| 2 | 1 | "The end date doesn't depend on the dates in the Cancellation Possible Until and Term Until fields" | T1 — verbatim | Same page | PASS |
| 3 | 1 | Subsequent Term "determines the rhythm of updating" the other two | T1 — verbatim | Same page | PASS |
| 4 | 1 | Confusing the two dates costs money | T2 — ours, read off claims 1 and 2 | — | PASS |
| 5 | 2 | The worked example: Term Until, Cancellation possible until, and "billed for another year" | T1 — verbatim ×3 | Same page, Termination dates and deadlines | PASS — load-bearing; the cost of a missed renewal in Microsoft's words |
| 6 | 2 | The two dates recalculate each other | T1 — verbatim | Same page | PASS |
| 7 | 3 | "If validity and notice periods aren't set, the contract lines are valid indefinitely or can be terminated at any time" | T1 — verbatim | Same page, opening | PASS |
| 8 | 3 | Blank is a wrong answer, not a neutral one | T2 — ours, an interpretation of claim 7, labelled | — | PASS |
| 9 | 3 | No validation distinguishes a genuine absence from an unread agreement | T2 — ours, reasoned from the field model rather than from an absence search | — | PASS — not written as "Microsoft documents no validation" |
| 10 | 3 | Retroactive termination needs a credit memo first | T1 — verbatim | Same page, Note | PASS |
| 11 | 4 | "The action should always run in the job queue"; Update Serv. Comm. Term. Dates (Codeunit 8058); once a day, outside business hours | T1 — verbatim ×3, codeunit name and number exact | Same page | PASS |
| 12 | 5 | Contracts are a supported attachment type and PDFs are capped | T1 — verbatim, second Microsoft page | ai-development-toolkit-attachments, fetched 2026-09-10 | PASS |
| 13 | 5 | The four-step chain and the amendment gap | T2 — ours, a description of practice, stated as ours | — | PASS |
| 14 | 5 | The sidecar architecture — Azure tenancy, document stays put, person confirms | T2 — ours, capability language, no delivered-client claim and no metric | — | PASS |
Tier summary: 10 × T1 (all verbatim), 4 × T2 — 0 × T4.
All three sources fetched on 2026-09-10 before the claims were written. The renewal-mechanics page carries ms.date 2025-07-11 with a January 2026 update — the oldest source in this cluster, noted here rather than hidden, and its field names were checked against the vendor-contracts page fetched the same day.
Claim 9 is deliberately not an absence claim. We do not write "Microsoft documents no validation." We say a blank field and a genuine absence are indistinguishable to anyone reading the record, which follows from the field model itself.
No figures of ours. The dates in §2 are Microsoft's own worked example, quoted with their formatting. No digits appear in either lifted block — the codeunit number and the example dates stay in the body.
Product claims. §5 describes the architecture we build in capability language — "the shape that works is a sidecar app" — with no customer, no count, no measured result, and no claim that it runs in anyone's business. Paralegent AI is named only in the standing footer.
