From Supplier Invoice to Bookkeeping: AI with a Control Checkpoint

Illustrated infographic summarizing: From Supplier Invoice to Bookkeeping: AI with a Control Checkpoint

By Greg Nowak. Last updated 2026-08-18.

At first glance, a supplier invoice looks like an ideal task for AI. Identify the supplier, invoice number, date, amount and VAT. Suggest an account, then pass the information to the bookkeeping system.

This can eliminate a significant amount of data entry. But an invoice has not been booked correctly just because the model has produced a neat JSON object.

There should be a control checkpoint between extraction and bookkeeping. At this stage, the system compares the proposed values with the source document, the company’s rules and previously processed invoices. Entries that are reliable, permitted and documented can proceed automatically. Everything else is referred to a person.

New bookkeeping requirements make these controls increasingly relevant

From 1 January 2026, the digital bookkeeping requirement also covers more businesses that do not prepare annual reports under the Danish Financial Statements Act. According to the Danish Business Authority’s guidance on the Bookkeeping Act, this includes businesses not subject to financial reporting requirements if their net revenue has exceeded 300,000 kroner in two consecutive income years. For existing sole proprietorships, 2024 and 2025 may therefore be the decisive years.

The Danish Tax Agency’s bookkeeping guidance also makes clear that the business retains ultimate responsibility for accurate bookkeeping, even when a bookkeeper performs the work. The same division of responsibilities applies to AI: the technology can read, suggest and check, but responsibility does not transfer to the model.

It is therefore too narrow to measure automation solely by speed. A workable process must also preserve the link between the invoice, the extracted information, the approval and the entry that ultimately appears in the accounts.

A correctly formatted output can still contain the wrong amount

An LLM API can convert a PDF, image or OCR text into predefined fields. With Structured Outputs, the response can be constrained to an agreed JSON schema. For example, it may require the supplier name, CVR number (Danish company registration number), invoice number, invoice date, due date, net amount, VAT, total and currency.

This makes integration considerably easier. The application knows which fields to expect and whether the values use the correct data types. But the schema cannot prove that the total was read correctly, that the net amount and VAT add up, or that the model selected the invoice date rather than another date shown in the document.

A new benchmark preprint on structured output demonstrates precisely this distinction. The models examined almost always followed the required schema, while the highest accuracy for the field values themselves was 83.0 percent for text and 67.2 percent for images. The study is not specifically about Danish invoice bookkeeping, but it illustrates the problem precisely: a technically valid response can still be factually wrong.

Controls must follow the source document throughout the process

An audit-friendly document workflow can be divided into seven stages. The invoice is received and assigned an internal ID. Text and fields are then extracted using OCR, document logic or an LLM. The output is checked against the schema, and business rules test its contents. Based on these checks, the system calculates the risk and chooses either automatic processing or human approval. Finally, the entry and source document are transferred to the bookkeeping system, and the result is reconciled.

Practical control matrix from received invoice to reconciled entry
Control checkpoint What the system checks If something does not match
Document Can the file be opened, and are all pages included? Stop the process and request a new source document
Fields Are dates, currency and amounts in a valid format? Send the document for manual processing
Amounts Does the net amount plus VAT equal the total? Flag the discrepancy and do not create the entry
Supplier Do the CVR number and payment details match the master data? Require approval of the change
Duplicate Has the same invoice number, supplier and amount been processed before? Block the entry or compare the documents
Risk Are the amount and proposed account within the agreed limits? Send the entry to an approver
Post-processing check Have the API response and source-document reference been saved correctly? Reprocess without creating a duplicate
Every control has a specific consequence. This is essential if the process is to run without continuous monitoring.

Structure, business rules and approval each serve a different purpose

Schema validation determines whether the output can be processed by an application. Is the invoice date a date? Is the total a number? Are all mandatory fields present? This is a necessary check, but it only establishes whether the structure is correct.

Business validation examines whether the values make sense in the company’s real-world context. Python rules can, among other things, recalculate VAT, compare the total with subtotals, look up the supplier in master data and check whether the proposed account is permitted for that type of supplier. The rules should be visible and version-controlled. Otherwise, it becomes difficult to explain an entry after the rules have changed.

