All Workflows

Bank Reconciliation

Cadel's Bank Reconciliation workflow performs a three-way match across bank statements, AP payment schedules, and NetSuite bill records to surface matched payments, missing ERP entries, and unreconciled items deterministically.

RECORD-TO-REPORT Bank Recon 3 document types
#bank-reconciliation #three-way-matching #ap-payment-schedule #netsuite-bank-recon #erp-transaction-matching #unreconciled-items #missing-erp-entries #period-close-recon #cash-book-reconciliation #statement-of-account #vlookup-replacement #mid-market-controller

The Problem

For mid-market finance teams running on NetSuite, the monthly bank reconciliation is typically a three-to-five day exercise performed by a controller who manually exports a bank statement, pulls the AP payment schedule from a shared spreadsheet, and cross-references both against bill payment records in the ERP. Each of those three data sources uses a different date format, reference numbering convention, and amount field, so aligning them requires VLOOKUP chains, manual sort-and-filter passes, and colour-coded conditional formatting that breaks the moment a colleague edits the file.

The process is mandatory, not optional. Under US GAAP, bank reconciliation is a fundamental internal control required by the COSO framework and tested annually under SOC 1 / SSAE 18 engagements. For Indian entities, the ICAI Guidance Note on Audit of Cash and Bank Balances and SA 505 (External Confirmations) require auditors to independently verify bank balances; a reconciliation that cannot be traced back to source documents forces the auditor to expand confirmation procedures and can result in a qualified opinion. Both frameworks require the reconciliation to be completed and signed off before the period is locked.

At scale — when a company runs 200 or more vendor payments per month across multiple bank accounts — the manual approach introduces systematic risk. Controllers begin cutting corners: they match on amount alone when references differ, they skip investigation of small variances, and they defer unreconciled items to the following month rather than resolving them. A single unposted bill payment in NetSuite can overstate the cash balance on the balance sheet, misstate AP ageing, and trigger an IRS or GST audit query if the discrepancy crosses materiality thresholds.

Cadel's Bank Reconciliation workflow replaces that spreadsheet process with a deterministic three-way match across the bank statement, the AP payment schedule, and NetSuite bill records, producing a structured exception report that a controller can act on and file as an audit workpaper — without writing a single formula.

Why It Matters: Context

A proper bank reconciliation is not simply matching debits to credits. It is a three-way control: (1) the bank statement, which reflects the cash position as seen by the financial institution; (2) the AP payment schedule, which records what the company intended to disburse and to whom; and (3) the ERP bill payment record in NetSuite, which represents what was posted to the general ledger. All three must agree in reference, date, and amount before a transaction can be considered reconciled. Divergence between any two of the three sources constitutes an exception that must be classified, investigated, and resolved before the period can close.

For US mid-market companies, this control is evaluated under PCAOB AS 2201 (for accelerated filers) and is a standard walkthrough item in any SOC 1 Type II audit. For Indian mid-market entities, Section 128 of the Companies Act 2013 requires books of account to give a true and fair view of the state of affairs of the company; a bank reconciliation gap that persists across periods is a direct indicator that the books do not reconcile to external confirmation. ICAI's SA 240 (The Auditor's Responsibilities Relating to Fraud) specifically identifies unreconciled bank items as a fraud risk indicator requiring escalation. Where bank charges or wire fees are not posted to the GL, the expense is understated and the tax deduction is lost.

The consequences of a poorly maintained bank reconciliation are concrete. An undetected duplicate payment drains cash and inflates AP expense. An unposted wire fee creates a book-to-bank difference that auditors must explain. A cut-off error — where a payment clears the bank on 31 March but is posted to the ERP on 1 April — misstates both the closing cash balance and the AP liability under Ind AS 10 (Events After the Reporting Period) or ASC 855 (Subsequent Events). In audit engagements, recurring unreconciled items are among the most common findings that elevate a control from effective to deficient, or from deficient to material weakness.

