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 issued invoice was not sent

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.

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

An invoice was issued Webhook

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.

A product changed Webhook

A product 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 product as `GET /products/{ref}` answers it, with `archived_at` and `deleted_at`.

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*