Skip to content

Articles

Contains data on Articles (products). Articles are structured hierarchically as:

  • Article Group
    • Article Sub Group
      • Article

Storage Location

{customer_id}-article.json

Fields

FieldTypeRequiredDescription
idstringYesUnique ID. Is integer but stored as string.
namestringYesArticle name.
customer_idintegerYesRelationship to Customer owning the Article.
article_numstringYesExternal reference number, PLU or similar.
group_idintegerYesIdentifier for Article Group.
group_namestringYesName of Article Group (denormalized).
sub_group_idintegerYesIdentifier for Article Sub Group.
sub_group_namestringYesName of Article Sub Group (denormalized).
parent_article_idstringNov1.1. Reference to parent article (for variant/child articles).
display_namestringNov1.1. Optional display name used on receipts etc.
article_typestringNov1.2. Article type: regular_article, booking_no_show_fee, or bundle.
bundle_display_modestringNov1.2. Bundle only: how components display (expanded/collapsed).
bundle_discoverablebooleanNov1.2. Bundle only: whether the bundle can be suggested when a component is added.
pricesarrayNov1.2. Currently-active price rows for the article (see below). Absent when the article has no active price.

Prices (v1.2)

Each element of prices is an active price row for the article:

FieldTypeDescription
tax_code_idintegerTax code identifier.
tax_pctintegerTax (VAT) percentage for the tax code.
net_pricefloatNet price (excluding tax).
gross_pricefloatGross price (including tax).
account_idintegerGL account this price books revenue to.
saft_basic_idstringSAF-T classification code of the account (absent when untagged).
last_modified_atdatetimeWhen this price row was last changed.
json
{
  "id": "584758",
  "customer_id": 10352,
  "name": "Latte",
  "article_type": "regular_article",
  "prices": [
    { "tax_code_id": 2, "tax_pct": 15, "net_price": 54.78, "gross_price": 63,
      "account_id": 35116, "saft_basic_id": "04012", "last_modified_at": "2026-05-01T12:00:00" }
  ]
}

Article Hierarchy

Articles are organized in a two-level hierarchy:

Article Group (e.g., "Boller")
└── Article Sub Group (e.g., "Bakst", "Boller")
    └── Article (e.g., "Kanelsnurr", "Croissant")

This hierarchy enables reporting and analytics at different levels of aggregation.

Example

json
{
  "id": "584734",
  "customer_id": 10352,
  "group_id": 44664,
  "group_name": "Boller",
  "sub_group_id": 79131,
  "sub_group_name": "Boller",
  "article_num": "1103",
  "name": "Kanelsnurr s"
}

Example - Article with Display Name

json
{
  "id": "644572",
  "customer_id": 10352,
  "group_id": 44664,
  "group_name": "Boller",
  "sub_group_id": 79131,
  "sub_group_name": "Boller",
  "article_num": "34353",
  "name": "Fastelavensbolle med solbær",
  "display_name": "Fastelavensbolle med solbær"
}

Example - Multiple Articles

json
[
  {
    "id": "584732",
    "customer_id": 10352,
    "group_id": 44664,
    "group_name": "Boller",
    "sub_group_id": 79131,
    "sub_group_name": "Boller",
    "article_num": "1101",
    "name": "Bringebærsnurr"
  },
  {
    "id": "584733",
    "customer_id": 10352,
    "group_id": 44664,
    "group_name": "Boller",
    "sub_group_id": 79131,
    "sub_group_name": "Boller",
    "article_num": "1102",
    "name": "Croissant"
  },
  {
    "id": "584758",
    "customer_id": 10352,
    "group_id": 44665,
    "group_name": "Drikke",
    "sub_group_id": 79140,
    "sub_group_name": "Kaffe",
    "article_num": "4202",
    "name": "Latte"
  }
]

Technical documentation for partners and integrators