Tabba.
IntegrationerSådan virker TabbaFeatures

© 2026 Tabba. Alle rettigheder forbeholdes.

Udviklere
Udviklere
Udviklere
Overview
A month-end accrual entry was booked WebhookA credit note was booked WebhookA customer changed WebhookAn invoice was issued WebhookAn issued invoice was not sent WebhookA product changed Webhook

Andre spor

AI clientsREST API
Webhooks

An invoice was issued

The accounting platform booked the invoice: by the daily run, by an admin at the desk, or by a call to the issue route. Sent once per invoice. data is the invoice as GET /invoices/{ref} answers it.

Header Parameters

Tabba-Signature*string

t=<unix seconds>,v1=<hex>: v1 is the HMAC-SHA256, in hex, of <t>.<body> under the endpoint's signing secret, where <body> is the request body byte for byte. Verify it before you trust the body, and refuse a t more than 300 seconds from your own clock. A retry and a replay carry the same body under a new signature.

Tabba-Event-Id*string

The event's id, as in the body.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

Example Requests

POST/invoice.issued

A customer changed Webhook

A customer was created, changed, switched off or deleted, in Tabba or on the accounting platform, where a change is seen at the next import. `data` is the customer as `GET /customers/{ref}` answers it, with `archived_at` and `deleted_at`. Two changes in quick succession may both carry the later state.

An issued invoice was not sent Webhook

The invoice was booked, and its delivery to the customer is not known to have succeeded. Sent beside `invoice.issued`, never instead of it. `data.send_error` says why. The invoice is in the books: follow up on the delivery, and do not issue it again.

object*string
id*string

The same for every endpoint the event went to and for every retry and replay of it. Delivery is at least once: tell a repeat by this id.

Match^evt_[0-9a-f]{32}$
type*string
created_at*string

When the event was announced.

data*