Stack of paper invoices being processed
Business Central extension · Live

Email lands. Invoice posts.

An autonomous AP agent for Microsoft Dynamics 365 Business Central. Vendor invoices arrive in your mailbox; the agent extracts every field with Claude, runs a real three-way PO match, and posts the Purchase Invoice in BC — touchlessly when confidence is high, into an approver's queue when it isn't.

  • Multi-channel intake: email, upload, ZIP, drag-drop
  • Three-way PO match · variance tolerances
  • Per-vendor AI model routing
  • 142 automated AL tests shipped

Built for the Microsoft stack

Microsoft Partner — Business CentralAnthropic Claude API Partner142 automated AL tests
Why this is different

Not a chat widget. A production AP agent inside Business Central.

Most AI invoice tools live outside your ERP — extract elsewhere, paste into BC, hope nothing changed in transit. Ours runs natively as an AL extension. Reads BC. Writes BC. Reconciles against your live PO and receipt data. Posts the invoice. All inside the four walls.

Native AL inside BC

No middleware. No external sync. The agent runs as an AL extension on BC SaaS or On-Premises. Reads vendor cards, POs and receipts directly. Posts the invoice using BC's own posting routines. Source PDFs land in BC Media + Incoming Document — they survive posting.

Multi-model, per vendor

Different vendors deserve different models. Route strategic suppliers to Opus for complex multi-page invoices; routine vendors to Haiku for cost. Every routing decision is logged. Token consumption tracked per model per company with budget thresholds.

Audit-grade by construction

API key in Isolated Storage, [NonDebuggable] getter, 3 permission sets, immutable Activity Log, source-survives-posting via Incoming Document. Three-way matching with canonical hash for duplicate detection. 142 AL tests in CI.

The pipeline

From PDF to Posted Purchase Invoice in six stages.

Every stage is observable in the Invoice Inbox. Failures route to a Needs-Review queue with a clear reason, not a silent retry loop.

Stage 01
Queued
PDF arrives via upload, email, drag-drop or ZIP batch. Source persisted as Media blob.
Stage 02
Rendering
DOCX → PDF via pluggable subscriber. Skipped for native PDF.
Stage 03
Extracting
OCR + Claude on the PDF with per-field confidence scores.
Stage 04
Mapped
Vendor, Item, UOM, Tax, Currency, Payment Terms resolved via 7 mapping tables.
Stage 05
Reconciled
Line-sum, header totals, tax variance, canonical hash + three-way PO match.
Stage 06
Draft / Posted
Purchase Invoice draft created. Touchless post above confidence threshold.
Auto-posted
Confidence ≥ 0.98. No human touch. Direct to GL.
Draft / Needs Review
0.85 ≤ confidence < 0.98 or reconciliation flag. Reviewer queue.
Error
API failure, render failure, vendor unresolvable. Activity Log captures why.
Multi-channel intake

Invoices arrive however your vendors send them.

Email, manual upload, ZIP batch, drag-drop — and roadmap channels for SharePoint, OneDrive and mobile capture. All routes lead to the same pipeline.

Email intake

Forward invoices to a monitored mailbox. Microsoft Graph and IMAP providers via companion app.

Manual upload

AP clerk picks a PDF or DOCX from the Invoice Inbox. Simplest path; works day-one.

ZIP batch upload

Drop a ZIP of up to 50 invoices; they ingest with a shared Batch Reference for tracking.

Drag-and-drop

Drop files onto the Invoice Inbox FactBox; chunked upload for large bundles.

Cloud storage (roadmap)

SharePoint, OneDrive and Google Drive folder watchers via companion apps.

Mobile capture (roadmap)

Field staff photograph paper invoices; companion mobile app pushes to BC.

Multi-language by default

Vendors don't send invoices in your locale. We auto-detect the source language and guarantee extraction quality across 10 — including English, Hindi, Bengali, Tamil, Marathi, Gujarati, Spanish, French, German, Arabic. The remaining 100+ languages Claude understands work via on-demand translation, with the source language label preserved per field for audit.

  • Auto-detect from PDF text + layout
  • 10-language guarantee — fully tested
  • 100+ languages via translation
  • Locale-aware dates and numbers
  • Per-field source-language audit label

Per-vendor model routing

Different vendors deserve different models. Set a model override on each vendor card — strategic suppliers route to Opus for complex multi-page invoices, routine vendors stay on Haiku for cost. Email-domain matching pre-resolves the route before the first extraction. Every model selection is logged in the Activity Log.

  • Vendor-card override (Setup → tab)
  • Email-domain pre-resolution
  • Per-model timeout / retry / max-output
  • Token consumption per model per company
  • Budget threshold notifications
  • Audit trail on every selection
Reviewer workflow

Built for AP teams clearing 50+ invoices in a coffee break.

Auto-post the clean ones. Review the rest — efficiently. Side-by-side PDF, bulk actions, audited reject reasons, auto-learn from corrections so the same vendor extracts cleanly next time.

≥0.98
auto-post threshold
50+
bulk in one click

Side-by-side PDF review

Original PDF and extracted fields side-by-side. Click a line item, the PDF highlights it. Click a vendor, you see the source.

Bulk actions

Bulk-Post, Bulk-Reject and Bulk-Reprocess from the Inbox. AP clerks clear 50+ invoices in a few clicks on high-volume days.

Reject with audited reason

Reject (single or bulk) with a structured reason. The Activity Log captures who, when, why — survives forever.

Auto-learn from corrections

When a reviewer fixes a vendor or item mapping, the agent remembers — so the next invoice from that vendor extracts cleanly first time.

Under the hood

