Bank reconciliation
Cross the ledger against the bank statement, auto-match by amount and date, resolve differences, and close the reconciliation.
A bank reconciliation crosses three sources of truth: the bank statement's lines, the payments recorded in Mosce ERP, and the journal entries that affect the bank account. The goal is for all three to agree for a given period. Mosce ERP builds a three-way view (statement, reconciled, and posted), helps you with auto-match by amount and date, lets you reconcile manually whatever did not match, and, when everything agrees, you mark the reconciliation as Completed.
Reading time: ~7 min
When to use this
- Month-end close - you want to validate that the bank balance agrees with the ledger.
- You detected a difference between the statement and the entries and need to find where it is.
- An external audit asked for signed reconciliation evidence.
- You are onboarding and are going to reconcile the entire historical period of an account.
Before you start
- You already imported the bank statement covering the period (see Bank statements).
- The period's payments and entries are recorded (not in draft). Any entry still in draft falls outside the Posted calculation.
- Your role includes the
banking:reconciliationpermission. - The bank account is active.
How reconciliation works
Each reconciliation in Mosce ERP carries:
- Bank account and the date range of the reconciled period.
- Status - Draft (in progress) or Completed (closed).
- Started by and Completed by with their timestamps.
The bank statement's lines are assigned to the reconciliation. Each line can be:
- Reconciled (crossed against a payment or entry recorded in Mosce ERP).
- Unreconciled and requiring action.
The three-way balance compares:
- Statement: signed sum of the statement lines in the period.
- Reconciled: sum of the lines marked as crossed.
- Posted: net sum of the posted entries that affect the ledger account linked to the bank.
- Expected: total of payments that should cross against the bank.
To close the reconciliation, the three ways must balance.
Step by step
Create the reconciliation
- Go to Banking → Reconciliations and click New reconciliation.
- Select an active Bank account.
- Define the Start date and End date of the period. Mosce ERP requires the end date to be later than the start date.
- Click Create reconciliation. The reconciliation stays in Draft and takes you to its detail.
Auto-match
When you create the reconciliation, Mosce ERP runs an auto-match that links statement lines to internal payments when they coincide by:
- Amount (with sign and cents tolerance).
- Date (within a reasonable window).
- Reference when available (transfer number, FITID in OFX).
Auto-matched lines appear marked as Auto-reconciled. If the system found several candidates for one line, it stores them in matchCandidates and the UI offers you a manual choice between them.
Manual reconciliation
For unmatched lines:
- In the line list, filter by Unreconciled.
- Click a line to open the Manual reconciliation dialog.
- The dialog shows:
- Statement line: date, description, amount.
- Payment to associate: a selector with search by reference or amount.
- Suggestion: a list of payments with an amount similar to the line's.
- Choose the corresponding payment and click Confirm association. The line moves to Manual status.
If you cannot find the payment, you can:
- Exit and record the missing payment from the relevant module, then return to the reconciliation.
- Create an adjustment entry with the Create entry action from the line itself (bank transfers, service charges, interest).
Unlink an incorrect match
If the auto-match linked something it should not have, open the line and click Unlink. The line goes back to Unreconciled and the payment is free to assign correctly.
Three-way balance
The Three-way balance block shows you the current state with four totals:
- Expected (total of the period's payments).
- Reconciled (sum of matched lines).
- Posted (sum of posted entries).
- Statement (sum of statement lines).
Mosce ERP marks each pair as Balanced or Unbalanced and, when there is a difference, explains the delta:
- Expected ≠ Reconciled: there are payments with no associated statement line.
- Reconciled ≠ Posted: posted entries are missing (probably in draft).
- Statement ≠ Posted: there is a difference between what the bank reported and what you posted.
Complete the reconciliation
- When the three ways are balanced, click Complete reconciliation.
- Confirm in the dialog. Mosce ERP marks the status as COMPLETED, records
completedAtandcompletedById, and saves the totals. - The reconciliation goes into read-only mode.
Reopen a reconciliation
If you detected an error after closing, click Reopen reconciliation. The line associations are kept and the status goes back to Draft.
Filters and list
The main Banking → Reconciliations screen brings filters by Bank account, Status, and From / To. Each row shows account, period, lines, status, created by, and created on. When empty, it starts with a message inviting you to create the first one.
Expected result
- COMPLETED reconciliations per month that make the statement, ledger, and payments agree.
- Statement lines linked to real system payments (auditable both ways).
- Differences resolved with documented adjustment entries (bank charges, interest, errors).
Common errors
| Error | Cause | Solution |
|---|---|---|
| The Reconciled total ≠ Posted | There are draft entries that affect the bank account | Record them from Accounting → Journal entries |
| The Statement total ≠ Posted | An entry is missing or a payment was not recorded | Create an adjustment entry from the line with Create entry |
| I cannot unlink a payment | The reconciliation is completed | Reopen it first, then unlink |
| Auto-match linked nothing | The statement's dates or amounts differ greatly from the payments | Reconcile manually; adjust the payment capture flow for future periods |
| The dialog says "No candidates" | There are no payments with a similar amount | Verify the payment is created in Mosce ERP; if it does not exist, record it and return |