API Reference
Learn all you need to know about the store API
Omnium Store API
The Omnium Store API allows you to manage and retrieve store-related data, including store details, opening hours, and more. It provides several operations to create, retrieve, update, and delete store records, making it easy to integrate with external systems. The API enables seamless management of store locations and configurations, as well as the ability to manage special opening hours for holidays and other exceptions.
Each store contains essential details such as location, contact information, operating hours, and more. With this API, you can efficiently manage and customize store data for smooth operations across your system.
Store Model
A store in Omnium is represented by a JSON object with the following structure:
This structure includes the following fields:
- id: Unique store identifier.
- name: Store name or domain name.
- address: The store’s physical address.
- availableOnMarkets: Markets where the store is available.
- contact information: Phone number and email.
- opening hours: Regular and special hours for each day of the week.
You can find more details in the Store model documentation.
Store Example
A webshop located at Manhattan, New York City, New York, US could look like this:
In the Omnium GUI, the store would appear with a map location of any given coordinates.

You can also edit store information in the GUI.

Store Operations
Create Store
Add a new store to Omnium by submitting a store object to the stores endpoint. If the store exists, it will be overridden by the object. The store's chartOfAccounts and taxGroups are kept when you leave them out — see Store accounts and VAT rates.
Get Store
-
Get all stores: Retrieve a list of all stores, warehouses, and pickup points.
-
Get single store: Retrieve information about a single store using its ID.
Update Store
Update a store by submitting a store object.
Delete Store
To delete a store, send a delete request to the stores endpoint.
Important
The store will be permanently deleted and cannot be recovered.
Get the VAT rates a store sells under
Returns the VAT rates (tax groups) the store sells under: the store's own VAT rates merged over the tenant VAT rates by code. Use it, for example, in a webshop that shows prices excluding VAT for a store with its own VAT rates.
- Only active rows are returned.
- Without
validOn, every validity window of a code is returned. WithvalidOn, only the rows valid on that day are returned. - The list is empty when the tenant does not use tax groups. It is also empty for a store without rows of its own when the tenant has no VAT rates of its own.
- The account overrides of the rows are not returned.
- An unknown store returns
404.
A shortened response for a store that replaces the FOOD code — the response also contains every tenant code the store does not replace:
Store accounts and VAT rates
A store can have its own accounting accounts and its own VAT rates, which replace individual tenant entries. Both are lists on the store model:
| Field | Type | Description |
|---|---|---|
chartOfAccounts | array | The store's own accounts. Each one replaces the tenant account it matches on category, discriminator, currency, and tax group. The fields are described in Chart of Accounts; category is sent as the category name, for example "Sales". See Store Accounts. |
taxGroups | array | The store's own VAT rates. A row replaces every tenant row with the same code, and the code must exist in the tenant VAT rates. When the tenant has no VAT rates of its own, the stores define the codes. The fields are described in Tax Groups. See Store VAT rates. |
Besides the fields described on those pages, a VAT rate row has overrideSalesAccountNumber and overrideOutputVatAccountNumber, which are stored with the row but not used by postings — postings take their accounts from the chart of accounts — and an account entry has properties, its custom properties.
How the two lists behave in the API:
- Reading — they are returned when you get a single store and in the responses of
PUT /api/StoresandPOST /api/Stores/Update. Store lists and searches leave them out. - Writing — on
POST /api/Stores,PUT /api/Stores,POST /api/Stores/Update, andPOST /api/Stores/AddMany, a list you leave out keeps the store's current list, and an empty list removes it. OnPATCH /api/Stores/PatchStore, a list you send replaces the whole list.POST /api/Stores/Enrichfills a list only when the store has none. - Validation — VAT rates you change that break a rule return
400with the reason. One example is a code the tenant does not have, when the tenant has VAT rates of its own. A list sent back unchanged is accepted.POST /api/Stores/AddManychecks every store before it saves any of them.
More Store Information
Store Opening Hours
A store has opening hours for every day of the week as separate properties (e.g., mondayOpeningHours, tuesdayOpeningHours, etc.). You can also create special opening hours for public holidays or other exceptions.
For more details, refer to the Opening Hours Model documentation.
Special Opening Hours Model
For special opening hours, refer to the Special Opening Hours Model documentation.
Store FAQ
Creating a Store: What is a Store ID?
A store ID must be unique across all markets. Any duplicate IDs will overwrite existing stores. We recommend using URL-friendly IDs.