Bank reconciliation is the check that proves your books match your bank. Every accounting product does it, so the best bank reconciliation software for small business is usually just your accounting software, used properly. Standalone tools only matter at high transaction volume. Here is how it works, so you can judge any tool.
A reconciliation, with numbers
Your bank statement shows 9,300 at month end. Your books show 9,000. Why the gap?
| Item | Amount |
|---|---|
| Bank statement balance | 9,300 |
| + Deposit made on the 30th, not yet on the statement | +500 |
| − Cheque issued, not yet cashed | −1,000 |
| Adjusted bank balance | 8,800 |
| Book balance | 9,000 |
| − Bank fee not yet recorded in your books | −200 |
| Adjusted book balance | 8,800 |
Both sides reach 8,800, so the books are reconciled. A good tool shows unmatched lines like these and lets you match, create or ignore each one.
What to expect from free tools
- Statement import from CSV or similar files is the normal route.
- Automatic bank feeds are rare and often depend on third-party services.
- Matching help varies. Some suggest matches, others are manual.
Bank reconciliation tool in an ERP
ERPNext includes a bank reconciliation tool for matching statement lines to payments and entries.
40,232 stars · GPL-3.0 · repo updated Oct 2026
Bank module with reconciliation
Dolibarr's bank module lets you reconcile bank lines with recorded transactions.
7,732 stars · GPL-3.0 · repo updated Oct 2026
Classic reconcile window
GnuCash has a long-standing reconcile feature for matching your account to a statement.
4,378 stars · GPL-2.0 or GPL-3.0 · repo updated Oct 2026
Reconciliation in double-entry accounting
LedgerSMB includes reconciliation for bank and cash accounts.
570 stars · GPL-2.0 · repo updated Oct 2026
Reconcile with plain text
Import bank CSV files into a journal and check balances from the command line.
4,766 stars · GPL-3.0 · repo updated Oct 2026
Data verified 16 October 2026 from each project's repository and LICENSE file.
Make it a monthly ritual
If a difference will not clear, check for a typo, a duplicate entry or a transposed number first, such as 540 entered as 450. Reconciling weekly keeps problems small. See also our bookkeeping guide.
The options in more detail
ERPNext
Bank reconciliation tool in an ERP. ERPNext includes a bank reconciliation tool for matching statement lines to payments and entries.
40,232 stars · GPL-3.0 · repo updated Oct 2026
Our guide to ERPNext · GitHub · Website
Dolibarr ERP CRM
Bank module with reconciliation. Dolibarr's bank module lets you reconcile bank lines with recorded transactions.
7,732 stars · GPL-3.0 · repo updated Oct 2026
Our guide to Dolibarr ERP CRM · GitHub · Website
GnuCash
Classic reconcile window. GnuCash has a long-standing reconcile feature for matching your account to a statement.
4,378 stars · GPL-2.0 or GPL-3.0 · repo updated Oct 2026
GitHub · Website
LedgerSMB
Reconciliation in double-entry accounting. LedgerSMB includes reconciliation for bank and cash accounts.
570 stars · GPL-2.0 · repo updated Oct 2026
GitHub · Website
hledger
Reconcile with plain text. Import bank CSV files into a journal and check balances from the command line.
4,766 stars · GPL-3.0 · repo updated Oct 2026
GitHub · Website
The usual reasons books and bank disagree
- Timing: deposits or cheques that have not cleared yet.
- Fees and interest: charged by the bank but not yet booked.
- Typing errors: a transposed number such as 540 entered as 450.
- Duplicates: the same transaction imported twice.
- Missing items: a payment made but never recorded.
Example: a shop with 200 bank lines a month
An illustrative example, not a real company.
A shop has about 200 bank lines a month, mostly card settlements and supplier payments. Matching each by hand takes hours, and mistakes creep in.
They import the statement as a file, let the software suggest matches for settlements, and handle exceptions manually: a supplier refund, a bank fee, a payment in two parts. They reconcile weekly rather than monthly, so each session is short.
Month end is then a quick confirmation that the adjusted balances agree.
What usually goes wrong
- Reconciling only once a year.
- Not investigating small differences.
- Duplicating an imported statement.
- Posting bank fees from memory.
- Reconciling without locking the period afterwards.
Free self-hosted or paid cloud: how to decide
Automatic bank feeds and smart matching are strong points of paid products. Free tools usually depend on file import. At low volume that is fine. At high volume, paying for automation can save more than it costs.
Reconciliation data is financial and sensitive. If you self-host, use HTTPS and encrypted backups. Providers such as Hostinger offer hosting suitable for the PHP and Python tools above.
Need a server to host it?
Self-hosting a CRM needs a server. PHP and MySQL apps can often run on ordinary web hosting, while Docker, Node, Python or Java apps usually need a VPS. Check each project's requirements first. Hostinger offers both shared web hosting and VPS plans.
Affiliate disclosure: this is an affiliate link. If you buy through it we may earn a commission at no extra cost to you. CRMs are listed independently of any hosting partner. Learn more.