What This Workflow Automates

  1. Document ingestion: Cadel ingests the bank statement (PDF or CSV), the AP payment schedule (Excel or CSV), and the NetSuite bill payment export (CSV or XLSX) as three discrete document types, normalising dates, reference numbers, and amounts to a common schema before any matching begins.
  2. Reference normalisation: Payment reference strings are cleaned — whitespace stripped, leading zeros standardised, cheque numbers and wire reference codes aligned — so that references that look different due to formatting are not incorrectly treated as mismatches.
  3. Three-way matching: Each bank statement line is matched to an AP payment schedule entry and a NetSuite bill record on the composite key of payment reference and amount; a transaction is marked Matched only when all three sources agree on both fields.
  4. Exception classification: Transactions that do not achieve a three-way match are classified into one of six deterministic exception classes: Missing ERP Entry, Outstanding Payment / Timing Difference, Amount Variance, Duplicate Reference Alert, Cut-Off Exception, or Bank-Originated Charges — No AP Source.
  5. Delta surfacing: For Amount Variance exceptions, the workflow displays the three-way delta — the difference between the bank statement amount, the AP schedule amount, and the NetSuite posted amount — so the controller can determine whether the gap is a bank charge, partial payment, or FX rounding before posting an adjustment journal entry.
  6. Cut-off detection: Transactions where the bank value date falls in one calendar period and the ERP posting date falls in another are flagged as Cut-Off Exceptions with the one-day gap noted, supporting the controller's determination under ASC 855 or Ind AS 10.
  7. Audit workpaper output: The reconciliation result is exported as a structured report listing matched items, each exception class with its source-level detail, and a summary count — ready to be attached to the period-close audit file without reformatting.

All six classification passes execute in under 60 seconds regardless of transaction volume, and every output cell is traceable back to the source document line that produced it, so any controller or auditor can re-derive the result independently.

Edge Cases We Simulate

The workflow ships with a battery of synthetic test scenarios that exercise every failure mode we have seen in real-world data. Each scenario produces a deterministic outcome that an auditor or controller can verify in seconds.

Scenario What's wrong Expected outcome
Payment Present in Bank Statement Only A payment appears in the bank statement but has no corresponding entry in either the AP payment schedule or the NetSuite bill records, suggesting an unposted or missed ERP transaction. Item flagged as 'Missing ERP Entry'; controller is prompted to create the corresponding bill payment record in NetSuite before period close.
Payment Present in AP Schedule but Not in Bank An AP payment schedule line exists and NetSuite carries a bill payment record, but the transaction never cleared the bank within the reconciliation period. Item flagged as 'Outstanding Payment / Timing Difference'; treated as an in-transit item and held for the following period's recon run.
Amount Mismatch Across All Three Sources A transaction reference matches across the bank statement, AP schedule, and ERP, but the monetary amounts differ — commonly caused by bank charges, partial payments, or FX conversion rounding. Item flagged as 'Amount Variance' with the three-way delta displayed; workflow does not auto-match so the controller can investigate and post an adjustment journal entry.
Duplicate Payment Reference The same payment reference number appears more than once in the bank statement or ERP records, indicating a potential duplicate disbursement or a voided-and-reissued cheque. All instances flagged as 'Duplicate Reference Alert'; the workflow surfaces each line with its date, amount, and source document so the AP team can confirm which entry is legitimate.
Date Boundary Straddle A payment clears the bank on the last calendar day of one period but the ERP bill payment is recorded on the first day of the next period, creating a cut-off discrepancy. Item flagged as 'Cut-Off Exception'; workflow notes the one-day gap between bank value date and ERP posting date so the controller can determine whether a reversing entry is required per ASC 855 / Ind AS 10 subsequent events guidance.
Bank Charges and Fees With No AP Schedule Entry Bank-originated debit entries such as wire fees, SWIFT charges, or account maintenance fees appear in the bank statement but have no corresponding line in the AP payment schedule or NetSuite bills. Items classified as 'Bank-Originated Charges — No AP Source'; controller is prompted to post a miscellaneous expense journal entry to the appropriate GL account before closing the period.

Sample Documents

Download or inspect the seeded sample files used to demonstrate this workflow:

File Document type Notes
bank_statement_oct_2024.pdf Bank Statement Monthly bank statement showing cleared debits and credits including wire transfers, ACH payments, and bank charges; used as the primary source of truth for cash movements during reconciliation.
ap_payment_schedule_oct_2024.xlsx Payment Schedule AP team's exported payment run register listing vendor name, invoice reference, payment date, and amount; compared against bank statement lines to detect timing differences and missing disbursements.
netsuite_bill_payments_oct_2024.csv ERP Transaction NetSuite bill payment transaction export (Transaction ID, Vendor, Amount, Posting Date, Status) used as the third leg of the match to confirm that cleared bank items are properly recorded in the general ledger.

Sample Results

In a representative monthly reconciliation run covering a mid-market company with approximately 180 bank statement lines, the workflow matched 161 transactions across all three sources as fully reconciled. Of the remaining 19 exceptions, 7 were classified as Missing ERP Entry (bank debits with no corresponding NetSuite bill payment), 4 were Outstanding Payments where the ERP record existed but the transaction had not yet cleared the bank, 3 were Amount Variance flags carrying a combined three-way delta of $1,340, 2 were Duplicate Reference Alerts on the same wire reference number appearing twice in the bank statement, 2 were Cut-Off Exceptions straddling the last day of the period, and 1 was a Bank-Originated Charge with no AP source. The full classification pass completed in 38 seconds.

