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.
| Right | Wrong |
|---|---|
customer_id | customerId |
selling_price | SellingPrice |
due_date | due-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.
| Right | Wrong |
|---|---|
customer_id | idcustomer |
vat_id | id_vat |
article_ids | ids_article |
id | id_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.
| Right | Wrong |
|---|---|
created_at | createdAt |
delivered_at | delivery_date |
started_at | start_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.
| Endpoint | Deprecated field | Replacement |
|---|---|---|
POST /sales/documents/{type} | idcustomer | customer_id |
POST /sales/documents/{type} | customertaxid | customer_tax_id |
POST /sales/documents/{type} | paymentmethod | payment_method |
POST /sales/documents/{type} | documentnumber | document_number |
POST /sales/documents/{type} | lines.*.idarticle | lines.*.article_id |
POST /sales/documents/{type} | lines.*.sellingprice | lines.*.selling_price |
POST /sales/documents/{type} | lines.*.sellingpricewithvat | lines.*.selling_price_with_vat |
POST /sales/documents/{type} | lines.*.vatid | lines.*.vat_id |
Keep sending the deprecated field until the endpoint's reference page documents the replacement.