Bank Reconciliation
Matching a bank statement's lines to payment vouchers, so the money that has actually arrived in the bank is confirmed against the vouchers staff have recorded. This page covers the Bank Reconciliation list and its three actions: Auto-match, Bifurcate and Close.
There is no Upload statement button in this console. A bank statement is uploaded through the API (permission bank_statement.upload exists for that surface, not for a button here). Once a statement exists, it appears in this list and the console is where you work through its matching and finally close it.
The Bank Reconciliation list
Nav: Billing → Bank Reconciliation. Permission required to view the list: bank_statement.view. Like Payment Vouchers, there is no create or edit form — statements arrive via the API (see above) — but each row can be opened to a read-only detail view (below). Every column and action on this list still operates on the whole statement, not on its individual lines.
| Column | Shows |
|---|---|
statement_date | The date of the statement, sortable. |
| Bank account | The bank account the statement belongs to (bankAccount.name). |
file_name | The uploaded statement file's name. |
| Status | The statement's processing/reconciliation status — badge, coloured as in the diagram below. |
total_entries | How many lines the statement contains in total. |
matched_entries | How many of those lines have been matched to a voucher. |
unmatched_entries | How many lines are still unmatched. |
Filter
| Filter | Narrows by |
|---|---|
| Status | Any of the 6 BankStatementStatus values (see the diagram below). |
The detail view (below) lets you see a statement's individual lines, but you still cannot match or unmatch any one of them by hand there — the Lines table is read-only, with no relation-manager actions. The three totals columns (total_entries, matched_entries, unmatched_entries) are the only line-level visibility on the list itself; the actual matching happens through the aggregate actions below.
Viewing a statement Built
Use the View row action to open a statement's detail page — read-only, gated by the same bank_statement.view permission as the list. It has two info panels plus one child table:
- Statement — the statement date, the bank account, the file name and the status (same coloured badge as the list).
- Reconciliation — the total, matched and unmatched entry counts, who uploaded the statement, and who reconciled it.
Below the panels, a read-only Lines table: one row per statement line, showing the line number, transaction date, description, reference, debit, credit, running balance, processing status, match status and the payment voucher it matched (if any). Everything here is read-only — a statement is advanced through reconciliation by the Auto-match / Bifurcate / Close actions below, not edited as a form.
The statement lifecycle
A statement moves through 5 states on its way to being reconciled, with a 6th (Failed) if parsing goes wrong. Uploading and parsing happen automatically; the three console actions work on a statement once it reaches Parsed.
Auto-match Built
Works through the statement's unmatched cheque/DD lines and matches each one, by instrument number and amount, to a single candidate voucher in state Deposited. Visible on statements in state Parsed or Reconciling.
- Find a statement with unmatched lines
Filter by Status = Parsed or Reconciling, and check
unmatched_entriesis greater than zero. - Select Auto-match
Icon: link.
- Confirm
A confirmation dialog asks you to confirm before running the match.
- Result
For each cheque/DD line where instrument number and amount match a single Deposited voucher: that voucher is cleared (moves to Cleared), and any duplicate Suspense voucher covering the same money is cancelled. The statement's
matched_entries/unmatched_entriescounts recompute, and its status advances toward Reconciling.
Bifurcate Built
Splits a single gateway settlement line into the individual payments it actually represents. Only appears when at least one of the statement's lines needs this — a line whose internal processing status shows it is awaiting gateway splitting. Visible on statements in state Parsed or Reconciling.
- Look for the Bifurcate button
It only shows up on a statement that has a line description the system recognises as a Razorpay or CCAvenue settlement and that still needs splitting. If you don't see it, the statement has no such line right now.
- Select Bifurcate
Icon: arrows-pointing-out.
- Confirm
A confirmation dialog asks you to confirm before proceeding.
- Result
The system detects which gateway (Razorpay or CCAvenue) the line came from, fetches that gateway's settlement detail, and records the individual settlement payments as vouchers so each can be matched separately.
Close Built
Finalises the statement once every line has been resolved. Visible on statements in state Parsed or Reconciling.
- Make sure every line is resolved
Run Auto-match and, if it appears, Bifurcate first until
unmatched_entriesis zero (or you have deliberately decided the remaining lines need no action). - Select Close
Icon: lock-closed, colour success.
- Confirm
A confirmation dialog asks you to confirm before closing.
- Result
The statement moves to Reconciled and is finalised.
Close is refused if any line on the statement is still awaiting a match, or still awaiting gateway bifurcation. Work through Auto-match and Bifurcate until nothing is left pending, then try Close again.
What isn't in this console Planned / elsewhere
- Uploading a statement — no button exists here. Statements are uploaded via the API (bank_statement.upload).
- Line-level manual match/unmatch — you can see a statement's individual lines on its read-only detail page (the Lines table), but you cannot match or unmatch one specific line by hand there or anywhere else. Matching happens only through Auto-match and Bifurcate working on the whole statement.
See also
- Payment Vouchers — the 10-state voucher lifecycle that Auto-match and Close feed into (Clear, and cancelling a duplicate Suspense voucher).
- Discounts, Refunds & Charges — other Billing-group workflows alongside reconciliation.
- Accounting — journal entries and GST e-invoices, the ledger side of billing.