Finance analyst reconciling ledger entries on a laptop
Business Central extension · v0.1

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

Microsoft Dynamics 365 Business CentralAnthropic Claude · ZDR by defaultMicrosoft AppSource (pending submission)
Why we built it

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.

3–10 days
of a finance team's month

spent reconciling Customer, Vendor and Bank statements — most of it mechanical matching that does not need a human.

60–85%
of lines close deterministically

across tiers 1–3 (exact, tolerance, fuzzy). AI runs only on the residual that survives.

Zero
direct postings to G/L

every adjustment routes through the standard BC General Journal. Finance keeps full control of what posts.

One engine · three ledgers

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.

The matching engine

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.

Tier 1 · Exact

Document number + amount + date. Closes 30-60% of lines in typical accounts. Deterministic, instant, auditable.

Typical confidence
100%
Speed
Instant
Tier 1 of 4
Tier 2 · Tolerance

Amount window (configurable per Recon Type and amount band) + date window. Catches small rounding differences, mid-month FX drift and one-off small adjustments.

Typical confidence
95–99%
Speed
Instant
Tier 2 of 4
Tier 3 · Fuzzy

Jaro-Winkler and Levenshtein over description / reference / counterparty alias. Resolves typos, abbreviations and name variants. Aliases learned across reconciliations and per-tenant.

Typical confidence
80–95%
Speed
<1s per 1000 lines
Tier 3 of 4
Tier 4 · AI (Claude)

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.

Typical confidence
Operator-confirmed
Speed
2–8s per batch
Tier 4 of 4
File format support

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.

PDF
text or scanned
Excel (.xlsx)
any column order
CSV / TSV
with auto-detect
XML camt.053
ISO 20022 bank statement
MT940
SWIFT bank statement
Image (PNG/JPG/TIFF)
OCR via Claude

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.

Security & governance

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.

India regional pack · optional

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.
Setup toggle
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.

Implementation

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.

5–10
working days SMB
3–4
weeks multi-co
Spreadsheet with reconciliation columns being reviewed
Inside your BC, your tenant

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

1

Discovery

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

Configure

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

Backfill

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

Cut-over

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

Hypercare

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.

Reconciliation Agent FAQ

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.

Book a working demo

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

Book a Reconciliation Agent demo

Tell us what you reconcile, how, and how often. We respond within one working day.

WhatsAppCall us