M12 Bank reconciliation
Match bank-statement lines to M11 payment + expense records. Bulk import bank statements (CSV/Excel/MT940). Auto-match by reference number + amount + date. Manual match for fuzzy cases. Reconciliation summary report. Closing balance roll-forward.
Why bank rec matters
Two views of cash:
- GL view — what AuditPro recorded (M11 payments, M09 expenses, payroll outflows)
- Bank view — what the bank actually sees (statement)
The two should always reconcile. Discrepancies = errors that must be investigated. Monthly bank rec is the firm's single most important internal control.
Step-by-step
Get the bank statement
Download from internet banking as CSV or Excel. (Or MT940 from corporate banking.) Format must include: date, description, debit, credit, balance.
Open M12 → New reconciliation
Pick the firm bank account being reconciled. Period start + end dates. Upload statement file.
System imports + parses
Reads each line into
bank_statement_lines. Validates: dates contiguous, opening balance + Σ(debits) - Σ(credits) = closing balance. Errors flagged.Auto-match
For each statement line, search GL records by:
- Reference number exact match · weight 100
- Amount + date ± 3 days · weight 80
- Amount + counterparty name fuzzy · weight 60
Matches above 80 confidence auto-applied. Below 80 flagged for manual review.
Manual match
Walk un-matched lines. Search M11 + M09 by amount/date. Click "Match" to link. Or "New" to record a missing payment / expense on the spot.
Investigate exceptions
Bank lines with no match in GL = unrecorded receipts (great — extra money) or unrecorded expenses (bad — missed bookkeeping). Each requires a journal entry to capture.
Close the period
Once everything matched + exceptions cleared, click Close. Stamp closing_balance_at_period_end on bank account row. Generates reconciliation summary PDF.
Reconciliation summary
Single-page PDF with:
- Bank statement opening + closing balance
- GL opening + closing balance
- Matched lines summary (count + total)
- Exceptions (unmatched lines, both directions)
- Reconciling items + their resolution
- Sign-off block — preparer + reviewer
Saved to vault under storage/bank-statements/{account-id}/{period}/recon.pdf. Becomes audit evidence for B-100 Cash workpaper.
Common reconciling items
| Type | Description | Treatment |
|---|---|---|
| Outstanding cheques | Issued but not cleared | Add to GL balance to reach bank |
| Deposits in transit | Received but not yet credited | Add to bank balance to reach GL |
| Bank charges not booked | Bank deducted, GL didn't capture | Post journal: Dr bank charges Cr bank |
| Interest income not booked | Bank credited, GL didn't capture | Post journal: Dr bank Cr interest income |
| Direct debits not booked | Standing instructions debited | Capture as expense |
| Errors | Bank or GL error | Investigate · request bank correction or post journal |
RBAC
| super_admin · partner · accountant · admin_staff | full |
| others | view-only |
Multi-account
Firms with multiple bank accounts (NBO operating, Bank Muscat USD, etc.) reconcile each separately. Dashboard shows per-account reconciled-through date — helps partner spot accounts that haven't been reconciled in 60+ days.
Run a bank rec for the current month. Upload the statement. Watch auto-match — typically 70-85% of lines match without intervention. The remaining 15-30% are real exceptions worth investigating.
Don't skip bank rec because "everything looks fine". Unreconciled bank balances are a textbook audit qualification. Many small firms only do annual bank rec at year-end and discover OMR-thousands of errors. Monthly rec catches issues while they're fresh.
If your firm has high-volume payments (BK clients pay monthly), tune m12.auto_match_amount_tolerance (default ±0.001) + m12.auto_match_date_window_days (default 3). Tighter for lower auto-match rate but fewer false positives; looser for the reverse.