06 · Document Intelligence
From PDF to posting proposal.
Platform description
Artificial intelligence in NOVERA
AI is a working part of the accounting process here, held inside a boundary that is enforced in code. Every model call in the system passes through one gateway service, which owns the connection, the timeout, the model choice and the logging. The default model is Claude Sonnet 4.5, overridable per call so that bulk background work can run on something cheaper. The key is read from a system environment variable and never from a file, and no key or payload is ever written to the log: only the action name, the model and the size of the answer.
Document reading is the most valuable application. A supplier PDF is sent as a document block, or a photograph as an image block, and comes back as a strict JSON contract:
- counterparty, identifiers, dates and currency;
- net, VAT and gross;
- the document's own language and its line table;
- for an order or reservation: the booking number, service period, guest count, and the guest's name and address.
Anything the document does not state comes back empty, because the reader is forbidden to guess.
The accounting judgement comes next. The fill service codes each line to a nominal account, words it in the document's own language, and can generate an entire posting by pattern from the account's own previous postings, header analysis included. Rounding is reconciled against the document, and on an order the lines are squared to the printed total, so a proposal never arrives out of balance.
House rules. Behind that sits a learning store of rules written in your own words. A rule is matched to a document by keyword and then used in one of two ways:
- handed to the model as written policy, or
- where the rule is arithmetic, executed in C# to the cent.
The motor vehicle expense rule shows the split clearly: the model is told what the rule means, and the system itself does the sums, because a language model should not be asked to reproduce a formula.
The communications side carries its own AI.
- Inbox mail is triaged in the background into urgent, reply, for information and waiting, with a summary, extracted actions and deadlines.
- Replies can be drafted, refined and translated. Translation lifts text nodes out of already-sanitised HTML and puts the translated lines back, encoded, at their recorded positions, so model output can never become markup.
- A background scout reads invoices arriving by email from suppliers you have opted in and files them into a review queue, idempotently, so the same attachment can never be read and billed twice.
Smaller assists run throughout: database-held names translated into the reader's language and cached, transaction narration, recurring-transaction prediction, hints for unmatched bank lines, account setup proposals, calendar drafting and an assistant chat page.
Five rules govern all of it, and each one is implemented in code:
- AI suggests and never posts. No model output has ever written a journal, an invoice or a ledger row.
- AI never creates an account.
- A read never overwrites what a person has already entered.
- The cheapest route is tried first; reading an image is always a second, explicit click.
- Everything fails soft. An unreachable model produces no suggestion, so it can never put a wrong number on a tax return.