Developers

PUBLIC API v1

Partial update the product

PATCH /api/v1/companies/{company_pk}/products/{public_id}/

Partial update; `status: active` restores an archived product.

Permission: write_invoices · Direct link

Company-scoped. Account permissions, plan limits and document state still apply.

Path and query parameters

ParameterLocation / typeDescription
company_pkRequiredpath · string (uuid)Company's public id (primary key)
public_idRequiredpath · string (uuid)Product's public id (primary key)

Request body

application/json

FieldType / accepted valuesDescription
namestringNot specified
descriptionstringNot specified
type"GOODS" | "SERVICES"* `GOODS` - Goods * `SERVICES` - Services
unit"items" | "hours" | "days" | "kilograms" | "liters" | "meters" | "square_meters" | "" | nullNot specified
priceinteger (int64)Not specified
isPriceGrossbooleanNot specified
vatRateintegerNot specified
skustringNot specified
companyCategorystring (uuid) | nullNot specified
status"active" | "archived"* `active` - Active * `archived` - Archived

multipart/form-data

FieldType / accepted valuesDescription
namestringNot specified
descriptionstringNot specified
type"GOODS" | "SERVICES"* `GOODS` - Goods * `SERVICES` - Services
unit"items" | "hours" | "days" | "kilograms" | "liters" | "meters" | "square_meters" | "" | nullNot specified
priceinteger (int64)Not specified
isPriceGrossbooleanNot specified
vatRateintegerNot specified
skustringNot specified
companyCategorystring (uuid) | nullNot specified
status"active" | "archived"* `active` - Active * `archived` - Archived

application/x-www-form-urlencoded

FieldType / accepted valuesDescription
namestringNot specified
descriptionstringNot specified
type"GOODS" | "SERVICES"* `GOODS` - Goods * `SERVICES` - Services
unit"items" | "hours" | "days" | "kilograms" | "liters" | "meters" | "square_meters" | "" | nullNot specified
priceinteger (int64)Not specified
isPriceGrossbooleanNot specified
vatRateintegerNot specified
skustringNot specified
companyCategorystring (uuid) | nullNot specified
status"active" | "archived"* `active` - Active * `archived` - Archived

Responses

200 Response fields

application/json

FieldType / accepted valuesDescription
publicIdRequiredRead onlystring (uuid)Not specified
companyRequiredstring (uuid)Not specified
nameRequiredstringNot specified
descriptionstringNot specified
type"GOODS" | "SERVICES"* `GOODS` - Goods * `SERVICES` - Services
unit"items" | "hours" | "days" | "kilograms" | "liters" | "meters" | "square_meters" | ""Not specified
priceinteger (int64)Not specified
isPriceGrossbooleanNot specified
priceNetRequiredRead onlyintegerNot specified
priceGrossRequiredRead onlyintegerNot specified
vatRateintegerNot specified
skustringNot specified
companyCategorystring (uuid) | nullNot specified
companyCategoryCodeRequiredRead onlystring | nullNot specified
companyCategoryNameRequiredRead onlystring | nullNot specified
status"active" | "archived"* `active` - Active * `archived` - Archived
createdRequiredRead onlystring (date-time)Not specified
modifiedstring (date-time) | nullNot specified
usageRequiredRead onlyobjectNot specified
400 Response fields

application/json

FieldType / accepted valuesDescription
detailRequiredstringNot specified
codeintegerNot specified
type_stringNot specified
fieldRequiredstringNot specified
401 Response fields

application/json

FieldType / accepted valuesDescription
detailRequiredRead onlystringNot specified
403 Response fields

application/json

FieldType / accepted valuesDescription
detailRequiredRead onlystringNot specified
429 Rate limit exceeded. Wait for the Retry-After header before retrying.

Use the base URL https://api.norman.finance/api/v1. Sign up or log in to Norman to create an API key, then send it as a Bearer token. For an OpenAPI JSON file, contact support.