Built the BC way — auditable, isolated, no surprises.

A production AL extension that respects BC's security model, Job Queue framework, Isolated Storage and Incoming Document. Nothing exotic; nothing brittle; nothing that breaks on the next BC SaaS update.

142 automated AL tests in CI. Schema versioned via Upgrade codeunits. Smoke-tested across W1, US, DE and IN localizations.

Business Central
  • BC Online (SaaS) + On-Premises
  • W1 v27+ — no country dependencies
  • AL extension language
  • Production AL objects with audit
  • Job Queue Entries for orchestration
  • Incoming Document framework
AI & extraction
  • Anthropic Claude (Sonnet, Opus, Haiku)
  • Per-vendor model routing
  • Per-model call overrides
  • Token consumption tracking
  • Confidence scoring per field
  • Multi-language (10-language guarantee)
Mapping & reconciliation
  • 7 mapping tables (Vendor, Item, UOM, Tax, Currency, Payment Terms, G/L)
  • Vendor aliases with email-domain matching
  • Three-way PO + Receipt matching
  • FR-9.1 to FR-9.10 reconciliation rules
  • Tax variance + rounding tolerance
  • Auto-learn from reviewer corrections
Security & audit
  • API key in Isolated Storage (AES at rest)
  • [NonDebuggable] getter — debugger-safe
  • 3 permission sets (User / Manager / Admin)
  • Immutable Activity Log
  • Source PDF survives posting
  • Canonical hash for duplicate detection
Industries running this

If you have a vendor inbox, we have a use case.

Manufacturing-heavy with hundreds of small vendors? Retail with predictable monthly invoices? Either way, the pipeline adapts via your mapping tables and per-vendor model routing.

Manufacturing
Wholesale & Distribution
Jewellery & Bullion
Hospitality
Restaurants & F&B
Finance & BFSI
Education
Professional Services
Going live

Six steps. Most customers live in two weeks.

Install on sandbox first. Set up. Seed mappings. Train the AP team. Cut over with a parallel run. Production typically in 10–14 working days.

1
week sandbox
2
weeks to production
Stack of receipts and invoices
Inside your BC, your tenant

Runs as a native AL extension on your BC tenant. No third-party middleware to license, monitor or audit.

01

Install on sandbox

Deploy the extension to a BC sandbox tenant. Smoke-test on a few real invoices.

Deliverable: Working sandbox tenant
02

Configure Setup

API endpoint + API key (Isolated Storage), thresholds, intake channels, active model.

Deliverable: Setup configured
03

Seed mappings

Currency aliases, tax mappings, optional UOM + Item cross-references + G/L patterns.

Deliverable: Mapping tables loaded
04

Train AP team

Permission set assignment, reviewer workflow training, bulk actions walk-through.

Deliverable: Trained AP team
05

Parallel run

Run side-by-side with manual entry for 2 weeks. Validate confidence calibration.

Deliverable: Parallel-run sign-off
06

Cut over

Deploy to production tenant. Configure intake channels live. Monitor for first week.

Deliverable: Live in production
The bar we ship at

Numbers we'll commit to — and audit against.

142
AL tests in CI
10
Languages guaranteed
≥0.98
Auto-post threshold
FR-9.1–9.10
Reconciliation rules

API key in Isolated Storage

`DataScope::Module`, tenant-scoped, AES at rest. `[NonDebuggable]` getter — can't be inspected from the AL debugger.

Immutable Activity Log

Every state transition, every model selection, every reject reason — captured forever in an append-only log.

Source PDF survives posting

Stored as a Media blob and linked via Incoming Document. Drill from a posted invoice back to the original PDF, always.

Case studies

Two AP stories — placeholders till the real ones land.

Real customer names and metrics available on a discovery call.

Manufacturing · 1,200+ vendor invoices/month · placeholder
Problem

AP team of 5 spending 80% of the month typing invoices from email + paper. Three-way PO matching done manually in Excel. Posting cycle running 6 days behind real-time.

What we did

Deployed the OCR AI Payable Agent with email intake + per-vendor model routing (Opus for 30 strategic suppliers, Haiku for the long tail). Three-way matching configured against open POs and posted receipts.

Outcomes
  • Touchless posting: 0% → 68% in first quarter
  • AP cycle time: 47 min → 6 min per invoice
  • Posting lag: 6 days → 1 day
Distribution · multi-language vendors · placeholder
Problem

Vendors invoicing in English, Hindi and German depending on the geography. AP team manually translated and re-keyed. Errors per invoice: 1 in 8.

What we did

Enabled the 10-language extraction with auto-detect. Per-field source-language labels preserved for audit. Mapping tables seeded for each vendor's UOM aliases.

Outcomes
  • Manual translation eliminated
  • Extraction accuracy across languages: 97%+
  • Audit prep time cut by 60%
OCR AI Payable Agent FAQ

Common questions

Business Central Online (SaaS) and On-Premises, W1 v27 and above. No country-pack dependencies — works across every BC localization including W1, US, DE, IN. Tax mapping uses standard `VAT Bus. Posting Group` + `VAT Prod. Posting Group` so localization tax extensions compose on top without modification.

See it running on your invoices

30-minute demo with 5 of your real vendor PDFs.

Send us 5 representative vendor invoices (in any language, any format). We'll run them through a sandbox tenant and demo the full pipeline — extraction, mapping, three-way match, posting — with your actual data.

  • 30-minute live demo on a sandbox tenant
  • We extract 5 of your real invoices
  • Side-by-side reviewer workflow walkthrough
  • Written quote within 48 hours

Request a demo

Tell us about your project. We respond within one working day.

WhatsAppCall us