Fetch products

Products are added to the product library from the user interface, or programmatically through the Product Library API. Through the API you can retrieve products as described in the following.

Prerequisites

  • Authorisation setup with the correct scope, and a valid authorisation token. See Product library concept.
  • Required access right: READ:PRODUCT.

Fetch all products in POS

This request retrieves all products visible in the Zettle POS system. The full product information is displayed for each product and its variants. This endpoint does not support pagination.

1
GET /organizations/self/products/v2

Example: This example retrieves all products in the product library for a given merchant's account.

Response

1
[
2
{
3
"uuid": "a0472fd0-4dd7-11ec-a716-907608bee88a",
4
"categories": [],
5
"name": "Scarf",
6
"description": null,
7
"imageLookupKeys": [
8
"I4koToEFGVNJwHzkSiTTsT_BEbk"
9
],
10
"presentation": {
11
"imageUrl": "https://image.izettle.com/product/I4koToEFGVNJwHzkSiTTsT_BEbk",
12
"backgroundColor": null,
13
"textColor": null
14
},
15
"variants": [
16
{
17
"uuid": "dfbf5a00-5388-11ec-b459-33a4bdc9fe94",
18
"name": "Silk scarf",
19
"description": "Silky scarf",
20
"sku": null,
21
"barcode": null,
22
"price": {
23
"amount": 1000,
24
"currencyId": "GBP"
25
},
26
"costPrice": {
27
"amount": 500,
28
"currencyId": "GBP"
29
},
30
"vatPercentage": "20",
31
"options": [
32
{
33
"name": "Size",
34
"value": "One-size"
35
}
36
],
37
"presentation": null
38
},
39
{
40
"uuid": "9c497440-5388-11ec-9704-6099624b5f2a",
41
"name": "Wool scarf",
42
"description": "Knitted wool scarf",
43
"sku": null,
44
"barcode": null,
45
"price": {
46
"amount": 600,
47
"currencyId": "GBP"
48
},
49
"costPrice": {
50
"amount": 1600,
51
"currencyId": "GBP"
52
},
53
"vatPercentage": "20",
54
"options": [
55
{
56
"name": "Size",
57
"value": "One-size"
58
}
59
],
60
"presentation": null
61
}
62
],
63
"externalReference": null,
64
"etag": "40D4EE0991DBBB97369FAE5E0448C9F8",
65
"updated": "2021-12-02T15:59:52.655+0000",
66
"updatedBy": "7a1abbf4-b5e2-4c70-8b21-f4ec5b00c463",
67
"created": "2021-11-25T10:15:23.719+0000",
68
"unitName": null,
69
"vatPercentage": "20",
70
"online": {
71
"status": "ACTIVE",
72
"title": null,
73
"description": null,
74
"shipping": null,
75
"presentation": null,
76
"seo": {
77
"title": null,
78
"metaDescription": null,
79
"slug": "scarf"
80
}
81
},
82
"variantOptionDefinitions": {
83
"definitions": [
84
{
85
"name": "Size",
86
"properties": [
87
{
88
"value": "One-size",
89
"imageUrl": null
90
},
91
]
92
}
93
]
94
},
95
"taxCode": null,
96
"category": null,
97
"metadata": null,
98
"taxRates": [],
99
"taxExempt": null
100
},
101
{
102
"uuid": "bf4b6f83-50fe-11ec-917f-2f344279ed56",
103
"categories": [],
104
"name": "Gloves",
105
"description": null,
106
"imageLookupKeys": [],
107
"variants": [
108
{
109
"uuid": "bf4b6f84-50fe-11ec-917f-2f344279ed56",
110
"name": "Gloves",
111
"description": "Wool gloves",
112
"sku": "null",
113
"barcode": null,
114
"price": {
115
"amount": 500,
116
"currencyId": "GBP"
117
},
118
"costPrice": {
119
"amount": 1300,
120
"currencyId": "GBP"
121
},
122
"vatPercentage": "5",
123
"options": null,
124
"presentation": null
125
}
126
],
127
"externalReference": null,
128
"etag": "1FD31A8B8EFE7284BD018D471728E278",
129
"updated": "2021-11-30T20:29:11.543+0000",
130
"updatedBy": "7a1abbf4-b5e2-4c70-8b21-f4ec5b00c463",
131
"created": "2021-11-29T10:26:09.098+0000",
132
"unitName": null,
133
"vatPercentage": "5",
134
"online": {
135
"status": "ACTIVE",
136
"title": null,
137
"description": null,
138
"shipping": null,
139
"presentation": null,
140
"seo": {
141
"title": null,
142
"metaDescription": null,
143
"slug": "gloves"
144
}
145
},
146
"variantOptionDefinitions": null,
147
"taxCode": null,
148
"category": null,
149
"metadata": null,
150
"taxRates": [],
151
"taxExempt": null
152
},
153
...
154
]

Fetch all products with discounts

Requests to this endpoint returns the entire product library and related discounts for the authenticated user. It is mostly used to synchronise products and any data differences between applications.

