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

Change the fields of a product that the body states

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.

PATCH
/products/{ref}

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.

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

curl -X PATCH "https://example.com/products/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "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"}

Read one product GET

Forrige side

Create a product POST

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.

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
comments?string|null
external_reference?|null
default_price?number
Range0 <= value
external_id?|null