A chat assistant that answers accounting questions safely
Ask who owes money or draft an invoice in plain English, with a person confirming every change.
A working sample we built to show how we would solve a problem like this. It is not a delivered project.
In plain terms
This assistant answers accounting questions such as which customers owe over a set amount, and drafts new invoices from a chat message. It was built and tested on a practice set of 312 made-up customer records. The AI only chooses what to look up. All the sums and name matching are done by ordinary, tested code.
- Never counts a parent account and its sub-accounts twice.
- Asks which customer you mean instead of guessing between similar names.
- Drafts an invoice, but only a button press by a person actually posts it.
- A retried confirmation cannot create the invoice twice.
What this does not claim: Built on practice data, not a live accounting account. Swapping in the real accounting system is one contained change, but that step has not been done or tested.
Technical details
FastAPI app with a mock QuickBooks layer (app/mock_qbo.py) over a 312-row SQLite load; it is the only module touching the database, so python-quickbooks can replace it without changing callers. The model only selects a tool and extracts arguments; sums, parent/child rollup detection and fuzzy name matching are plain code. draft_invoice stages a proposal in memory; only the /api/confirm endpoint (UI button) writes it, idempotent on a key. An offline deterministic parser runs without an API key. Unit tests cover the mock layer and the ambiguity case.
- Python
- FastAPI
- SQLite
- Claude tool-calling
- pytest
Need something like this?
Tell us the problem in your own words. We reply with a plain, practical plan.
Discuss a project like this