1
GET /organizations/self/library

The default limit is 500 for the pagination. If the library contains more items than this, or the defined value of the limit parameter (optional), the result will be paginated. The paginated response returns a Link header indicating the next URI to fetch.

https://products.izettle.com/organizations/self/library?limit=10&offset=25; rel="next"

In the Link header, limit is number of items in response, and offset is the current position in pagination. rel is the links relation to the data previously recieved. As long as the header is present, items remain to be fetched. When the header is not present, or there is no longer a "next" value, all items have been sent to the client.

If you provide an eventLogUuid with your request, the response will only include the products and discounts that were changed or deleted from that eventLog and onwards.

If you make a request without an eventLogUuid, the response will contain a paginated snapshot of the current product library, together with the latest eventLogUuid.

Response

Library item with eventLogUuid, product data, and discount.

1
{
2
"untilEventLogUuid": "c8680375-ae94-11ec-90bc-ddaa4f76b03d",
3
"fromEventLogUuid": null,
4
"products": [
5
{
6
"uuid": "3d810255-ac7a-1051-9082-c2b156389233",
7
"categories": [],
8
"name": "Denim jeans",
9
"description": null,
10
"imageLookupKeys": [],
11
"variants": [
12
{
13
"uuid": "9282b390-dfc7-12b7-be7e-6df4eb4b161d",
14
"name": "8",
15
"description": null,
16
"sku": null,
17
"barcode": null,
18
"price": {
19
"amount": 5000,
20
"currencyId": "GBP"
21
},
22
"costPrice": null,
23
"vatPercentage": "12.5",
24
"options": [
25
{
26
"name": "Louisa",
27
"value": "8"
28
}
29
],
30
"presentation": null
31
}
32
],
33
"externalReference": null,
34
"etag": "D9501D34714658676E9BCB4196B003EA",
35
"updated": "2022-01-10T12:29:10.246+0000",
36
"updatedBy": "7a1abbf4-b5e2-4c70-8b21-f4ec5b00c463",
37
"created": "2021-12-17T07:46:06.182+0000",
38
"unitName": null,
39
"vatPercentage": "12.5",
40
"online": {
41
"status": "ACTIVE",
42
"title": null,
43
"description": null,
44
"shipping": null,
45
"presentation": null,
46
"seo": {
47
"title": null,
48
"metaDescription": null,
49
"slug": "denim-jeans"
50
}
51
},
52
"variantOptionDefinitions": null,
53
"taxCode": null,
54
"category": null,
55
"metadata": null,
56
"taxRates": [],
57
"taxExempt": null
58
}
59
],
60
"discounts": [{
61
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
62
"name": "Spring clearing",
63
"description": "Final sales - 20% off",
64
"amount": {
65
"amount": 15,
66
"currencyId": "EUR"
67
},
68
"percentage": 20,
69
"imageLookupKeys": [
70
"string"
71
],
72
"externalReference": "string",
73
"etag": "string",
74
"updated": "2022-03-28T11:32:48.970Z",
75
"updatedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
76
"created": "2022-03-28T11:32:48.970Z"
77
}
78
],
79
"deletedProducts": [],
80
"deletedDiscounts": []
81
},
82
...
83
]

Fetch a single product

This request retrieves the full product information for a product with a known product UUID. To get this, make a request to fetch all products.

The GET method supports conditional requests through the If-None-Match HTTP request header. This means the server will return the product only if it doesn't have an ETag matching the one provided. If the server has a matching ETag, an empty response body is returned.

1
GET /organizations/self/products/{productUuid}

Example: This request retrieves a product with the UUID 038c9108-8b7a-148d-8d90-55b492326863. The response includes the full information stored for the product, including the ETag currently associated with the information.

Request

1
GET /organizations/self/products/038c9108-8b7a-148d-8d90-55b492326863

Response

1
{
2
"uuid": "038c9108-8b7a-148d-8d90-55b492326863",
3
"categories": [],
4
"name": "Scarf",
5
"description": null,
6
"imageLookupKeys": [],
7
"variants": [
8
{
9
"uuid": "5e5abc72-6041-1acf-87db-63635765867f",
10
"name": null,
11
"description": "Grey knitted scarf, one size",
12
"sku": "12334455",
13
"barcode": null,
14
"price": null,
15
"costPrice": null,
16
"vatPercentage": "20",
17
"options": null,
18
"presentation": null
19
}
20
],
21
"externalReference": null,
22
"etag": "C542909D43F05C10C6C9401B2EECB432",
23
"updated": "2021-12-17T09:13:48.318+0000",
24
"updatedBy": "7a1abbf4-b5e2-4c70-8b21-f4ec5b00c463",
25
"created": "2021-12-17T09:13:48.318+0000",
26
"unitName": null,
27
"vatPercentage": "20",
28
"online": null,
29
"variantOptionDefinitions": null,
30
"taxCode": null,
31
"category": null,
32
"metadata": null,
33
"taxRates": [],
34
"taxExempt": null
35
}