Inventory API overview

The Inventory service keeps track of stock levels for product variants. The Inventory API is used for example when building integrations between POS systems and e-commerce systems.
Zettle system overview with Inventory service.

Getting started

Register on the Zettle Developer Portal to create credentials for the app you are building, and learn more about different types of integrations. See Get started for more information.
Explore the sections in the following to get an overview of the different parts of the Inventory API.

Using the API

To manage product inventories with the Inventory service, every product and product variant must have a unique UUID. For more information about product and product variant UUIDs, see Product Library API.


All endpoints that return lists can be paginated. When a response is big, it can be returned in more than one page. For example, the response for fetching inventory balance for all stores.
It's recommended to check whether a response includes the Link header. If the header is included, that means the response contains more than one page.
To fetch the subsequent pages to get a complete response, you need to call the URL that is specified in the Link header until the response does not include that header.
Example response header
LINK: <>; rel="next"
Example request to the URL in the Link header

Rate limit

By default, V3 allows 4 requests per second.
The rate limit is not a hard limit. V3 monitors and measures the average rate in a short time period continuously. Then it determines if requests will be blocked.


To integrate with Zettle, you need to access merchant data. To gain access, you need to set up authorisation for the merchant to grant access to the data. Depending on the type of app and integration you are building, this can be done in different ways. See OAuth API.

Understanding inventories

API clients can list current stock levels and update inventory balances for products.
The service automatically decreases the stock when a purchase is made with the Zettle POS application. Tracking is based on moving product items between Inventories.
See How inventories work for concept descriptions.

Working with inventories

Manage inventory tracking

Inventory tracking is enabled on a product basis and can be enabled or disabled at any time.
If you change the inventory levels of products that do not have tracking enabled, you will not see any change in inventory levels as a result of purchases taking place.

Manage inventories

When an organisation starts using the inventory, the inventory service will generate a set of default inventories.
The /inventories endpoint is used for retrieving these inventories. The inventory UUIDs are then used with other inventory management functionality to manage stock levels.

Manage inventory balances

This area contains endpoints used for managing tracked products and for retrieving stock information and updating stock balances. Here you can fetch and update inventory balances for specific products and inventories.

Manage low stock levels

This functionality is used for defining low stock levels and updating the low stock alert settings. This is done to ensure merchants have the right inventory balance to meet current demand without having an excess in stock. Through the endpoint, you can retrieve and update the low stock configurations.