Українська

AI

AI for source documents: what it costs to read 1,000 pages of delivery notes and acts, which mandatory details under Article 9 of Ukraine's Accounting Law it can only check, and where a person must stay in the process

Every month, the bookkeeper at a small company types hundreds of delivery notes and service acts into the accounting system. Document recognition services promise to do it for them. But a source document is not just a picture with numbers: the law requires certain details on it, and the service is not the one responsible when a faulty document is accepted into the books.

Updated 2026-11-03 8 min Figures carry a check date
Illustration generated with AI (OpenAI gpt-image-2.5-flare) and labelled with IPTC metadata.

What it costs to read 1,000 pages

For a small company, 1,000 pages a month is roughly 50 delivery notes and acts per working day. Below are pay-per-page rates with no monthly subscription, taken from the pricing pages of Google Document AI, Azure Document Intelligence and OpenAI on 3 November 2026. Hryvnia amounts use the National Bank of Ukraine rate for 3 November: UAH 45.5348 per dollar.

Service and modeWhat it returnsPrice1,000 pages a month
Azure, ReadPage text$1.50 per 1,000 pagesUAH 68
Google, Enterprise Document OCRPage text$1.50 per 1,000 pagesup to UAH 68
Azure, prebuilt models (invoice, receipt, contract)Fields in a fixed schema$10 per 1,000 pagesUAH 455
Google, Form ParserKey-value pairs, tables$30 per 1,000 pagesUAH 1,366
Google, Custom extractorYour fields, trained on your documents$30 per 1,000 pagesUAH 1,366
Azure, Custom extractionYour fields, trained on your documents$30 per 1,000 pagesUAH 1,366
OpenAI gpt-6-astra, batch (illustrative estimate)Whatever the prompt asks for$5 / $25 per 1M tokens≈UAH 1,246
OpenAI gpt-6-astra, standard (illustrative estimate)Whatever the prompt asks for$10 / $50 per 1M tokens≈UAH 2,493
Google, Invoice parser, one-page invoicesInvoice fields in a fixed schema$0.10 per document of up to 10 pagesUAH 4,553
1,000 pages a month, UAH
Azure Read, text only68
Azure, prebuilt invoice model455
OpenAI, batch≈1,246
Google Form Parser1,366
OpenAI, standard≈2,493
Google Invoice parser4,553

1,000 pages × rate × UAH 45.5348/$ (NBU rate for 03.11.2026). Rates checked on 3 November 2026 on the providers' pages. Excludes free tiers, file storage and the cost of building the integration.

How the rows that need explaining were calculated:

  • OpenAI bills tokens, not pages. The images and vision guide caps gpt-6-astra at high detail at 2,500 patches of 32×32 pixels, multiplied by 1.2. An A4 scan at 200 dpi (1,654 × 2,339 pixels) is scaled down to that budget and costs 2,974 input tokens. We assumed 500 tokens of instructions and 400 tokens of output listing the fields; that gives $0.0547 a page at standard rates and $0.0274 in batch. If the model writes a longer answer or reasons for longer, the price goes up.
  • There is no estimate for OpenAI's cheaper models. The pricing page on 3 November lists gpt-6.1-sol, gpt-6.1-terra and gpt-6-luna, but the vision guide gives no multiplier or patch budget for them. Their cost per page cannot be worked out from the documentation, only from a trial run on your own documents.
  • Google's Invoice parser bills per document, not per page. One request covers up to 10 pages for $0.10. For one-page delivery notes that is 3.3 times more than Form Parser; for ten-page documents it is three times less.
  • Free tiers. Azure gives 500 pages a month on a separate free tier. Google's table marks the first tier of Enterprise Document OCR, "0–1,000", as free, which is why that row says "up to UAH 68".

Even the most expensive option is UAH 4,553 a month. The main cost here is not the rate but the setup: someone has to connect the service to the accounting system and work through the first few hundred errors.

Text, fields or a language model

The 20-fold price gap between the first and fourth rows of the table is a gap in what you get back.

  1. Text only (Read, Enterprise Document OCR). The service returns the words and lines on the page. Working out who the supplier is, what the total is and where the item table sits is left to your own code. This fits when documents look the same, for example from three regular suppliers whose forms never change.
  2. Fields in a fixed schema (Azure prebuilt models, Google Invoice parser). The service finds the supplier, number, date, total and line items itself. The schemas are built around a typical invoice; whether they recognise a Ukrainian delivery note with its own fields is something to test on your samples before you connect anything.
  3. Your own fields (Custom extractor, Custom extraction). You show the service a few dozen labelled documents and it learns to find your fields. The most expensive per page, and the closest to what the accounting system needs.
  4. A language model (OpenAI). You send an image of the page with an instruction such as "return supplier, company code, date and line items as JSON". No training is needed, but results can vary between runs, and a total can be "read" wrongly without the model flagging any doubt. The services in points 2–3 return a confidence score for each field, which makes it easy to route a document to a person.

For connecting a service like this to a spreadsheet or accounting system without a developer, see the article on automation without a programmer.

What the law requires from a source document

Part 2 of Article 9 of Ukraine's Law "On Accounting and Financial Reporting" No. 996-XIV lists six mandatory details of a source document, on paper or electronic. The table shows what AI can do with each of them and what stays with a person.

