Accounts Payable Automation for Business Central and Dynamics 365 F&O
Business Central and D365 F&O know which purchase orders are open. They don't know that a supplier billed in cases when the PO ordered eaches, or that one damaged-parts credit memo on a consolidated invoice shouldn't hold up the other 49 lines. Here's the matching architecture that fixes that, from a production build.

Key Takeaway
Business Central and D365 F&O know which purchase orders are open. They don't know that a supplier billed in cases when the PO ordered eaches, or that one damaged-parts credit memo on a consolidated invoice shouldn't hold up the other 49 lines. Here's the matching architecture that fixes that, from a production build.
The Gap: Your ERP Posts Invoices, It Doesn't Match Them
Business Central and Dynamics 365 F&O accounts payable automation means putting an extraction-and-matching layer in front of the ERP that reads every supplier invoice, resolves it against the live purchase order, handles the SKU and unit-of-measure mismatches that are normal in real procurement, and hands staff a review screen where only genuine exceptions need a human -- while the ERP stays the untouched system of record for what gets posted.
Both ERPs give you purchase-order-to-invoice matching out of the box, and for a clean world -- one supplier SKU per PO line, one invoice per PO, matching units of measure -- it's fine. Real AP doesn't work that way. Suppliers issue one consolidated invoice covering fifty deliveries. They bill in cases when the PO ordered eaches. Partial shipments and backorders mean an invoice almost never maps one-to-one onto its PO. A single damaged-parts credit memo on four of those fifty lines can, under a strict three-way-match policy, block release of the entire payment -- teams on r/Accounting describe exactly this: a six-figure payment held up by a low-value discrepancy on one line of a much larger invoice. That's not a Business Central or D365 problem specifically; it's what happens when native ERP matching meets messy supplier data everywhere.
We've built this exact pattern in production -- AI extraction, deterministic PO/SKU/UOM matching with an AI fallback, and a hard reconciliation gate -- for a Canadian industrial safety distributor processing ~1,500 supplier invoices a month against purchase orders in Infor CloudSuite Distribution. The architecture doesn't care which ERP sits behind the API call. The rest of this guide is that pattern, and how it maps onto Business Central's OData/API surface and D365 F&O's Data Management Framework.
Your Three Options for AP Automation on Business Central or D365 F&O
Same decision shape as any ERP-adjacent build: buy an add-on, buy a SaaS layer, or build on your own Azure tenant.
| ERP-native ISV add-ons | Generic AP SaaS | Custom platform on your Azure tenant | |
|---|---|---|---|
| Examples | Continia Document Capture (BC), native D365 F&O vendor invoice matching policies | Yooz, Beanworks, Stampli, Medius | Built on Azure Functions/Container Apps + the ERP's own API |
| Fit with ERP data | Native | Via connector, invoice data copied out | Direct API calls, nothing copied or stored outside your tenant |
| Handles inconsistent supplier SKUs / UOM | Rarely, without custom rules | Rarely, generic matching logic | By design -- per-supplier rules plus an AI fallback |
| Data leaves your tenant | No | Yes | No |
| Cost shape | Per user/month forever | Per user/month forever, mid-market pricing from ~$400-800/mo | One-time build + minor Azure running costs |
| Time to live | Days-weeks | Weeks | Weeks |
The honest rule of thumb is the same one we give for AR: if your suppliers bill cleanly and one-to-one against POs, an add-on or SMB SaaS tool will be live faster, and we'll say so in an assessment. The custom route earns its cost when the matching itself is the hard part -- inconsistent SKU codes per supplier, mixed units of measure, invoices that span multiple POs or partial shipments. That's most mid-market AP, not an edge case.
The Architecture: Deterministic Matching First, AI for the Edges, One Controlled Write-Back
AP is not AR. Our AR builds keep the ERP strictly read-only because collections activity never needs to touch the ledger. AP is different: an approved, matched invoice genuinely needs to post. So the architecture has one deliberate write path instead of none:
- Extraction, decoupled from matching. A PDF processor converts each invoice to structured text in milliseconds; an LLM pulls out vendor, invoice number, dates, currency, totals and the full line-item array against a strict, schema-validated output -- so a malformed extraction fails loudly instead of posting silently.
- PO resolution against the live ERP, never against the invoice's own claim. The extracted PO reference is looked up through the ERP's API in real time -- Business Central's OData/API pages, or D365 F&O's Data Management Framework/OData endpoints -- which confirms the canonical vendor before the invoice is treated as genuine. Who the invoice says it's from is never trusted on its own.
- Deterministic matching first. SKU-containment and price logic, with explicit unit-of-measure conversion, pairs each invoice line to its PO line automatically wherever the pattern is predictable. This resolves the majority of lines without AI involved at all -- it's cheaper, faster and fully explainable to an auditor.
- AI fallback only for the leftovers. Lines the deterministic logic can't resolve go to an AI matcher that reports its own confidence. Low-confidence and unreconciled lines route to a review queue; everything else stays in the fast lane.
- One controlled write: the ERP-ready import. Approved, fully-matched invoices export as a clean import batch -- a purchase invoice in Business Central, a vendor invoice journal in D365 F&O. Nothing writes to the ERP until a human (or a high-confidence automated pass, if you choose to enable it) has signed off. That's the single write path, and it's the only one.
Why a Damaged-Parts Credit Memo Shouldn't Hold Up the Other 49 Lines
This is the failure mode that makes generic AP tools and strict native ERP matching break down at scale: one supplier sends a single consolidated invoice for fifty deliveries, one of those has a damaged-parts credit memo attached, and a rigid three-way-match policy holds the entire invoice -- and therefore the entire payment -- until every line clears. On a large enough invoice that's a six-figure sum stuck behind a low-value dispute.
The fix isn't looser matching, it's matching at the right granularity. The pipeline treats each invoice line as its own matching decision, not the invoice as one pass/fail unit:
- Clean lines settle independently. The 49 lines that match cleanly against their PO lines clear straight through, regardless of what's happening on line 50.
- Exceptions carry a recorded reason. The damaged-parts line routes to review with the specific mismatch attached -- quantity variance, price variance, unmatched SKU -- instead of a blanket "invoice failed matching."
- Partial approval, partial hold. Finance can release payment for the matched lines and hold only the disputed one, instead of choosing between paying everything unverified or holding everything hostage.
The same logic handles the other two common breakers: a supplier billing in cases when the PO ordered eaches (unit-of-measure conversion, applied per supplier), and an invoice that spans multiple partial shipments against one PO (line-level matching against remaining PO quantity, not a one-shot invoice-to-PO comparison).
Streamline Your Financial Operations
Join hundreds of businesses already saving time with FinTask. Get a personalised demo today.
The Accuracy Gate: Catching the AI's Own Mistakes
Trusting AI extraction without verification is how automation projects lose finance teams' confidence. Every invoice passes a mathematical reconciliation gate before anything proceeds -- extracted line totals are summed and checked against the invoice's own printed subtotal. If they don't reconcile, the invoice routes to review automatically, no matter how confident the extraction looked.
In the first production run of the build described above, that gate caught the AI misreading an extended line total as a unit price -- a $23,908 error on a $4,391 invoice -- and routed it to review before it could touch a PO match, let alone a payment. Across the validation set, 12 of 13 real production invoices reconciled to the cent on the first pass; the thirteenth was exactly the case the gate exists for.
Self-improving matching compounds this over time: when the AI fallback successfully resolves a new supplier's SKU pattern -- "this vendor prefixes our part number with their own line code" -- that resolution is flagged as a candidate rule. Once confirmed, it becomes a deterministic match going forward. The AI's job shrinks to genuinely new patterns; everything it's already solved for a given supplier stops needing AI at all.
What This Changes Operationally
Ardent Partners' 2025 AP benchmarking puts the average cost to process an invoice at $9.40, against $2.78 for best-in-class touchless processing -- roughly a third. At volume -- the reference build processes ~1,500 invoices a month, each PDF converted to structured data in under a second -- that difference is the AP team's week back. More importantly, the job changes shape: from keying and chasing PO numbers to reviewing the exceptions the system couldn't resolve on its own, which is where an AP analyst's judgment actually adds value.
The platform runs on Azure -- Container Apps for the pipeline, Blob Storage for invoice PDFs, managed identities with no stored keys, staff signing in through Microsoft Entra ID. For a Business Central or D365 F&O deployment, that stack is unchanged; only the ERP-facing adapter swaps -- Business Central's API pages instead of Infor's API gateway, or D365 F&O's OData/Data Management endpoints. The matching engine, the accuracy gate, and the review UI don't know or care which ERP they're pointed at.
Where to Start
If your AP team is still opening PDFs and keying PO lookups by hand, the questions that determine build shape are: how consistent are your suppliers' SKU codes against your own, how often do units of measure differ between PO and invoice, and how often does one invoice span more than one PO or shipment? The messier the answers, the more a deterministic-plus-AI matching layer earns its keep over a generic tool.
Those questions are exactly what our AI readiness assessment establishes before any build starts. If you want the production detail behind the numbers in this guide: the AI invoice processing case study. For the broader pattern across AP, AR and job costing on Microsoft ERPs, see ERP finance automation.
Frequently Asked Questions
Does Business Central or Dynamics 365 F&O have built-in AP invoice matching?
Partially. Both ERPs support purchase-order-to-invoice matching natively, and it works well when a supplier's SKU codes, units of measure and invoice structure line up cleanly with the PO. It struggles with the normal messiness of real procurement -- inconsistent supplier part numbers, unit-of-measure mismatches, consolidated invoices spanning multiple deliveries, and partial shipments. Those are exactly the cases where a matching layer in front of the ERP earns its cost.
Should approved invoices write back into Business Central or D365 F&O automatically?
Yes, but through one controlled path, not open write access. Unlike our AR builds -- which keep the ERP strictly read-only because collections activity never needs to post -- AP invoices genuinely need to reach the ledger. The pattern is: extraction and matching happen entirely outside the ERP, and only a clean, fully-matched, approved invoice generates an ERP-ready import (a purchase invoice in Business Central, a vendor invoice journal in D365 F&O). Nothing else touches the ERP.
How does this handle a supplier who bills in cases when the PO ordered eaches?
Unit-of-measure conversion is handled as deterministic, per-supplier logic wherever the conversion is predictable -- so 'case of 24' resolves against a PO line ordered in eaches automatically. Where a supplier's pattern is genuinely inconsistent, admins write a plain-language rule ('this vendor's cases contain 12, not 24') and the AI applies it; once confirmed, it becomes a standing deterministic rule rather than an AI call every time.
Does one bad line on a consolidated invoice block payment for the whole thing?
No -- and this is the specific failure mode the architecture is built to avoid. Each invoice line is matched and approved independently. A damaged-parts credit memo or quantity dispute on one line routes to review with the reason attached, while the other lines on the same invoice clear and pay on their normal schedule. A rigid three-way-match policy that holds the entire invoice over one line's discrepancy is a policy choice, not a technical requirement.
Do you need Azure Synapse or Microsoft Fabric for this, like the AR builds?
No. AR automation benefits from a data warehouse because collections work needs a consolidated, historical view of the whole ledger. AP matching needs a live, real-time PO lookup at the moment an invoice arrives, which is a direct API call to Business Central or D365 F&O -- a warehouse layer would add latency without adding value here.
How long does a Business Central or D365 F&O AP automation build take?
Weeks, not months, for the core extraction-and-matching pipeline, when the ERP's API access is already in place. The main driver of timeline isn't the technology -- it's how many distinct supplier SKU/UOM patterns exist in your vendor base, since each one that needs an explicit rule adds a small amount of setup, not architectural complexity.
Ready to Automate Your Accounting?
See how FinTask can save your team hours every week with AI-powered automation. Book a free consultation to get started.

