Tabba.
IntegrationerSådan virker TabbaFeatures

© 2026 Tabba. Alle rettigheder forbeholdes.

Udviklere
Udviklere
Udviklere
Overview
Delete a product DELETEList the products the company offers GETRead one product GETChange the fields of a product that the body states PATCHCreate a product POST

Andre spor

AI clientsREST API
Products

Create a product

The product is written to the accounting platform first. With an external_id that a product already carries, that product is updated and the answer is 200; otherwise a product is created and the answer is 201. A product number names one product: where the platform already holds a product under the number, that product is answered with 200 and nothing is written to it. One create runs at a time under an external_id: a second while the first is still running is answered 409 CREATE_IN_PROGRESS with Retry-After, and the same request after that interval answers the product the first created.

POST
/products

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

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/products" \  -H "Content-Type: application/json" \  -d '{    "product_number": "string",    "name": "string",    "account_number": 1,    "unit": "string",    "default_price": 0  }'
{  "object": "product",  "id": "string",  "external_id": "string",  "product_number": "string",  "name": "string",  "account_number": -9007199254740991,  "account_ref": "string",  "unit": "string",  "default_price": 0,  "quantity": 0,  "comments": "string",  "external_reference": "string",  "updated_at": "string"}

Change the fields of a product that the body states PATCH

A field the body leaves out stays as it is. The change is written to the accounting platform first. A body that states only `external_id` asks the platform nothing.

Read the revenue recognition of one customer GET

Earned, billed, deferred revenue and work in progress over every line of every invoice of the customer, drafts and occurrences of recurring series among them, 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. Deferred revenue and work in progress are stated per line and summed, so a customer can carry both.

product_number*string
Length1 <= length
name*string
Length1 <= length
account_number*integer
Range0 < value <= 9007199254740991
account_ref?string|null
unit*string
Length1 <= length
quantity?number
Range0 < value
Default1
comments?string|null
external_reference?|null
default_price*number
Range0 <= value
external_id?string

Your own key. A create under one that is taken updates that product.

Length1 <= length <= 255