10T Studios
en/sk
All articles

Connecting a system to accounting software

7 min read

Short answer

An accounting integration is almost always one-directional: the system sends the accounting package what an invoice needs, and pulls back whether it was paid. With cloud tools that have a REST API this is a few days of work. With locally installed packages it goes through XML or the database, takes two to three weeks, and has to run where that machine is.

01What to send and what not to

Only what is already decided belongs in accounting. An issued invoice, a delivery note, a received order. A quote still being negotiated does not — accounting is not where things that may still change get edited.

Two things are worth pulling back: whether an invoice was paid, and the customer's balance. The second is underrated — with it the CRM can block an order from a customer who owes money, and that pays for itself faster than the rest of the integration.

02Cloud accounting

The cloud packages have a REST API, token authentication and documentation. Issuing an invoice is one call; payment status is either polled or delivered by webhook.

Budget a few days including tests and error handling. The thing to settle is matching: how a customer in the CRM is tied to a customer in accounting. Ideally by company registration number, never by company name.

03Locally installed packages

These run on a machine at the client's office, so the integration is not only about an API but about where the connecting piece runs and what happens when that machine is switched off.

They typically expose an XML interface or an import format. In every case it is batched rather than immediate — invoices transfer on an interval, not the second they are created, and for most companies that is entirely fine.

Agree one thing in advance: which system owns the invoice numbering. When both generate numbers, two invoices eventually share one, and that gets fixed by hand, retroactively.

04Where it usually breaks

Rounding and VAT. The accounting package calculates its own totals, and if the custom system calculates its own too, they differ by a cent and someone complains every month. The fix is simple: one system calculates, the other takes the result.

Missing data. An invoice cannot be issued without a registration number, an address and payment terms. If the CRM does not require them when a customer is created, the integration fails on half the cases and someone fills them in by hand.

What happens on failure. “It retries” is not an answer — there has to be a place where you can see what did not go through, and somebody who looks at it.

05What it costs

A straightforward cloud accounting integration: roughly €800 to €2,000. A locally installed package including deployment at the client: €1,500 to €4,000. Plus small maintenance, because formats change occasionally.

If you issue fewer than ten invoices a month, do not build it. Retyping ten invoices is an hour a month and that never pays back.

Frequently asked

Can a locally installed accounting package be connected to a custom system?
Yes, usually through an XML interface or a server component. The transfer is batched rather than immediate, and the connecting piece has to run where the accounting machine is reachable.
Which system should generate invoice numbers?
Only ever one. When both do, duplicates appear and have to be corrected by hand after the fact.
What does an accounting integration cost?
Cloud accounting with a REST API is roughly €800 to €2,000; a locally installed package is €1,500 to €4,000 including deployment.

More articles