Public API

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
  • 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.

First of all

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.

APIYou ask, you get an answer
Your systemGET /invoicesthe invoicesVolk Accountant

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.

The scope

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.

Available calls
  • 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
The access

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. 1

    Create the key

    In the settings of the company it is meant for. It is shown once.

  2. 2

    Store it in your system

    Your system sends it with every call. Several companies mean several keys.

  3. 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.

API or webhook

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?

WebhookWe start
Volk AccountantInvoice paidYour system

An event occurs and we send a short notice. Your system learns THAT something happened.

APIYou start
Your systemGET /invoicesthe invoicesVolk Accountant

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.

Compared

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.

Interfaces compared
Volk AccountantCybooksSumlyBalabookAccountlyTidyBooksBTMSQuickBooksXeroBillino
API for your own integrationsAPI access from Business, €49/monthnot publishednot publishedpublic API and MCP serverEnterprise plan only, price on requestfrom Pro, €39/monthnot publishednot publishednot publishedAPI 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, ChatGPTnot publishednot publishednone named individually, open API insteadnot publishedfrom Pro, none named individuallynot publishedhundreds of apps, none for Cyprus namednot publishednot published
A dash means the provider publishes nothing on this. That is not the same as “cannot do it”.Details on Cybooks, Sumly, Balabook, Accountly, TidyBooks, BTMS, QuickBooks, Xero, Billino taken from the providers’ public pages, retrieved on 20 September 2026. Prices may have changed since. The provider’s own page always takes precedence.

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.

Straight answer

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.
Asked often

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.

Ask us for the API description

Start free for 14 days
No credit cardServers in Frankfurt, encrypted

Checked 5 October 2026