OfficeGest

Naming conventions

How fields are named in the OfficeGest API v2

Every field in the public API v2, in query parameters, request bodies and responses, follows three rules.

1. snake_case

Field names use lowercase letters, digits and underscores. Words are separated by _. camelCase, PascalCase and hyphens are not used.

RightWrong
customer_idcustomerId
selling_priceSellingPrice
due_datedue-date

Nested fields and list items follow the same rule on every level: lines.*.article_id, filter[family_id][eq].

2. Identifiers end in _id

A field that holds the identifier of another resource is named after that resource and ends in _id. A list of identifiers ends in _ids. The resource's own identifier is just id.

RightWrong
customer_ididcustomer
vat_idid_vat
article_idsids_article
idid_article (on the article itself)

3. Timestamps end in _at

A field with a date and a time is named after the event and ends in _at. Its value is an ISO 8601 date-time.

RightWrong
created_atcreatedAt
delivered_atdelivery_date
started_atstart_time

A field with only a date (2026-02-25, no time) is not a timestamp and keeps a descriptive name such as due_date.

Range and filter suffixes keep the timestamp name in front: created_at.from, filter[updated_at][gte].

{
  "id": 1042,
  "customer_id": 87,
  "document_number": "FT 2026/154",
  "created_at": "2026-02-25T10:15:00Z"
}

Deprecated fields

Some older fields were published before these rules. They keep working and are being replaced by snake_case names. Where an endpoint already supports the replacement, its reference page lists both fields.

EndpointDeprecated fieldReplacement
POST /sales/documents/{type}idcustomercustomer_id
POST /sales/documents/{type}customertaxidcustomer_tax_id
POST /sales/documents/{type}paymentmethodpayment_method
POST /sales/documents/{type}documentnumberdocument_number
POST /sales/documents/{type}lines.*.idarticlelines.*.article_id
POST /sales/documents/{type}lines.*.sellingpricelines.*.selling_price
POST /sales/documents/{type}lines.*.sellingpricewithvatlines.*.selling_price_with_vat
POST /sales/documents/{type}lines.*.vatidlines.*.vat_id

Keep sending the deprecated field until the endpoint's reference page documents the replacement.