One exception class of particular note was the Duplicate Reference Alert: both entries carried the same beneficiary name, the same amount ($8,500), and references differing only by a trailing check digit that the ERP had silently truncated on import. Without automated reference normalisation and duplicate detection, this pair would have matched as two separate legitimate payments, and the duplicate disbursement would have remained undetected until the vendor's next statement reconciliation — a recoverable but material cash leak that the workflow surfaced deterministically without any manual sort or filter step.

Why Automation Wins Here

Replacing the manual three-way bank reconciliation with Cadel's workflow reduces a process that typically consumes three to five controller-hours per month to under two minutes of active work — document upload, a 60-second automated run, and exception review. More importantly, it eliminates the class of errors that arise from manual VLOOKUP matching: reference formatting mismatches treated as exceptions, amount variances overlooked because the delta is small, and duplicate payments that clear the match because both entries happen to carry the same amount. The six deterministic exception classes surface every material discrepancy category required by COSO, ICAI SA 505, and standard SOC 1 walkthrough procedures.

The output artifact is a fully structured reconciliation report with matched item counts, per-class exception counts, three-way deltas for Amount Variance items, and source-document line references for every row. The controller signs off on the exception dispositions — posting a missing bill payment in NetSuite, confirming an in-transit item, or recording a bank charge to the appropriate GL account — and the report drops directly into the period-close audit workpaper file, satisfying both the preparer-reviewer control requirement and the auditor's request for evidence that the book balance has been agreed to the bank statement.

Frequently Asked Questions

Which accounting standards or internal control frameworks does this reconciliation satisfy?

The workflow supports compliance with ASC 305 (Cash and Cash Equivalents) under US GAAP and Ind AS 7 (Statement of Cash Flows) under Indian GAAP, both of which require that cash balances presented in financial statements agree with bank records. For internal control purposes, the three-way match satisfies the segregation-of-duties and independent reconciliation requirements prescribed under COSO 2013 Control Activities and is directly relevant to ICAI's SA 315 risk-assessment procedures, which require auditors to evaluate the design of bank reconciliation controls.

Does this workflow integrate directly with NetSuite, Tally, or SAP?

Cadel accepts the ERP leg as a structured export (CSV, XLSX, or PDF) from any system — NetSuite, SAP Business One, Tally Prime, QuickBooks, or Zoho Books — without requiring an API connector. For NetSuite specifically, the standard Transaction > Bill Payments saved-search export maps directly to the workflow's ERP Transaction document type. Mid-market teams that do not have a dedicated ERP integration team can run the reconciliation by uploading the three source files manually each period.

How does the workflow handle multi-currency payments?

When the bank statement records a payment in a foreign currency (e.g., USD wire from an INR-functional entity), the workflow compares amounts in the currency as recorded in each source document rather than converting to a single base currency. Any discrepancy arising from the bank's applied exchange rate versus the ERP's booked rate is surfaced as an Amount Variance exception, giving the controller the raw figures needed to post an FX gain or loss journal entry under Ind AS 21 or ASC 830.

What does the audit trail look like, and can it be exported for external auditors?

Every reconciliation run produces a timestamped, line-level results table showing the match status ('Matched', 'Missing ERP Entry', 'Outstanding Payment', 'Amount Variance', 'Duplicate Reference', 'Bank-Originated Charge') alongside the source document, page or line reference, and the amounts from all three legs. This output can be exported as a PDF or XLSX workpaper and attached directly to the period-close audit file, satisfying the documentation requirements under ICAI SA 230 (Audit Documentation) and PCAOB AS 1215.

How long does the reconciliation take compared with a manual VLOOKUP-based process?

A typical mid-market entity with 200–400 payment transactions per month that previously required 6–10 person-hours of manual VLOOKUP, pivot-table, and email-chase work can complete the same three-way reconciliation in under 20 minutes using Cadel. The time saving is concentrated in the matching and exception-isolation steps; the controller still reviews and approves flagged items, which preserves the internal control integrity of the process.

Can this workflow be used for multi-entity or multi-bank-account reconciliations?

Yes. Each workflow run is scoped to one bank account and one reconciliation period, so controllers running reconciliations for multiple entities or multiple bank accounts simply initiate a separate run per account. There is no cross-contamination of data between runs. For groups that consolidate under Ind AS 110 or ASC 810, the per-entity reconciliation outputs serve as supporting schedules for the consolidated cash and cash-equivalents note.

Try it

This workflow is deployed and live in our demo environment. Upload your own documents to see it in action.

Open the live workflow