Written by Reza Shahrokhi ACA
Chartered Accountant (Chartered Accountants Ireland) • Founder of FinTask • 8+ years in finance & automation
Reza is a Chartered Accountant and the founder of FinTask. He specialises in helping growing businesses automate accounts payable, invoice processing, and financial reconciliation using AI-powered tools integrated with Xero and QuickBooks.
More about the authorRelated Articles
Accounts Receivable Automation for Dynamics 365 Business Central
Business Central knows which invoices are open. It doesn't know who promised to pay, which dispute is blocking a six-figure payment, or whose turn it is to chase. Here's how mid-market teams close that gap -- with the architecture from two production builds, an $11.8M ledger and a €7.6M one.
14 min readERP Finance AutomationMicrosoft Fabric for Finance Teams: From Reporting to Automation
Companies deploy Microsoft Fabric, wire Business Central into the medallion layers, build Power BI dashboards -- and stop. The same Gold layer that feeds your dashboards can feed systems that do finance work. Here's what that looks like in production.
12 min readERP Finance AutomationJob Costing Automation with Sage: Real-Time Project Profitability
Sage holds your books; your job costs live in fuel cards, timesheets, supplier feeds and telematics. Reconstructing profitability by hand in Excel means you find out whether a job made money a quarter late -- if at all. Here's the source-data-first pattern that fixes it, from a production build.
13 min readERP Finance AutomationJob Costing and Project Profitability on Dynamics 365 Finance & Operations
D365 F&O's Project management and accounting module knows what's been posted to a project. It doesn't know what a piece of plant cost today, what a subcontractor is about to invoice, or whether a change order was ever priced. Here's where native project accounting stops being enough, and the architecture that closes the gap, from a production build.
13 min read