Bank and Mobile Wallet Statement Reconciliation for Small Businesses
A web app for small shops, clinics and tutors that imports bank and mobile wallet statements, matches each credit to an invoice or order, and flags what is missing or paid twice. A practical fintech final year project with CSV and PDF parsing, fuzzy matching rules and a simple review screen an owner can use daily.
Beginner
Achievable by one student in a semester with familiar tools.1 semester · 1 student, or 2 semesters · 2 students
7 to ship
3 optional extrasSuggested stack
What you should ship
- Importers for at least three statement formats (for example one bank CSV, one mobile wallet export and one PDF statement) that turn each into a common transaction table with date, amount, reference and counterparty.
- An invoice or order list that can be uploaded as CSV or entered by hand, with customer name, amount, due date and invoice number.
- A matching engine that pairs payments to invoices by exact reference, then amount plus date window, then fuzzy name match, and records which rule made each match.
- A review screen showing matched, suggested and unmatched items, where the owner confirms or rejects suggestions with one click.
- Detection of duplicate payments, partial payments and overpayments, each shown with a clear label.
- A monthly summary export (CSV and PDF) listing paid, unpaid and unexplained receipts.
- A labelled test set of at least 300 real-shaped transactions (anonymised) with match accuracy reported per rule.
If you have time left
- Learn from confirmations: when an owner links a nickname to a customer, remember it for future matches.
- Split one payment across several invoices when a customer pays a combined amount.
- An Urdu interface and right-to-left layout for the review screen.
The problem small businesses have with incoming payments
A tuition centre, a pharmacy or a small clothing brand today gets paid through several channels at once: bank transfers, mobile wallets such as JazzCash and Easypaisa in Pakistan, card settlements and cash deposits. Customers write anything in the reference field, or nothing. At month end the owner or a part-time accountant sits with a bank statement, a wallet export and a notebook of who owes what, and ticks lines off by hand. It takes hours, mistakes slip through, and a customer who says "I already paid" is hard to check.
This is reconciliation, and it is one of the most boring and most valuable jobs in finance. Large companies pay for it. Small ones do it with a highlighter.
What already exists and the gap
- Xero and QuickBooks have bank reconciliation with bank feeds and rule suggestions, but they assume a full accounting setup and supported bank feeds, which many local banks and wallets do not provide.
- Zoho Books is cheaper and popular with SMEs, yet it still expects the business to adopt a whole accounting package.
- Spreadsheets with VLOOKUP are what most owners actually use; they break on a typo or a partial payment.
The gap is a small tool that does one job: take whatever statement files the business already has, match them to what they are owed, and show the leftovers. No bank integration needed, no accounting knowledge required.
What you build
A web app with one main user (the owner or bookkeeper) and three steps.
- Import: upload statements from any supported source. Each importer normalises to one schema. PDF statements are parsed with table extraction, and the app shows a preview so the user can fix a column mapping before saving.
- Match: the engine runs rules in order of confidence. Exact invoice number in the reference wins. Then same amount within a date window. Then fuzzy match on the payer name against the customer list. Every match stores the rule and a score.
- Review: a three-column screen of matched, suggested and unmatched items. The owner confirms, rejects or links by hand. Duplicates and partial payments are labelled so they are not silently absorbed.
The technically interesting part
The interesting work is the matching logic and proving it works. Payer names on statements are truncated, uppercased, transliterated or replaced by a phone number. Amounts may be split, rounded or include a bank fee. Your job is a rule pipeline that is explainable (the owner sees why it matched) and measurable (you know how often each rule is right).
Build a labelled test set early: take real statements from two or three businesses you know, anonymise names and numbers, and hand-label the correct matches. Then report precision and recall for each rule and for the whole pipeline. Show your evaluator a confusion table and two or three interesting failures, such as a customer whose brother paid on their behalf, and what you changed because of them. Parsing messy PDFs reliably is the second challenge; keep a folder of sample files and a test for each.
How to evaluate it
- Match accuracy: precision and recall per rule on at least 300 labelled transactions.
- Time saved: time three owners or bookkeepers take to reconcile one month by hand versus with the app.
- Parser coverage: percentage of rows correctly extracted from each supported statement format.
- Usability: a short task-based test with five non-technical users; count errors and ask them to rate confidence in the results.
Suggested plan
- Weeks 1 to 2: collect sample statements and invoice lists from two or three real businesses; agree anonymisation.
- Weeks 3 to 5: common schema, CSV importers and the invoice list.
- Weeks 6 to 8: matching rules, scores and the labelled test set.
- Weeks 9 to 11: review screen, duplicate and partial payment handling, PDF importer.
- Weeks 12 to 14: user tests, accuracy report, monthly export and write-up.
Path to a product
The first customer is a tuition centre, clinic or online shop that takes most payments by bank or wallet transfer and has an owner who hates month end. A monthly subscription per business is the natural model, with a cheaper plan for sole traders. Bookkeepers and small accounting firms who serve many clients are a better second market: charge per client file. Scale by adding importers for more banks and wallets; each new format is a small, sellable feature.
Scope warning
Do not connect to live bank or wallet APIs or ask users for banking passwords. Do not build invoicing, payroll or tax filing. Do not train a machine learning model before a rules engine and a labelled test set exist; you need the baseline to show any model is better.
Learn what you need on Sefism
- Full Stack roadmap : the upload, API and review screen are a standard full stack build.
- Data Analytics cheat sheet : cleaning, joining and summarising tabular data.
- DuckDB Documentation : a quick way to explore and join statement files while you design the schema.
- The Mom Test : how to interview business owners about their month-end pain without leading them.
- PostgreSQL Documentation : storing transactions, matches and audit history.
Get help with this idea
The hardest part of this project is getting real statement samples early, so plan that before you write code. If you want a second opinion on scope, stack or how to evaluate it before you pitch it to your supervisor, bring your draft proposal and we will pressure-test it together. You build it; the guidance is on the decisions.
New here? Create a free account first.
Ideas and guidance, not finished projects
These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.
Not sure this one fits you?
I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.