Update a product
PATCH https://pos.paysera.com/eapi/v1/products/{id}
Update an existing product's fields.
Authorizationβ
This endpoint requires a Personal Access Token, sent as a Bearer token.
To obtain one, your account needs API permission. Once granted, go to /user/settings in your POS account and create a personal access token.
Authorization Header Format:
Authorization: Bearer YOUR_ACCESS_TOKEN
Example:
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
For more details, see the Authentication section.
Parametersβ
Path Parametersβ
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | β | The product ID |
Request Bodyβ
| Field | Type | Required | Description |
|---|---|---|---|
title | object | Multi-language product title keyed by language code. Supported languages: lt, en, lv, et, pl. | |
price | object | Only included price fields will be updated. | |
active | boolean | ||
measureUnit | string | ||
taxId | integer | Tax ID. Send null to reset to tenant default. | |
stock | object | Only included stock fields will be updated. | |
categoryIds | array | List of category IDs. Replaces all current categories. Send empty array to remove all. | |
productCodes | array | List of product codes. Replaces all current codes. Send empty array to remove all. | |
sellChannels | object | Toggle sell channel availability. Only included channels will be changed; omitted channels keep their current state. | |
type | string | Convert product type β see details below | |
attributes | object | Allowed only when the product is (or will be) variable. Replaces the parent's attribute map. Removing a value here auto-deletes any variants referencing it⦠| |
variants | array | Allowed only when the product is (or will be) variable. Replaces the variant list. Variants not included are auto-deleted. Variants are matched against⦠|
typeβ
Convert product type:
- Send
variabletogether withattributesandvariantsto convert a simple product into a variable one (or to keep it variable). - Send
simpleto convert a variable product back to simple. All variants are deleted in the same transaction.attributes/variantsMUST NOT accompanysimple.
attributesβ
Allowed only when the product is (or will be) variable. Replaces the parent's attribute map. Removing a value here auto-deletes any variants referencing it (atomic with the rest of the PATCH).
variantsβ
Allowed only when the product is (or will be) variable. Replaces the variant list. Variants not included are auto-deleted. Variants are matched against existing ones by sorted optionValueIds.
Errorsβ
This endpoint may return the following errors:
400 - Bad Requestβ
Invalid request
This error is resulted by incorrectly providing one of the parameters.
401 - Unauthorizedβ
Unauthorized
This error was produced by providing incorrect credentials.
403 - Forbiddenβ
Forbidden
This error indicates you don't have permission to access this resource.
404 - Not Foundβ
Product not found
This error indicates the requested resource was not found.
422 - Unprocessable Entityβ
Unprocessable entity
429 - Too Many Requestsβ
You have exceeded the rate limit. Please try again in a minute.
500 - Internal Server Errorβ
Internal server error
Exampleβ
Requestβ
PATCH https://pos.paysera.com/eapi/v1/products/{id}
Content-Type: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN
{
"title": {
"lt": "Atnaujintas pavadinimas",
"en": "Updated title"
},
"price": {
"regular": "9.99",
"special": "7.99",
"cost": "4.50"
},
"active": true,
"measureUnit": "unit",
"taxId": 1,
"stock": {
"quantity": "10",
"manageStock": true,
"useWarehouses": true
},
"categoryIds": [
1,
2
],
"productCodes": [
{
"type": "ean",
"code": "1234567890123"
}
],
"sellChannels": {
"pos": true,
"api": true
},
"type": "simple",
"attributes": {
"5": [
10,
11
]
},
"variants": [
{
"optionValueIds": [
10,
20
],
"sku": "MED-EKO-500-RED-S",
"active": true,
"price": {
"regular": "9.99",
"special": "7.99",
"cost": "4.50"
},
"stock": {
"quantity": "5"
},
"productCodes": [
{
"type": "ean",
"code": "1234567890123"
}
],
"media": [
{
"url": "https://example.com/images/product.jpg",
"sort": 0
}
]
}
]
}
Responseβ
{
"id": 789,
"sku": "MED-EKO-500",
"type": "simple",
"active": true,
"title": {
"lt": "Produkto pavadinimas",
"en": "Product title"
},
"measureUnit": "unit",
"taxId": 1,
"price": {
"regular": "9.99",
"special": "7.99",
"cost": "4.50"
},
"stock": {
"quantity": "10",
"manageStock": true,
"useWarehouses": false
},
"categoryIds": [
1,
2
],
"productCodes": [
{
"type": "ean",
"code": "1234567890123"
}
],
"media": [
{
"url": "https://example.com/images/product.jpg",
"sort": 0
}
],
"sellChannels": {
"pos": true,
"api": true
},
"isPriceDynamic": false,
"isTitleDynamic": false,
"isShownInPinPadView": false,
"isShownInTouchView": true,
"createdAt": "2026-04-20T12:00:00Z",
"updatedAt": "2026-04-20T12:00:00Z",
"attributes": {
"5": [
10,
11
]
},
"optionGroups": [
{
"id": 5,
"title": {
"lt": "Dydis",
"en": "Size"
},
"values": [
{
"id": 10,
"title": {
"lt": "MaΕΎas",
"en": "Small"
}
}
]
}
],
"variants": [
{
"id": 7890,
"sku": "MED-EKO-500-RED-S",
"optionValueIds": [
10,
20
],
"active": true,
"price": {
"regular": "9.99",
"special": "7.99",
"cost": "4.50"
},
"stock": {
"quantity": "5"
},
"productCodes": [
{
"type": "ean",
"code": "1234567890123"
}
],
"media": [
{
"url": "https://example.com/images/product.jpg",
"sort": 0
}
]
}
]
}
AUTHORIZATION: HTTP
REQUEST
{
"title": {
"lt": "Atnaujintas pavadinimas",
"en": "Updated title"
},
"price": {
"regular": "9.99",
"special": "7.99",
"cost": "4.50"
},
"active": true,
"measureUnit": "unit",
"taxId": 1,
"stock": {
"quantity": "10",
"manageStock": true,
"useWarehouses": true
},
"categoryIds": [
1,
2
],
"productCodes": [
{
"type": "ean",
"code": "1234567890123"
}
],
"sellChannels": {
"pos": true,
"api": true
},
"type": "simple",
"attributes": {
"5": [
10,
11
]
},
"variants": [
{
"optionValueIds": [
10,
20
],
"sku": "MED-EKO-500-RED-S",
"active": true,
"price": {
"regular": "9.99",
"special": "7.99",
"cost": "4.50"
},
"stock": {
"quantity": "5"
},
"productCodes": [
{
"type": "ean",
"code": "1234567890123"
}
],
"media": [
{
"url": "https://example.com/images/product.jpg",
"sort": 0
}
]
}
]
}
RESPONSE
{
"id": 789,
"sku": "MED-EKO-500",
"type": "simple",
"active": true,
"title": {
"lt": "Produkto pavadinimas",
"en": "Product title"
},
"measureUnit": "unit",
"taxId": 1,
"price": {
"regular": "9.99",
"special": "7.99",
"cost": "4.50"
},
"stock": {
"quantity": "10",
"manageStock": true,
"useWarehouses": false
},
"categoryIds": [
1,
2
],
"productCodes": [
{
"type": "ean",
"code": "1234567890123"
}
],
"media": [
{
"url": "https://example.com/images/product.jpg",
"sort": 0
}
],
"sellChannels": {
"pos": true,
"api": true
},
"isPriceDynamic": false,
"isTitleDynamic": false,
"isShownInPinPadView": false,
"isShownInTouchView": true,
"createdAt": "2026-04-20T12:00:00Z",
"updatedAt": "2026-04-20T12:00:00Z",
"attributes": {
"5": [
10,
11
]
},
"optionGroups": [
{
"id": 5,
"title": {
"lt": "Dydis",
"en": "Size"
},
"values": [
{
"id": 10,
"title": {
"lt": "MaΕΎas",
"en": "Small"
}
}
]
}
],
"variants": [
{
"id": 7890,
"sku": "MED-EKO-500-RED-S",
"optionValueIds": [
10,
20
],
"active": true,
"price": {
"regular": "9.99",
"special": "7.99",
"cost": "4.50"
},
"stock": {
"quantity": "5"
},
"productCodes": [
{
"type": "ean",
"code": "1234567890123"
}
],
"media": [
{
"url": "https://example.com/images/product.jpg",
"sort": 0
}
]
}
]
}