Tabba.
IntegrationerSådan virker TabbaFeatures

© 2026 Tabba. Alle rettigheder forbeholdes.

Udviklere
Udviklere
Udviklere
Overview
Delete a draft invoice DELETEList the invoices of the company GETRead one invoice GETList the credit notes booked against an invoice GETRead the revenue recognition of one invoice GETCreate a draft invoice POSTIssue an invoice now POSTReplace a draft invoice PUT

Andre spor

AI clientsREST API
Invoices

Read the revenue recognition of one invoice

Earned, billed, deferred revenue and work in progress, per line and for the invoice, in the company’s base currency. The figures are the month-end accrual’s own, stated as of the last day of month: the running month where it is left out.

GET
/invoices/{ref}/recognition

Authorization

bearerAuth
AuthorizationBearer <token>

An API key minted by an admin under Settings → Developers. It is bound to one company and has a scope: read, or read_write. A request without one, or with one that is not ours, is answered 401 and metered by its client address (x-rate-limits).

In: header

Path Parameters

ref*string

The record's id, or ext:<external_id> for the record that carries your own key.

Query Parameters

month?string

YYYY-MM: the month the figures are stated as of, at its last day. Left out: the running month, as it stands today.

Match^\d{4}-(0[1-9]|1[0-2])$

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/invoices/string/recognition"
{  "object": "invoice_recognition",  "invoice_id": "string",  "customer_id": "string",  "currency": "string",  "month": "string",  "earned": 0,  "billed": 0,  "deferred": 0,  "wip": 0,  "missing_rates": [    {      "invoice_line_id": "string",      "currency": "string",      "at": "string"    }  ],  "lines": [    {      "invoice_line_id": "string",      "description": "string",      "recognition_method": "value",      "earned": 0,      "billed": 0,      "deferred": 0,      "wip": 0    }  ]}

List the credit notes booked against an invoice GET

Only booked credit notes are listed, those a recurring series’ end booked among them: an attempt that did not book is no credit. Oldest change first; the stamp is taken when the credit note is written, so `updated_since` needs no overlap.

Create a draft invoice POST

A draft is Tabba’s own record: nothing is asked of the accounting platform until the invoice is issued. With an `external_id` no invoice carries, a draft is created and the answer is 201. With one a draft carries, that draft is replaced and the answer is 200: a line that states its `id` stays the line it was, with the work registered on it; a line that states none is new; a line the body leaves out is removed. Two creates under one `external_id` at the same moment make one invoice: the second is answered that invoice, or 409 `CREATE_IN_PROGRESS` with `Retry-After` while the first is still writing it. An `external_id` an ISSUED invoice carries is refused with `INVOICE_ALREADY_ISSUED` (409): an issued invoice is frozen, and a credit note is the way to change it.