Public API: clients and invoices from your own system
If your invoices are produced in another system, they should not be typed twice. That is what the API is for, and right now it does exactly two things.
- Clients and invoices
- A key per company
- First stage
- GET/clients
- POST/clients
- GET/invoices
- POST/invoices
- 2Resources: clients and invoices
- 1Key per company, never beyond it
- BusinessThe plan from which it is included
- Create and readBoth directions, for both resources
What the API does and what it does not
Volk Accountant has a public programming interface for creating and reading clients and invoices. Access runs through a key issued per company; anyone running several companies therefore holds several keys, and a key never reaches beyond its own company. The API is included from the Business plan and is in its first stage: there is no public documentation yet, and other areas such as receipts, bank entries or the Cyprus filings cannot be reached through it. For notifications about events there are webhooks instead.
What an API actually is
API stands for application programming interface. The words are heavier than the idea behind them.
An API is a way in for programs rather than for people. What you click in the interface, another program can do directly through the API: create a client, read an invoice. There is no window and no mouse, only defined commands and defined answers.
It starts at your end. Your system decides when to ask, and what comes back is data.
The two commands this page is about are GET and POST. GET means fetch, POST means create. So GET /invoices retrieves invoices and POST /invoices creates one. That is the whole vocabulary you need to start.
An API earns its keep when the data already exists somewhere else. If your shop or your project tool already knows what should be billed, it should be able to create the invoice itself rather than somebody retyping it.
What the API can do today
An interface that promises more than it delivers costs more time than none at all. So the scope comes before the benefit.
This is the first stage, and the phrase is here because it describes the situation. Receipts, bank entries, templates and the Cyprus filings cannot be reached through the API.
An invoice created through the API gets the same logic as one written in the app: the tax treatment is proposed from the company’s country and the client’s, and the number is assigned on finalising. How that works is on the invoicing page.
- Read clientsone at a time or as a list
- Create clientswith country and VAT number
- Read invoicesone at a time or as a list
- Create invoiceswith line items and treatment
One key applies to exactly one company
Anyone running several companies is running several sets of books. A key that reached across all of them would be convenient and wrong.
- 1
Create the key
In the settings of the company it is meant for. It is shown once.
- 2
Store it in your system
Your system sends it with every call. Several companies mean several keys.
- 3
Revoke it
A key can be invalidated at any time without affecting the others.
That a key never reaches beyond its company is the same separation as in the interface. What else stays separate is on multiple companies.
The difference between the two
Both connect your system to your books, and they get mixed up regularly. The difference comes down to one question: who starts?
An event occurs and we send a short notice. Your system learns THAT something happened.
You ask whenever you want and get data back. Your system learns WHAT exactly happened.
The whole distinction sits in the direction of the first arrow. With a webhook it points towards you, with the API it points away from you.
In practice the two work together. The webhook says an invoice was paid, and the API hands over that invoice when asked. Both are included from the Business plan.
Programming interfaces at other providers
Several providers have one, but rarely on the entry plan. Every figure comes from the provider's own public pages.
| Volk Accountant | Cybooks | Sumly | Balabook | Accountly | TidyBooks | BTMS | QuickBooks | Xero | Billino | |
|---|---|---|---|---|---|---|---|---|---|---|
| API for your own integrations | API access from Business, €49/month | not published | not published | public API and MCP server | Enterprise plan only, price on request | from Pro, €39/month | not published | not published | not published | API on Plus, 1,000 calls |
| Ready-made integrationsConnections that work without programming. As opposed to an API, which someone has to build against. | Stripe, Google Drive, webhooks, API, Claude, ChatGPT | not published | not published | none named individually, open API instead | not published | from Pro, none named individually | not published | hundreds of apps, none for Cyprus named | not published | not published |
Balabook is the only provider naming a public API together with an MCP server, and Accountly offers one only on its Enterprise plan with the price on request. Ours belongs to the Business plan, though in the first stage described above and without public documentation. That is the honest state of it, and it says so here rather than after you buy.
Where a dash appears, the provider publishes nothing on that point. The full comparisons are in the provider overview.
What this feature does not do
We put this in writing because it affects the decision. Finding out after you have paid means you bought the wrong tool.
- No public documentation yet. Anyone wanting to use the API asks us for the description.
- First stage. Receipts, bank entries and the Cyprus filings cannot be reached through the API.
- From the Business plan. There is no access on Starter.
- No notifications. What happened is reported by a webhook, not by the API.
Questions that come up before you start
What can I create and read through the API?
Clients and invoices, in both directions. Receipts, bank entries, templates and the Cyprus filings cannot be reached through the API. This is the first stage, and the phrase is here because it describes the situation.
Is there public documentation?
Not yet. Anyone wanting to use the API asks us for the description and gets it before buying. That way you can see beforehand whether it covers your case instead of finding out afterwards.
Does one key work for all my companies?
No, a key applies to exactly one company. Anyone running several companies holds several keys, and a key never reaches beyond its own company. Each can be revoked on its own without touching the others.
Does an invoice created through the API get the same tax logic?
Yes. The tax treatment is proposed from the company country and the client country, and the number is assigned on finalising, exactly as when writing in the app. An invoice through the API is not a second-class invoice.
What goes with this
Checked 5 October 2026


