# Can Dynamics 365 BC store vendor contract terms?

> Dynamics 365 Business Central can store a vendor's price, but not the rate card logic an invoice must be checked against before it is paid. Read the full guide.

Source: https://valuexpa.com/insights/can-dynamics-365-business-central-store-vendor-contract
Publisher: ValueXPA (https://valuexpa.com)
Updated: 2026-10-22

---

Margin drift is the gap between what a vendor contract says and what the invoice actually charges. Dynamics 365 Business Central sits at the center of that question for a lot of manufacturers, because it is where the vendor record, the purchase order and the posted invoice already live.

The honest answer is not yes or no. Business Central stores some contract terms natively, approximates others through workarounds, and has no field at all for a meaningful share of what a real service contract contains.

## Executive Summary

Business Central was built to record a price, not to enforce a contract. Its vendor and purchase card hold a unit cost, a purchase discount, and in some configurations a price list with effective dates. That covers a flat rate or a simple volume discount reasonably well.

It has no native structure for a rebate that triggers only after a spend threshold, a surcharge that should expire on a stated date, or a not-to-exceed cap on a service category. Those terms exist in the contract PDF, not in any Business Central table, so nothing in the system compares the invoice against them at posting time.

The result is a gap between what the ERP can check and what the contract actually promises. Three-way matching in Business Central confirms an invoice against a purchase order and a receipt. It says nothing about whether a surcharge should still be active or a volume tier should already have kicked in. Closing that gap takes either a manual reconciliation step against the contract file or a system built specifically to hold contract logic and test invoices against it.

## 1. What contract terms can Business Central actually store?

**Business Central stores a unit price on the vendor card, a purchase price list with effective start and end dates, and a line discount or purchase discount percentage. These fields hold a single negotiated rate and a simple volume break cleanly. They do not hold the conditional logic behind a rebate, a tiered surcharge schedule, or a cap tied to cumulative spend. What is stored is the price the system will suggest on a new purchase line, not a contract.**

The vendor card in Business Central carries fields for a default unit cost and a purchase discount. Combined with the purchase price and line discount tables, this is enough to encode "this vendor charges $X per unit" or "this vendor gives a discount above a set quantity."

Where it breaks down is anything with a condition attached. A rate card that says "the surcharge drops to zero after the fuel index falls below a stated level" has no home in these tables. Neither does a rebate clause that only pays out once annual spend crosses a threshold, because Business Central has no running counter tied to a contract term, only to a posted transaction history you would have to query separately.

So the honest scope is: single rates and simple, date-bound discounts, yes. Conditional or cumulative terms, no. That distinction matters because service contracts, freight and staffing agreements especially, are built out of the second category as often as the first.

## 2. Where do AP teams currently put the terms Business Central cannot hold?

**The terms that do not fit a Business Central field end up in the contract PDF itself, in a shared spreadsheet the AP team maintains alongside the ERP, or nowhere formal at all, remembered by whoever negotiated the deal. None of these locations is checked automatically when an invoice posts. The invoice clears three-way matching against the purchase order and receipt, and the contract clause it should have been tested against is never consulted.**

This is not a Business Central failing specifically. It is what happens whenever a contract's real logic is more conditional than an ERP's price fields allow. The contract lives in a document management folder or an email thread. A spreadsheet, if one exists, tracks the negotiated rates but has to be updated by hand every time a contract renews or a rate schedule changes.

Neither the PDF nor the spreadsheet is wired into the posting process. An AP clerk approving an invoice sees that it matches the purchase order. Nobody at that point pulls up the contract to check whether the accessorial charge on line four is still within its stated term.

## 3. What does three-way matching in Business Central actually check?

**Three-way matching in Business Central confirms that the invoice quantity and price agree with the purchase order and that a receipt exists for the goods or service billed. It does not test whether a surcharge has expired, whether a rebate threshold has been crossed, or whether a rate matches a tiered schedule rather than the flat rate stored on the vendor card. It checks agreement between three documents, not compliance with a contract.**

This is worth stating precisely because it is a common source of false confidence. A manufacturer with three-way matching turned on in Business Central reasonably assumes its invoices are controlled. The control that exists checks internal consistency: does the invoice say what the PO said, does a receipt back it up.

A surcharge that was contractually supposed to end six months ago but keeps appearing on the invoice will match the purchase order perfectly, if the PO itself carried the same stale rate forward. Three-way matching has no independent view of the contract, so it cannot catch a drift that both documents agree on.

The same is true of a volume rebate. The invoice can be arithmetically correct against the rate charged and still be wrong against the rate the contract actually earned once the volume tier was crossed.

## 4. Can a workaround close the gap inside Business Central itself?

**Partial workarounds exist inside Business Central: purchase price lists with date ranges approximate simple rate changes, and dimensions can tag spend by category for reporting. Neither tests a conditional clause at the moment an invoice posts. A workaround built from these fields still requires someone to reread the contract and update the fields by hand whenever terms change, which reintroduces the same manual step the ERP was supposed to remove.**

Two configuration paths get used most often, and both are described below. Neither substitutes for reading the contract at posting time, so both leave the same manual review step in place that a purpose-built control would remove.

### A. Price lists with effective dates

A purchase price list entry can carry a start and end date, which handles a scheduled rate change if someone remembers to enter it before the change takes effect. It does not handle a condition that depends on the vendor's own billing history, such as a rebate tier, because Business Central has no field for "if cumulative spend exceeds this amount."

### B. Dimensions and analysis views

Dimensions let a company tag every purchase line by vendor category, cost center or contract reference, which is useful for reporting spend after the fact. It is a labeling tool, not an enforcement one. Tagging a line as "freight, contract 4471" does not stop an incorrect rate on that line from posting.

## 5. Is this a Business Central limitation or true of ERPs generally?

**This is general to ERPs, not specific to Business Central. Every ERP built to record a transaction and post it to the general ledger is optimized for that job, not for interpreting a contract's unstructured conditional logic. The contract lives in a PDF outside the system regardless of which ERP a company runs. Closing that gap has always required either a manual review process or a purpose-built layer that reads the contract and tests invoices against it.**

It is worth separating the ERP's job from the contract's job. An ERP posts transactions, tracks balances, and produces financial statements. A service contract encodes conditional business logic: rate tiers, rebate triggers, surcharge expirations, not-to-exceed caps. Those are two different kinds of information, and an ERP schema built around the first was never going to naturally hold the second.

Manufacturers running [NetSuite, Epicor Kinetic, or QuickBooks Enterprise](/insights/freight-and-3pl-controls-in-netsuite) hit the identical wall. The vendor card holds a price. The contract that justified that price sits in a folder somewhere else. This is why the gap shows up as margin drift no matter which system a company standardizes on, and why fixing it is a question of process and tooling layered on top of the ERP rather than a configuration setting inside it.

## 6. What should an AP team do about the terms Business Central cannot hold?

**Start by identifying which contracts carry conditional terms, rebate thresholds, surcharge expirations, volume tiers, not-to-exceed caps, since those are exactly the terms Business Central cannot enforce natively. Those contracts need a periodic invoice-to-contract review outside the ERP until a dedicated control is in place. A diagnostic pass across historical invoices against the underlying contracts is the fastest way to find out how much has already drifted.**

The practical first step is not a system change. It is a list: which vendor contracts in freight, contract labor, maintenance, IT services and MRO carry terms more complex than a flat rate. Those are the contracts where a Business Central match on the invoice tells you nothing about compliance.

For those contracts, someone needs to periodically pull the invoice history and compare it line by line against the contract's rate card, rebate clause and surcharge schedule. That is manual work, and it is also the fastest way to find out whether drift has already accumulated, because it looks backward across spend that has already posted.

A structured review of 12 to 18 months of historical spend, across ValueXPA diagnostics, is what surfaces this kind of drift before a company decides whether an ongoing control is worth building.

For the wider pattern this sits inside, start with the margin drift guide. See also [the six categories drift hides in](/insights/indirect-spend-audit-categories) and what is margin erosion: causes and prevention for manufacturers.

For the wider pattern this sits inside, start with the [margin drift](/insights/best-invoice-validation-software-smb) guide.

## 7. Frequently Asked Questions (People Also Ask)

### Does Business Central check invoices against contract terms automatically?

No. Business Central's three-way match checks the invoice against the purchase order and a receipt. It does not read the underlying contract, so a rate that matches a stale purchase order will pass even if it violates the contract's current terms.

### Can I add custom fields to Business Central to hold rebate rules?

You can add fields, but a field alone does not enforce anything. Business Central has no engine to evaluate a conditional rule like a rebate threshold against posted transaction history at the moment an invoice is entered.

### Is a purchase price list the same as a contract?

No. A purchase price list holds a rate and optional effective dates. A contract can include rebate triggers, surcharge expirations and not-to-exceed caps, none of which have a corresponding field in the price list.

### Why does an invoice pass three-way matching if the rate is wrong?

Three-way matching confirms agreement between the invoice, the purchase order and the receipt. If the purchase order itself carries a stale or incorrect rate, the invoice will match it exactly and still clear, because the match has no independent reference to the contract.

### Do other ERPs like NetSuite or Epicor handle contract terms any better?

The same structural gap applies. ERPs are built to record and post transactions, not to interpret unstructured contract logic. Rate tiers, rebate clauses and surcharge schedules live in a contract document outside the ERP regardless of which system a company runs.

### What is the fastest way to find out how much has already drifted?

A structured review of historical invoices against the underlying contracts, line by line, across the categories most likely to carry conditional terms: freight, contract labor, maintenance, IT services and MRO.

### Should we build a spreadsheet to track contract terms alongside Business Central?

A spreadsheet can hold the terms Business Central cannot, but it has to be updated by hand at every renewal and is not wired into the posting process, so it will not stop a non-compliant invoice from clearing.

### Does this problem apply to all vendor categories or just freight?

It applies wherever a contract includes conditional terms rather than a flat rate. Freight, contract labor, maintenance and IT services contracts commonly include rebate, surcharge or cap clauses that a price-recording system like Business Central was not built to hold.

### Is contract complexity quietly draining your operating margin?

A small systematic drift between your negotiated contracts and your actual vendor billing compounds quietly across a year of invoices. Stop guessing at your exposure and run a targeted audit.

**[Take the Free Screener → https://valuexpa.com/margin-drift-screener](https://valuexpa.com/margin-drift-screener)**

## Executive Summary

Business Central was built to record a price, not to enforce a contract. Its vendor and purchase card hold a unit cost, a purchase discount, and in some configurations a price list with effective dates. That covers a flat rate or a simple volume discount reasonably well. It has no native structure for a rebate that triggers only after a spend threshold, a surcharge that should expire on a stated date, or a not-to-exceed cap on a service category. Those terms exist in the contract PDF, not in any Business Central table, so nothing in the system compares the invoice against them at posting time. The result is a gap between what the ERP can check and what the contract actually promises. Three-way matching in Business Central confirms an invoice against a purchase order and a receipt. It says nothing about whether a surcharge should still be active or a volume tier should already have kicked in. Closing that gap takes either a manual reconciliation step against the contract file or a system built specifically to hold contract logic and test invoices against it.

## 1. What contract terms can Business Central actually store?

Business Central stores a unit price on the vendor card, a purchase price list with effective start and end dates, and a line discount or purchase discount percentage. These fields hold a single negotiated rate and a simple volume break cleanly. They do not hold the conditional logic behind a rebate, a tiered surcharge schedule, or a cap tied to cumulative spend. What is stored is the price the system will suggest on a new purchase line, not a contract. The vendor card in Business Central carries fields for a default unit cost and a purchase discount. Combined with the purchase price and line discount tables, this is enough to encode "this vendor charges $X per unit" or "this vendor gives a discount above a set quantity." Where it breaks down is anything with a condition attached. A rate card that says "the surcharge drops to zero after the fuel index falls below a stated level" has no home in these tables. Neither does a rebate clause that only pays out once annual spend crosses a threshold, because Business Central has no running counter tied to a contract term, only to a posted transaction history you would have to query separately. So the honest scope is: single rates and simple, date-bound discounts, yes. Conditional or cumulative terms, no. That distinction matters because service contracts, freight and staffing agreements especially, are built out of the second category as often as the first.

## 2. Where do AP teams currently put the terms Business Central cannot hold?

The terms that do not fit a Business Central field end up in the contract PDF itself, in a shared spreadsheet the AP team maintains alongside the ERP, or nowhere formal at all, remembered by whoever negotiated the deal. None of these locations is checked automatically when an invoice posts. The invoice clears three-way matching against the purchase order and receipt, and the contract clause it should have been tested against is never consulted. This is not a Business Central failing specifically. It is what happens whenever a contract's real logic is more conditional than an ERP's price fields allow. The contract lives in a document management folder or an email thread. A spreadsheet, if one exists, tracks the negotiated rates but has to be updated by hand every time a contract renews or a rate schedule changes. Neither the PDF nor the spreadsheet is wired into the posting process. An AP clerk approving an invoice sees that it matches the purchase order. Nobody at that point pulls up the contract to check whether the accessorial charge on line four is still within its stated term.

## 3. What does three-way matching in Business Central actually check?

Three-way matching in Business Central confirms that the invoice quantity and price agree with the purchase order and that a receipt exists for the goods or service billed. It does not test whether a surcharge has expired, whether a rebate threshold has been crossed, or whether a rate matches a tiered schedule rather than the flat rate stored on the vendor card. It checks agreement between three documents, not compliance with a contract. This is worth stating precisely because it is a common source of false confidence. A manufacturer with three-way matching turned on in Business Central reasonably assumes its invoices are controlled. The control that exists checks internal consistency: does the invoice say what the PO said, does a receipt back it up. A surcharge that was contractually supposed to end six months ago but keeps appearing on the invoice will match the purchase order perfectly, if the PO itself carried the same stale rate forward. Three-way matching has no independent view of the contract, so it cannot catch a drift that both documents agree on. The same is true of a volume rebate. The invoice can be arithmetically correct against the rate charged and still be wrong against the rate the contract actually earned once the volume tier was crossed.

## 4. Can a workaround close the gap inside Business Central itself?

Partial workarounds exist inside Business Central: purchase price lists with date ranges approximate simple rate changes, and dimensions can tag spend by category for reporting. Neither tests a conditional clause at the moment an invoice posts. A workaround built from these fields still requires someone to reread the contract and update the fields by hand whenever terms change, which reintroduces the same manual step the ERP was supposed to remove. Two configuration paths get used most often, and both are described below. Neither substitutes for reading the contract at posting time, so both leave the same manual review step in place that a purpose-built control would remove. ### A. Price lists with effective dates A purchase price list entry can carry a start and end date, which handles a scheduled rate change if someone remembers to enter it before the change takes effect. It does not handle a condition that depends on the vendor's own billing history, such as a rebate tier, because Business Central has no field for "if cumulative spend exceeds this amount." ### B. Dimensions and analysis views Dimensions let a company tag every purchase line by vendor category, cost center or contract reference, which is useful for reporting spend after the fact. It is a labeling tool, not an enforcement one. Tagging a line as "freight, contract 4471" does not stop an incorrect rate on that line from posting.

## 5. Is this a Business Central limitation or true of ERPs generally?

This is general to ERPs, not specific to Business Central. Every ERP built to record a transaction and post it to the general ledger is optimized for that job, not for interpreting a contract's unstructured conditional logic. The contract lives in a PDF outside the system regardless of which ERP a company runs. Closing that gap has always required either a manual review process or a purpose-built layer that reads the contract and tests invoices against it. It is worth separating the ERP's job from the contract's job. An ERP posts transactions, tracks balances, and produces financial statements. A service contract encodes conditional business logic: rate tiers, rebate triggers, surcharge expirations, not-to-exceed caps. Those are two different kinds of information, and an ERP schema built around the first was never going to naturally hold the second. Manufacturers running [NetSuite, Epicor Kinetic, or QuickBooks Enterprise](/insights/freight-and-3pl-controls-in-netsuite) hit the identical wall. The vendor card holds a price. The contract that justified that price sits in a folder somewhere else. This is why the gap shows up as margin drift no matter which system a company standardizes on, and why fixing it is a question of process and tooling layered on top of the ERP rather than a configuration setting inside it.

## 6. What should an AP team do about the terms Business Central cannot hold?

Start by identifying which contracts carry conditional terms, rebate thresholds, surcharge expirations, volume tiers, not-to-exceed caps, since those are exactly the terms Business Central cannot enforce natively. Those contracts need a periodic invoice-to-contract review outside the ERP until a dedicated control is in place. A diagnostic pass across historical invoices against the underlying contracts is the fastest way to find out how much has already drifted. The practical first step is not a system change. It is a list: which vendor contracts in freight, contract labor, maintenance, IT services and MRO carry terms more complex than a flat rate. Those are the contracts where a Business Central match on the invoice tells you nothing about compliance. For those contracts, someone needs to periodically pull the invoice history and compare it line by line against the contract's rate card, rebate clause and surcharge schedule. That is manual work, and it is also the fastest way to find out whether drift has already accumulated, because it looks backward across spend that has already posted. A structured review of 12 to 18 months of historical spend, across ValueXPA diagnostics, is what surfaces this kind of drift before a company decides whether an ongoing control is worth building. For the wider pattern this sits inside, start with the margin drift guide. See also [the six categories drift hides in](/insights/indirect-spend-audit-categories) and what is margin erosion: causes and prevention for manufacturers. For the wider pattern this sits inside, start with the [margin drift](/insights/best-invoice-validation-software-smb) guide.

## Common questions

### Does Business Central check invoices against contract terms automatically?

No. Business Central's three-way match checks the invoice against the purchase order and a receipt. It does not read the underlying contract, so a rate that matches a stale purchase order will pass even if it violates the contract's current terms.

### Can I add custom fields to Business Central to hold rebate rules?

You can add fields, but a field alone does not enforce anything. Business Central has no engine to evaluate a conditional rule like a rebate threshold against posted transaction history at the moment an invoice is entered.

### Is a purchase price list the same as a contract?

No. A purchase price list holds a rate and optional effective dates. A contract can include rebate triggers, surcharge expirations and not-to-exceed caps, none of which have a corresponding field in the price list.

### Why does an invoice pass three-way matching if the rate is wrong?

Three-way matching confirms agreement between the invoice, the purchase order and the receipt. If the purchase order itself carries a stale or incorrect rate, the invoice will match it exactly and still clear, because the match has no independent reference to the contract.

### Do other ERPs like NetSuite or Epicor handle contract terms any better?

The same structural gap applies. ERPs are built to record and post transactions, not to interpret unstructured contract logic. Rate tiers, rebate clauses and surcharge schedules live in a contract document outside the ERP regardless of which system a company runs.

---

ValueXPA runs a fixed-scope Margin Drift Diagnostic that validates every service vendor invoice against contract terms, for $100M+ US industrial manufacturers and distributors. Two to four weeks. The client retains 100% of recoveries. https://valuexpa.com/contact-us