Human approval addresses uncertainty and financial risk. Each company sets its own thresholds. New suppliers, changed bank details, larger amounts, unclear credit notes or uncertain data extraction can always trigger an additional review. This does not diminish the value of automation. It is what makes the process defensible in practice.

Duplicates must be caught both before and during integration

The same invoice may arrive through several channels. An entry may also be submitted again if an API call times out. The solution should therefore generate a stable fingerprint from the invoice’s key information and check whether the document already exists. The supplier, invoice number, date, currency and total are more reliable identifiers than the filename.

e-conomic’s document API supports idempotency keys for write requests. If a request is repeated with the same key within the API’s cache window, the API can return the original result instead of performing the action again. This is useful in the event of network errors, but it is not sufficient on its own. The documentation specifies a cache window of one hour, so the company still needs its own persistent duplicate check.

The API can also attach documents to posted entries. In 2026, its document functionality was expanded to include image formats and a conflict setting that can either merge with an existing document or reject the attachment. The integration should therefore use a tested API version, handle conflicts explicitly and retain the request, response and source-document reference.

The log is not mere technical decoration

The Danish Business Authority describes the audit trail as the information needed to verify the basis for the records, including who performed the bookkeeping. In an AI-supported process, it should therefore be possible to retrieve the original source document, the extracted values, the results of the rules, any corrections, the approver and the final reference in the bookkeeping system.

This does not mean that every technical detail must be retained. The log should make specific questions easy to answer: What came in? Which version of the rules was used? Why was the entry approved, rejected or referred for review? What was actually created?

A subsequent reconciliation should confirm that every accepted source document has resulted in an entry and that the expected document remains attached to it. Otherwise, the company risks having a process that appears complete in the integration layer but is incomplete in the accounts.

Start with the document workflow, not the model

The first task is to map the existing process. Where do the invoices come from? Who approves them today? Which suppliers and accounts recur? And where do errors or delays arise? Once this is clear, the relevant OCR tools, Python components, LLM APIs and integration methods can be selected.

Through nowa.dk, an AI automation service for Danish companies, Greg can map the workflow, build the extraction and validation stages, and connect the process to systems such as e-conomic. A realistic first version can be limited to one document type and a small number of known suppliers. Before expanding it further, the company can measure corrections, duplicates, processing time and the proportion of entries that still require manual review.

The strongest business case is not necessarily fully automated bookkeeping. It may just as readily be less rekeying, faster handling of standard cases and clear safeguards when something does not add up. With a proper control checkpoint, AI becomes a practical part of the document workflow without turning bookkeeping into a black box.

Related on GrN.dk

Need help with this type of work?

Get your document workflow mapped out. Contact Greg here.

Sources

Latest articles

Build a weekly marketing report from GA4 and Google Ads with verified calculations, clear data caveats and a short AI draft to support your Monday meeting.

Before buying a GPU, test one real team workflow on existing hardware. A Linux pilot can show whether quality, memory, response times, and running costs add up.

Planning a Drupal relaunch? Set clear rules for content, translations, media and old URLs, with a practical checklist for approving the migration and launch.

Use AI for your online store’s alt text with a manageable pilot: map the images, generate suggestions in Danish, and check the results in WordPress and WooCommerce.

Supplier files need more than extraction. Here’s how to check coverage, match SKUs, resolve unclear units and prices, and test product data before a catalogue import.

Shorter TLS certificates leave less room for renewal problems. Check domain validation, scheduling, deployment and the certificate your customers actually receive.

AI image credentials can disappear during routine website processing. Learn how to test your CMS, optimizer, CDN, and publishing workflow end to end.

AI-based ticket analysis can uncover recurring complaints, product defects and gaps in documentation—without the company needing yet another chatbot.

OpenAI’s X.509 workload identity can replace API keys for the right workloads. This practical framework helps teams decide where to start safely.

WordPress 7.1 helps AI agents discover and invoke site abilities. Here is how to keep exposure, authentication and permission firmly separate.

Review Greg on Google

Greg Nowak Google Reviews

 

Written recommendations from Trafik og Veje, Aarhus Municipality (2011) and AgroTech (2010) — read them on LinkedIn.