Practice 18 September 2026

An AI agent handled invoicing end to end. It also sent one with a wrong IBAN digit.

A small agency let an AI agent send invoices on its own, until one had a wrong charge and one had a mistyped IBAN. The fix was a plain check against the books, not a smarter prompt.

Where this comes from

The origin. Posted by u/easybits_ai to r/nocode, spotted 18 September 2026.

What we know. The poster describes a friend, Jonas, who runs a small B2B agency, and the guardrail workflow built after two invoicing mistakes. The account comes directly from that post. We have not independently verified the incidents described.

A small B2B agency let an AI agent write and send client invoices on its own: draft, attach, send. It worked well enough that nobody checked it closely, until one client was overcharged by a few hundred euros, and a second invoice went out with a transposed digit in the bank details. The agent was confident both times. It was also wrong.

Confident is not the same as correct

According to the poster, the appeal of the setup was obvious. No more copying numbers between a project tracker and an invoicing tool, no forgetting to bill for the last week of work. The agent handled the whole loop end to end, and for a while that looked like a clean win.

Then a client wrote back confused about being billed over the agreed amount. The same week, an invoice went out with one wrong digit in the IBAN. Neither document looked off. The agent produced a clean, well formatted invoice both times, which is exactly the problem. Asking a language model to "verify" its own output does not produce a check. It produces another guess dressed up as a check, and the guess usually agrees with the first one.

The fix was a comparison, not a better prompt

The response described in the post was not a smarter instruction to the agent. It was a step the agent has to pass before anything ships. Pull the invoice PDF. Extract the fields that matter: invoice number, customer, IBAN, VAT ID, net total, VAT amount, gross total, service period. Then look up the expected values for that same invoice number in the actual books, a plain spreadsheet in the version described, and compare the two sets of numbers field by field. If anything does not match, the invoice does not go out.

No model makes that call. A direct comparison against a system of record does, and it does it the same way every time. The agent's real strength, drafting and formatting a document from messy inputs, stayed exactly where it was useful. Deciding whether a number is correct moved to a place that cannot be talked into agreeing with a wrong answer.

Two things to do tomorrow morning

First, before connecting an AI agent to anything that touches money or reaches a client unsupervised, find the one record in the business that already holds the truth. A ledger, a signed quote, a project tracker. Whatever the agent produces should be checked against that record, not against its own earlier draft and not against its own sense of whether a number looks right.

Second, write that check as a plain comparison, not as another instruction to the model. "Compare field A in the document to field B in the record, block if they differ" is work for a spreadsheet formula or a simple workflow step. Asking the same model to re-read its own draft and confirm it is correct just stacks a second guess on top of the first.

None of this is a reason to keep AI out of invoicing, scheduling, or anything else that touches real numbers. The lesson is narrower. The parts of a job that involve a judgment about a correct amount, a correct account number, a correct total, belong to a deterministic check sitting between the agent and the send button. Everything else, drafting, formatting, chasing a client for a missing detail, can stay exactly where it already is.