
Reconcile what reconciles itself. Stage what does not.
Customer, Vendor and Bank reconciliation inside Microsoft Dynamics 365 Business Central. A four-tier matching engine — exact, tolerance, fuzzy and Anthropic Claude — closes most lines on its own. Discrepancies stage into the standard BC General Journal. The extension never posts directly.
- PDF · Excel · CSV · camt.053 · MT940 · Image
- Four-tier matcher ending in Claude
- Stages to BC Gen Journal — never posts
- ZDR on every AI call · Isolated Storage keys
Built on infrastructure your finance team already trusts
Reconciliation is the most repetitive task finance teams still do by hand.
Customer Statements arrive as PDFs. Vendor Statements as Excel. Bank Statements as CSV, XML or MT940. Someone spends three to ten days a month matching them against Business Central, line by line. Most of the work is mechanical — exact and near-exact matches that any deterministic engine should close. The remainder is judgement that benefits from an AI second opinion. We separated the two and gave each its own engine.
spent reconciling Customer, Vendor and Bank statements — most of it mechanical matching that does not need a human.
across tiers 1–3 (exact, tolerance, fuzzy). AI runs only on the residual that survives.
every adjustment routes through the standard BC General Journal. Finance keeps full control of what posts.
Customer, Vendor and Bank — reconciled by the same engine.
Same matching tiers, same discrepancy lifecycle, same audit trail. Each Recon Type has its own ledger provider and candidate pool so the engine knows which BC entries to consider.
Customer reconciliation
Match counterparty Statement of Account against your Customer Ledger Entries. Surface missing receipts, on-account payments, partially applied invoices, write-offs and disputed amounts. Candidate pool includes unposted sales documents so you can apply payments without bouncing back to the customer.
Vendor reconciliation
Match vendor Statements against your Vendor Ledger Entries. Catches missing invoices, duplicate postings, partial payments, withholding-tax adjustments and FX revaluation gaps. Pool includes Goods Receipt / Invoice Receipt accruals so cut-off issues become visible.
Bank reconciliation
Match a bank statement file against your Bank Account Ledger Entries. Resolves uncleared cheques, in-transit deposits, bank charges, interest, sweeps and inter-account transfers. Stages adjustments through the standard Gen Journal with the correct Bank Posting Group on every line.
Four tiers. Deterministic first. AI last.
Each tier runs in order. A line only reaches the next tier if all previous tiers fail to close it. AI runs on the smallest possible residual — cheaper, faster, more auditable.
Document number + amount + date. Closes 30-60% of lines in typical accounts. Deterministic, instant, auditable.
Amount window (configurable per Recon Type and amount band) + date window. Catches small rounding differences, mid-month FX drift and one-off small adjustments.
Jaro-Winkler and Levenshtein over description / reference / counterparty alias. Resolves typos, abbreviations and name variants. Aliases learned across reconciliations and per-tenant.
Anthropic Claude reasons over residual unmatched lines plus the candidate ledger pool, returning proposed matches with explicit reasoning. Operator approves each before staging. ZDR by default.
Whatever your bank or counterparty sends, we parse it.
Six file formats out of the box. Format is auto-detected from file content, not the extension. Structured formats use deterministic parsers; PDFs and images use the AI service for layout-aware extraction.
Need a format we do not list? The Parser Dispatcher exposes an OnRegisterReconParser integration event — a companion extension or a small custom codeunit can add a new parser without touching the agent itself.
Auditor-grade by construction.
Built with the assumption that an auditor will eventually trace every line. The architecture makes that trace trivial.
Never auto-posts
Every adjustment routes through the standard BC General Journal. Operator reviews, approves and posts. The extension stages and back-stamps; it does not post.
ZDR on every AI call
Anthropic retains nothing. Headers `anthropic-zdr: true` on every prompt. Toggle visible in Setup; off by default only if explicitly disabled by admin.
Keys in Isolated Storage
AI API keys live in BC Isolated Storage with `DataScope::Module`, encrypted at rest, never visible to other extensions. `[NonDebuggable]` getter blocks debugger inspection.
Audit trail for every action
Every parse, match, classification, journal stage, posting, AI call and discrepancy state change is logged with user, timestamp, tier and confidence. Three reports surface this for auditors.
Five-role permission model
USER (operate), APPROVER (accept matches), ADMIN (configure), AUDITOR (read-only), ALL (superset). Setup, AI keys and journal mappings are gated to ADMIN only.
Multi-currency, multi-company
Reconciles in the document currency; FX gaps surface as discrepancies that route to your FX adjustment account. Each company has its own Setup, mappings, parser profiles and audit log.
GSTIN, TDS and paise — handled.
The Reconciliation Agent is region-neutral by default. Toggle the India pack on per company and the engine starts using:
- GSTIN-aware counterparty matching — fuzzy tier resolves abbreviations like "HDFC BANK LTD" ↔ "HDFC Bank Limited" using GSTIN as the deterministic key.
- TDS section mappings (194A, 194C, 194H, 194I, 194J, 195) — withholding-tax adjustments stage to the correct G/L account with the right section code.
- Paise rounding — Indian round-off conventions for ₹ values applied to tolerance-tier matching so 0.50 differences do not flag as discrepancies.
- 10 Indian bank parser profiles ship as samples — HDFC, ICICI, SBI, Axis, Kotak, IndusInd, Yes, PNB, BoB, Union.
ReconSetup ├─ "Enable AI Service" : ☑ ├─ "Send ZDR Header" : ☑ ├─ "Show Withholding Tax Setup" : ☑ ← India pack ├─ "Default Currency Round Mode" : Paise └─ "Counterparty Match Key" : GSTIN+Name
Each company decides independently. EU or US deployments leave it off and the engine never references GST, TDS or Indian rounding logic.
Production in 5–10 working days.
A senior SourceForge consultant runs the project end to end — same person from discovery through hypercare. No bait-and-switch, no offshore handoff.

Runs as a native AL extension on your BC tenant. No third-party middleware to license, monitor or audit.
1
Inventory of accounts to reconcile, statement file formats per bank/counterparty, current monthly volume, current process pain points and statutory needs (India regional pack toggle, GST/TDS).
2
Map G/L accounts (write-off, FX, suspense, bank charges), build Match Rules per Recon Type and amount band, set Journal Mappings, clone Parser Profiles for each bank format.
3
Upload 3 months of historical statements. Reconcile in test mode (journals stage but are not posted). Tune tolerances and AI thresholds against your data, not against a synthetic demo.
4
Roll forward to current month. Train USER and APPROVER roles on the Workspace and Discrepancy Card. Parallel-run for one full month-end close alongside the legacy reconciliation method.
5
Daily check-ins for the first month-end close. Tune Match Rule confidence thresholds, refine Parser Profiles for edge-case bank formats, add Counterparty Aliases learned from operator overrides.
Frequently asked questions
Business Central 27 and above, both SaaS (Cloud) and On-Premises. Runtime 15.0. No country-pack dependencies — designed to work across every BC localization out of the box. The optional India regional pack adds GSTIN-aware counterparty matching, TDS section mappings (194A, 194C, 194H, 194I, 194J, 195) and paise rounding; it is disabled by default and enabled per company.
Bring a real statement. We will reconcile it live.
A 45-minute working session, not a sales pitch. Bring a recent statement and the matching BC company (sandbox is fine). We connect the extension, run the pipeline against your data, and show you which lines auto-close, which stage as discrepancies and what each tier did.
- Live parsing of your actual statement format
- All four tiers running against your real ledger
- Honest answer on whether the AI tier helps you (or whether tiers 1–3 close enough on their own)
- Written quote within 48 hours
