Skip to content

Latest commit

 

History

History
212 lines (191 loc) · 8.03 KB

faq.adoc

File metadata and controls

212 lines (191 loc) · 8.03 KB

Frequently asked questions

To create apps and work with integrations, sign up for a Zettle developer account at the Zettle Developer Portal. To learn more about the different Zettle APIs, see the API documentation.

The following sections lists frequently asked questions within different areas.

General questions

For which markets can I build integrations with Zettle Go APIs?

Currently, Zettle provides APIs for the following markets:

  • United Kingdom

  • Sweden

  • Brazil

  • Norway

  • Denmark

  • Finland

  • Germany

  • Mexico

  • Netherlands

  • France

  • Spain

  • Italy

Note: You can build integrations with Zettle Go APIs only for the supported markets, no matter where you are located.

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 Zettle Payments SDK for iOS and Zettle Payments SDK for Android.

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 receive HTTP 100 Continue responses sometimes?

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 example of handling HTTP 100 Continue and example of handling double HTTP-Status header on HTTP-POST.

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 organization UUID when accessing some of the APIs?

You can use the self path parameter instead of specifying organization UUID in an endpoint.

Example request

GET /organizations/self/accounts/{accountTypeGroup}/balance

Or, you can fetch the organization UUID by calling the following endpoint.

GET https://oauth.zettle.com/users/self

Example response

{
    "uuid": "de305d54-75b4-431b-adb2-eb6b9e546014",
    "organizationUuid": "ab305d54-75b4-431b-adb2-eb6b9e546013"
}

After fetching the organization UUID, you can specify it in an endpoint.

Example request

GET /organizations/ab305d54-75b4-431b-adb2-eb6b9e546013/accounts/{accountTypeGroup}/balance

For more information on the filter and the endpoint, see OAuth.

Product Library

I’m using your API to create Products on Zettle. I have a problem when assigning images to products. I used the image API to create an image and it’s working, but how do I assign this image to the product I’m creating?
 "imageLookupKeys": [
    "string" // What should I put here?
  ],
  "presentation": {
    "imageUrl": "string", // Should I put the created image URL?
    "backgroundColor": "string",
    "textColor": "string"
  },

The image API will return a imageUrl back which can be directly put into the presentation.imageUrl field, however we just introduced this and is not fully supported by the portal and the apps yet.

So if you only want to use the information outside of the Zettle apps you might want to use presentation.imageUrl, otherwise use imageLookupKeys and strip away everything except the last part of the imageUrl and place for example Ta0Tx5E6RpujkDRXheIb5w-sS5EEMfKEee84eojOmcEmQ.jpeg in imageLookupKeys to be able to see the image in the Zettle apps.

Clarification examples:

"imageLookupKeys": [
      "Ta0Tx5E6RpujkDRXheIb5w-sS5EEMfKEee84eojOmcEnQ.jpeg"
]
"presentation" : {
      "imageUrl": "https://image.izettle.com/v2/images/o/Ta0Tx5E6RpujkDRXheIb5w-sS5EEMfKEee84eojOmcEnQ.jpeg"
}

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. See Integrations for an overview of options. Online stores are typically integrating product libraries and inventories, through the Product Library and Inventory APIs. Using these products and inventories are automatically synchronized 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 from the Zettle user interface. 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. See Enable tracking.

How do I automate inventory updates between Zettle and my 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- integration using the Product Library and Inventory APIs. This will synchronize inventory updates between Zettle and your web shop.

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

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

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.