Skip to content
Пилотная фаза – пока не коммерческое предложение. Первые 500 пользователей работают бесплатно и дают нам обратную связь. Первый тарифный раунд стартует в мае 2027
Firmspace
Назад в блог

The VAT Line the AI Must Not Fill In: How Firmspace Chooses the Tax Rate

On a Tuesday morning a consultant at a German firm asks the assistant to prepare an invoice for one day of work. The assistant proposes the line: a description, one unit, a price. It does not propose a tax rate. The draft appears with 19% USt. on the line and a total that includes tax. On another invoice, from a firm that has ticked the small-business box, the same kind of line appears with 0% and a note at the bottom: Gemäß §19 UStG (Kleinunternehmerregelung) wird keine Umsatzsteuer berechnet. Both documents were prepared by the same assistant. Neither rate came from the model.

In Firmspace the tax decision lives in the finance settings of the firm, not in the prompt. The settings carry the country, the small-business mode, the Ukrainian VAT-payer flag and the Uzbek tax regime. They change rarely and they belong to the firm, not to a single invoice. Every document route reads them before it saves a line.

The same policy function is called from every creation path: an invoice typed directly, a quote, an order, a recurring invoice, a credit note, a duplicate, a sale at the POS. This is not elegance for its own sake. A tax rate that depends on which screen created the document is a bug waiting for a quiet Friday.

For an exempt firm the policy is absolute. Every line becomes 0%, whatever rate arrived from the browser, and the totals are computed without tax. The PDF prints the note and the tax column shows a dash instead of a percentage. In Germany the note names §19 UStG; in Ukraine the document says that VAT is not charged because the firm is not a VAT payer; in Uzbekistan it says that QQS is not charged. The note is not decoration: it explains why the total has no tax part.

For a VAT payer the policy is a default, not a straitjacket. A line without a rate gets the standard rate stored for the firm's country. A line with an explicit rate keeps it, which is how a reduced rate for a book or a zero-rated export survives. The browser cannot smuggle tax onto an exempt invoice, but the system does not force one rate onto every line of a payer. Mixed rates are a real part of small-business invoicing.

The assistant's line-item schema contains three fields: description, quantity and unit price. There is no tax-rate field. The model literally cannot pass a rate through the tool. It proposes the commercial line; after a person confirms, the server applies the firm's policy. A human can still edit a line rate in the document, because a human carries the responsibility. The model does not.

The division of labour is deliberate. A language model is good at naming a service and poor at jurisdiction. Rates change, exemptions depend on the firm and on the customer, and a plausible wrong rate is worse than a blank. The assistant is allowed to say that it does not know; it is not allowed to guess a tax rate and wrap the guess in a confident sentence.

There is a nuance around zero. For a VAT payer, zero is a value, not a missing field. The policy fills only rates that are undefined or null; an explicit zero stays zero, which is what an export or a zero-rated service needs. The AI cannot express that zero, because it has no tax field at all. If a zero-rated line is required, a person edits the line. That small manual step is the price of not letting the model turn an export into a domestic sale.

Documents keep the rate with which they were created. Changing the firm's tax mode later does not rewrite an invoice that has already been issued. New documents, including recurring runs, duplicates and credit notes, use the settings in force at the moment they are created. That is the right direction for an audit trail, and a reason to check the settings before a batch, not after it.

The PDF is where the policy becomes visible: the tax label of the country (USt., ПДВ, QQS), a tax column on every line, net, tax and gross totals, and the exempt note. A German invoice also carries a supply date under §14 Abs. 4 Nr. 6 UStG; when nobody sets it, it defaults to the invoice date. The assistant can prepare the document, but it cannot make a missing legal field appear by writing a confident paragraph.

The reports add warnings, not verdicts. They flag a period with several tax rates, an active §19 mode, or invoices that carry a customer VAT ID and may belong to an intra-EU section. These are prompts to look, not a tax return. Firmspace prepares registers and PDFs; it does not file taxes and does not replace an accountant. The code says as much, and the article should not pretend otherwise.

The practical checklist is short. Set the country and the tax mode once. Use an explicit zero only when it is true. Check mixed rates before sending a batch. Export the period for the accountant. And do not ask the chat which VAT applies: the answer is in the settings, not in the model. The boring line is the trustworthy one; the assistant's job is to keep the lines coming, not to invent the law.

What this article does not claim: current rates for every country, the correct treatment of a specific cross-border case, or how often mixed rates appear in real books. Those questions need a tax adviser and the firm's own documents. Any number beyond the defaults stored in the code would require access to that advice and those books.

Автоматизируем ваш следующий процесс вместе.

Опишите повторяющийся рабочий процесс. Мы вместе проверим, можно ли его разумно автоматизировать.