Detail under Article 9What AI can doWhat a person decides
Name of the document (form)Recognise documents and sort them by typeWhether this is the document that supports this particular transaction
Date of preparationRead the date and compare it with the order and payment datesWhich reporting period the transaction belongs to: under Part 5, the one in which it took place
Name of the company on whose behalf it was preparedRead the name and code, match them against the counterparty listWhether this is the counterparty you have a contract with
Content and volume of the transaction, unit of measureRead items, quantities and prices; match them to the order and recalculate totalsWhether the goods actually arrived and the service was actually provided
Positions and surnames of the people responsible for the transaction and its correct paperworkCheck that the fields are filled in and match surnames against the list of authorised peopleWhether those people had the authority
Personal signature or other data identifying the person involvedFind the signature area and flag it if emptyWhether the signature is genuine; for an electronic document, whether the electronic signature has been verified

Three more rules in the same article bear directly on automation:

  1. Acts for services, works and leases from 2026. Law No. 4791-IX added a paragraph: if a document states the date or period of the services, works or lease, missing positions, surnames and signature on the customer's or tenant's side is not a breach. The condition is that a written contract provides for this procedure and the transaction is recorded in the period it took place. The rule does not apply to transactions paid from public funds, leases of state or municipal property, construction contracts or charitable aid. So the "empty signature area" check for acts has to take the contract into account, not just the form.
  2. Minor defects are not grounds for refusing to recognise a transaction, provided the document still identifies the person involved and shows the date, the company name, and the content and volume of the transaction. A recognition error in a secondary field should not turn into sending the document back to the counterparty.
  3. Protection against unnoticed corrections. Under Part 7, a company takes measures so that entries in source documents and registers cannot be corrected without authorisation and without trace. For an AI process this means keeping the original scan or file, and logging every edit to recognised data with its author and time.

Recognised fields are not a source document in themselves. The basis for the books remains the delivery note or act they were read from. The last column of the table is what AI will not check at any price: it sees the document, not the warehouse and not the contract.

A process with human checkpoints

The recognition service sits between the mailbox (or scanner) and the accounting system. A person does not review every document, only those where something did not match.

A recognised document: four checks before it reaches the books
  1. Is the service confident about every key field?Supplier, code, date, total, quantity. Set the confidence threshold yourself after the first 200 documents, once you see which values the service got wrong. No → the document goes to a person with the fields highlighted
  2. Is the counterparty in your list, with a valid contract?Match on the company code (EDRPOU) or individual tax number, not the name: the service can misread one letter of a name. No → a person finds out whose document it is
  3. Do items, quantities and the total match the order or invoice?Code recalculates "quantity × price" and the total, not the model. A one-kopiyka difference is still a difference. No → a person checks with the storekeeper or manager
  4. Does the document carry the responsible people's signatures?For paper, a flag that the signature area is filled; for an electronic document, verification of the electronic signature. No → for a services act, check whether the contract allows it without the customer's signature; otherwise the document goes back to the counterparty

A document that passes all four checks lands in the accounting system as a draft. The bookkeeper posts it. That way the decision to accept it into the books stays with a person, and manual work shrinks to the documents with mismatches.

An illustrative example for sizing the workload: with 1,000 pages a month and 15% failing the first check, a person handles 150 documents instead of 1,000. Only your own documents from the first month will show the real share.

Whose documents these are and where they may go

Delivery notes and acts are commercial information belonging to you and your counterparties, and the signatures and details of sole proprietors are also personal data. Before connecting a service, read its data processing agreement and find out where files are stored. The APIs in the table run under separate business terms, not the terms of a free chat app. General rules are in the article on what data you can give an AI assistant.

For an accounting firm keeping books for clients, source documents are someone else's data held under contract. What to do about that, and why they should not be pasted into a chat assistant, is covered in the article on AI for a law or accounting firm.

Our position

For a small company with a few hundred documents a month, start with Azure's prebuilt invoice model or Google's Form Parser and test them on 50 of your own delivery notes and acts. The price difference stays within a thousand hryvnias a month, and the difference in quality on Ukrainian forms only shows on your samples. Use a language model when your documents vary widely and there is nothing to train a service on. Recalculate every key field in code, match it against your counterparty list and the order, and leave posting the document to a person.

This position does not hold if most of your source documents already arrive electronically through an e-document exchange system. Then the data comes structured and with an electronic signature, and there is nothing to recognise: integrating the document exchange system with your accounting software is cheaper and more accurate than any scan recognition.

Checked on 3 November 2026 on the pricing pages of Google Document AI, Azure Document Intelligence and OpenAI, in OpenAI's images and vision guide, and against the NBU rate on bank.gov.ua. Article 9 of Law No. 996-XIV as amended on 01.04.2026 was checked against an archived copy of the zakon.rada.gov.ua page from 10.09.2026: on 3 November the site was not responding, and the law's record page on 18.10.2026 showed the same version. This is an overview of the rule, not accounting advice.

Still not sure this applies to you?

Describe the situation. The first reply says whether this is our work and how long the diagnostic takes.

Request a diagnostic