Webhooks

Webhooks: your system learns at once what happened here

Anyone running a second system does not want to ask every ten minutes whether something happened. A webhook reports by itself, at the moment it happens.

  • Seven events
  • Secured with a signature
  • Included from Business
  • 7Events that trigger a notification
  • 1Endpoint, which you provide yourself
  • SignatureOn every message, to verify the origin
  • BusinessThe plan from which they are included
  • At onceNo polling every few minutes

Which events trigger a webhook

Volk Accountant notifies other programs through webhooks as soon as something happens in your account. Seven events trigger one: invoice created, invoice paid, quote accepted, new expense, new client, payment received and payment failed. The notification goes to an endpoint you provide, and it carries a signature your system can use to confirm that it really came from us and was not altered on the way. Webhooks are included from the Business plan. They do not replace querying data: the webhook says what happened, and what your system does with that is up to it.

First of all

What a webhook actually is

The term sounds more technical than the thing is. Once you have heard it, you recognise it everywhere.

A webhook is a message a program sends out by itself as soon as something has happened inside it. You provide an address once, and from then on Volk Accountant sends a short message there whenever one of the seven events occurs in your books.

WebhookThe message comes to you
Volk AccountantInvoice paidYour system

The event triggers it, not a question. Your system does nothing but listen.

What differs from the usual route is the direction. Without a webhook your system would have to keep asking: is there a new invoice? And now? And now? That costs requests, and between two of them there is always a gap. With a webhook your system finds out at the moment it happens, without having asked.

If you want a comparison: a webhook is the call you receive. An API is the number you dial when you want to know something.

The events

Which seven events trigger one

A webhook is only as useful as the list of what it reports on. So here is the whole list.

The last two come from the Stripe integration. Payment failed in particular is the event a second system should hook into, because otherwise nobody notices a failed payment until somebody reviews the outstanding items.

Custom triggers cannot be defined. It is these seven, and what your system makes of them is your decision.

These seven
  • Invoice createdon finalising
  • Invoice paidafter the payment is matched
  • Quote acceptedwhen the client agrees
  • New expensewhen a receipt is posted
  • New clienton creation
  • Payment receivedfrom the payment integration
  • Payment failedso you can follow up
The signature

How your system verifies the message came from us

An endpoint that accepts messages from outside accepts them from anybody. So every notification carries a signature.

  1. 1

    Something happens

    An invoice is finalised, a quote is accepted, a payment arrives.

  2. 2

    We send

    The notification goes to the endpoint you provided, together with a signature.

  3. 3

    You verify

    Your system recomputes the signature. If it does not match, the message was not from us or was altered on the way.

That third step is not a suggestion. An open endpoint without verification is an invitation to anybody who knows it, and it becomes known sooner than you would like.

Webhook or API

When you need which of the two

Both connect your system to your books, but they answer different questions. Confusing them usually costs half a day.

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.

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.

  • From the Business plan. There are no webhooks on Starter.
  • Seven fixed events. Custom triggers cannot be defined.
  • A webhook reports; it does not deliver a report. Anyone who needs data fetches it through the API.
Asked often

Questions that come up before you start

Which events trigger a webhook?

Seven: invoice created, invoice paid, quote accepted, new expense, new client, payment received and payment failed. Custom triggers cannot be defined, it is exactly these seven.

How do I check that a message really came from you?

Every notification carries a signature. Your system recomputes it; if it does not match, the message was not from us or was altered on the way. That step is not a suggestion: an open endpoint without verification accepts messages from anybody.

Do webhooks need a server of my own?

You need an internet address that can accept messages. That can be your own server, but equally a service that turns an incoming notice into an action. Volk Accountant sends there, and assumes nothing beyond that.

From which plan are webhooks available?

From Business, together with the public API. Starter has neither. A webhook reports that something happened; the data behind it is fetched through the API.

Point it at a test endpoint and write an invoice

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

Checked 5 October 2026