Recon Engine · Generic

Reconcile ledger vs bank statement.

Works with any accounting system export and any bank format. Upload your files — columns are auto-detected, and you can review or fix the mapping before running if your company's layout is different.

AI features (optional) Off

Powers 3 optional helpers: AI column-mapping when auto-detect fails, AI duplicate-entry detection (catches near-duplicates like "ABC SDN BHD" vs "ABC SDN. BHD."), and an AI summary of the unmatched list.

Deploy the small Worker below (keeps your Gemini key as a server-side secret, never touches the browser). Paste its URL here:

⬇ Download worker.js + deploy instructions

Google deprecates Gemini models over time (e.g. 1.5-flash, 2.0-flash and even 2.5-flash for new projects are already unavailable as of mid-2026). If you get a "404 model not found" error, try a current model name like gemini-3.5-flash or gemini-3.1-flash-lite — check ai.google.dev/gemini-api/docs/models for the current list.

File 01 — Ledger

Accounting Ledger

Any journal/GL export with a date and debit/credit (or single signed amount) columns.

File 02 — Bank Statement

Bank Statement

Any bank export with a date, amount, and in/out direction.

File 03 — CR/IAJ Annotated Statement · optional

Team-annotated Bank-In File

Same bank statement but money-in only, with team's reference No. / PIC / Company / Invoice columns added. Used to cross-check unmatched bank-in rows against the ledger's reference numbers.

Reconciliation ready

Sheets: Summary, Ledger, Bank Statement (colour-coded)

Ledger rows needing review
Not matched to bank statement0
DateDirAmountNameNoteManual resolve
Bank statement rows needing review
Not matched to ledger0
DateDirAmountSender/DetailsNoteManual resolve