Frequently asked questions

To create apps and work with integrations, register on the Zettle Developer Portal to create app credentials, and learn more about different types of integrations. See Get started.

General questions

For which markets can I build integrations with Zettle APIs?

Currently, Zettle provides APIs for the following markets:
  • United Kingdom
  • Sweden
  • Brazil
  • Norway
  • Denmark
  • Finland
  • Germany
  • Mexico
  • Netherlands
  • France
  • Spain
  • Italy

What TLS version is supported?

We are using TLS 1.2 for the moment.

How do I take payments through the Zettle APIs?

It is not possible to take payments through the APIs. However, you can take payments using the following SDKs:

Do you provide any test or sandbox environment?

Unfortunately we do not at this time.

Does it cost anything to use your APIs and is there some restriction on the APIs?

No, it is completely free to use our APIs. The only limitation is that some resources might have rate limiting enabled to ensure service stability.

Why do I sometimes receive HTTP 100 Continue responses?

This is something our framework sends when it has received the request headers and indicates that the client should proceed to send the request body.
What you can do is investigate the reason why your code does this, or you could traverse the headers until you find a header with the intended response code. See the following examples:

OAuth

Once I have an access token, how do I use it to authenticate myself?

The access token is passed through the Authorization header with the format: Authorization: Bearer <Token>. Also, note that on most services you can use the self filter instead of {organizationUuid}.

Do I need my organisation UUID when accessing some of the APIs?

You can use the self path parameter instead of specifying organisation UUID in an endpoint.
Example: The following example shows using the self path parameter and fetching the organisation UUID.
Request
1
GET /organizations/self/accounts/{accountTypeGroup}/balance
Or, you can fetch the organisation UUID by calling the following endpoint.
1
GET https://oauth.zettle.com/users/self
Response
1
{
2
"uuid": "de305d54-75b4-431b-adb2-eb6b9e546014",
3
"organizationUuid": "ab305d54-75b4-431b-adb2-eb6b9e546013"
4
}
After fetching the organisation UUID, you can specify it in an endpoint.
Example: The following example shows specifying the organisation UUID when calling an endpoint.
Request
1
GET /organizations/ab305d54-75b4-431b-adb2-eb6b9e546013/accounts/{accountTypeGroup}/balance
For more information on the filter and the endpoint, see OAuth API reference.

Product Library

Can I create as many variants for a product as needed?

No, you can only create maximum 99 variants for a product. See [Product Library concept] (/docs/api/product-library/concepts/product-library-concept).

Can I reuse a product UUID and a product variant UUID?

No, every product and product variant UUID must be unique. Before you import products and product variants to a product library, make sure that their UUIDs don't exist in the product library.

How do I assign an image to the product I'm creating?

Inventory

What is an integration with Inventory typically used for?

An integration between the Inventory service and an e-commerce system ensures that products and inventory levels are automatically synchronized between the platforms. Integrated merchants can manage in-store and online inventories from one place. They can also compare sales and manage updates for all products.

Which e-commerce integrations are available for Zettle merchants?

There are pre-built integrations for Zettle with a number of e-commerce platforms. See e-commerce integrations for a list.
You can also build your own e-commerce integrations with the Zettle APIs. Typical integrations often include the Product Library and Inventory APIs.

Is it possible to integrate Zettle with my online marketplace?

There are many possibilities to integrate Zettle with other systems like accounting, e-commerce, and checkout. For an overview of options, see Integrations.
Online stores are typically integrating product libraries and inventories, through the Product Library and Inventory APIs. Using these, products and inventories are automatically synchronised with the e-commerce system.

How can I upload products or add inventory to POS folders from the API?

Currently, products and inventory can only be added to POS folders at my.zettle.com. It is not possible to do this from the API.

How can I automatically enable inventory tracking when creating products?

The Inventory service lets you start tracking of products through the API. After creating a product through the Product Library API, you can immediately start tracking it using the startTrackingProduct parameter in POST /organizations/{organizationUuid}/inventory.

How do I automate inventory updates between Zettle and a 3rd-party web shop?

There are pre-built integrations available for a number of e-commerce platforms, see e-commerce integrations.
You can also build your own e-commerce integration using the Product Library and Inventory APIs. This will synchronize inventory updates between Zettle and the web shop.

How do I handle frequent inventory updates for Zettle integrations with a web shop?

You can use the Pusher API to manage frequent updates by subscribing to specific events triggered by Zettle. For example, Events can be changes to product library or inventories. When an event is triggered, a request with event information will be sent in real time.

Finance

How do I get sum of all payments, fees, refunds, and invoices?

Use includeTransactionType parameter in the query for the relevant transaction type or types. Then traverse the list of transactions returned and sum up the amounts.