{
  "openapi": "3.1.0",
  "info": {
    "title": "Shoptet API",
    "version": "1.0.0",
    "description": "Created in cooperation with the Ministry of Industry and Trade of the Czech\nRepublic within the \"The Country for the Future\" programme.\n\n<img src=\"https://www.mzv.cz/public/fe/30/dd/3705578_2234497__867990_sm.png\"\n/>\n\n\nThis documentation provides information about the interface for developers\nwho would like to gain access to Shoptet\n\ne-shops. For more information about Shoptet, see https://www.shoptet.cz/.\n\n\nThe API is available in two access modes:\n\n\n- for \"Shoptet partner” developers who create the interconnection with the\nservices and extend the Shoptet system's\n  functions for public usage.  For more information about API and conditions, under which\n  it can be used, see https://developers.shoptet.com/addons/.\n\n- direct private access to eshop data for eshop owner - available only for\n[Premium Members](https://www.shoptetpremium.cz/).\n  See https://developers.shoptet.com/premium for more information about API access.\n\n# Basic principles\n\n\n## How to call API\n\n\nAPI supports communication in JSON format. The URL for calling API requests\nis https://api.myshoptet.com. The API calls\n\n(endpoints and message formats) are common for private as well as addons\naccess, it however uses different authentication\n\nand authorization principles.\n\n\n### For Addons\n\n\nAPI is made to create the supplements for the Shoptet system and uses OAuth2\nauthorization principles.\n\nTo access the API it is necessary to implement a web service at your side,\nwhich will communicate with our OAuth server.\n\n\nIn your e-shop administration, which you are using to work with our API, you\nmust search in the `API Partner` section for the `Access to API` tab.\n\nHere, you will find your clientID and addresses, from where you can call our\nOAuth server.\n\n\nThe work with API begins with e-shop addon installation. (The installation\nprocess can be tested in the addon detail in the `Users` section, where you\ncan cause the installation for your e-shop.)\n\nIn your addon detail, in the `Settings` section, enter URL to gain a OAuth\ncode. The URL must be linked to your server, where the script is prepared,\nwhich is able to gain an OAuth access token.\n\nAt this address, you will receive the HTTP request with a GET parameter\n`code`, when installing the addon, with unique value (a 255 character long\nstring).\n\nThe `code` provided only has short-term validity and can be used only once.\nWith this code, request our OAuth server to provide an `OAuth access token`.\n\nSuch a request shall follow within the same script that received the `code`.\n\nDo not put off gaining the OAuth access token for a later time, and do not\nreply to our request with a `200 OK` status, until you gain the OAuth access\ntoken.\n\nThe address for you to call, and an example of implementation, can be found\nin e-shop administration in the `Access to API` section.\n\n\nAs a response you will obtain a JSON with your OAuth access token. Save this\ntoken securely. Never send this token to the client computer, and use it\nonly\n\nfor communication between the servers and for gaining the temporary token\nfor access to API.\n\n\nIf you have successfully received an OAuth access token, your script must\nend with the HTTP status code “200”.\n\n\nNow you have your OAuth access token, which links your addon with a specific\ne-shop, perhaps you would like to communicate with the e-shop via API.\n\n\nFrom your server, call\n`https://<eshop-address.tld>/action/ApiOAuthServer/getAccessToken` address\nwith HTTP header `Authorization: Bearer <OAuth access token>`.\n\nAs the reply, you will receive a JSON containing an API access token value\nand the token expiration time value. An example of calling can be found in\ne-shop administration in the `Access to API` section.\n\nIt is possible to request a maximum of 5 valid tokens.\n\n\nThe API access token will enable you to call an individual URL of our API,\nfor example `https://api.myshoptet.com/api/eshop`. Send the API access token\nin each request in the HTTP header`Shoptet-Access-Token`.\n\nYou can have several valid API access tokens available at any one time.\nShould the validity of the API access token expire, you will receive a HTTP\nstatus code 401 and message about token expiration.\n\n\n```\n\n{\n    \"data\": 'null',\n    \"errors\": [\n        {\n            \"errorCode\": \"expired-token\",\n            \"message\": \"Token is expired. Please ask for new one.\",\n            \"instance\": \"unknown\"\n        }\n    ]\n}\n\n```\n\n\nIf your token does not have the access right for a specific endpoint, you\nwill obtain a reply with HTTP status code 403 Forbidden.\n\n\n```\n\n{\n    \"data\": 'null',\n    \"errors\": [\n        {\n            \"errorCode\": \"invalid-token-no-rights\",\n            \"message\": \"Your access token \\\"afd..123\\\" has no defined rights for this resource.\",\n            \"instance\": \"access-token\"\n        }\n    ]\n}\n\n```\n\n\n### For private API access (Premium)\n\n\nYou can create API access tokens simply in the eshop administration. Send\nthem in the request header `Shoptet-Private-API-Token`.\n\nYou can automatically access all API endpoints.\n\n\n## Rate limiting\n\n\nRate limiting is at the level of server overload protection (DDoS), whereas the quantity of queries or total volume of data are unlimited.\n\nThese are therefore the limits of the maximum number of coincident active connections. A maximum of 50 from a single IP address, and a maximum of 3 connections for a single token. If the limit is exceeded, the HTTP code 429 is returned. See also Nginx configuration:\n\n\n```\nlimit_conn per_ip 50;\nlimit_conn per_token 3;\nlimit_conn_status 429;\n```\n\n\nSome URLs, for example for bulk operations, can have their own specific limits, which are mentioned in this documentation.\n\n### Leaky bucket\nWe have also prepared more detailed rules for checking the efficiency of calling your integrations using a leaky bucket algorithm.\n\nWe inform you about reaching the limits via headers `X-RateLimit-Bucket-Filling` (in every response), and `Retry-After` (only if bucket is fulfilled), e.g.\n\n```\nX-RateLimit-Bucket-Filling: 200/200\nRetry-After: Mon, 01 Jul 2024 12:01:11 GMT\n```\n\n\nFor more information, visit [API Rate limiter](https://developers.shoptet.com/api-rate-limiter/).\n\n## Locks\n\n\nWrite endpoints (DELETE, PATCH, POST, PUT methods) can take longer and may\nbe prone to two concurrent matching requests.\n\nTo avoid problems with retrying identical write requests, we have added the\nlocking function of these requests to the application.\n\nIf you execute the same request two times in quick succession, the second\nrequest receives error response with a 423 code.\n\nThe lock is only valid for a specific called URL, for the duration of the\nrequest processing, but no longer than 5 seconds.\n\n\n## Server response format\n\n\nAll JSON responses from the server have the same format, as a base.\n\nIf any of the sections is not present in the response, a `null` value is\nthen received.\n\n\nExample of call for addons:\n\n\n```\n\ncurl --include \\\n    -H 'Shoptet-Access-Token: 123456-a-123-XXXXXXXXXXXXXXXXXXXXXXXXX' \\\n    -H 'Content-Type: application/json' \\\n   'https://api.myshoptet.com/api/eshop'\n```\n\n\nExample of call for private API access:\n\n\n```\n\ncurl --include \\\n    -H 'Shoptet-Private-API-Token: 123456-a-123-XXXXXXXXXXXXXXXXXXXXXXXXX' \\\n    -H 'Content-Type: application/json' \\\n   'https://api.myshoptet.com/api/eshop'\n```\n\n\nExample of response:\n\n\n```\n\nHTTP/2 200\n\ndate: Fri, 13 Jul 2018 15:57:29 GMT\n\ncontent-type: application/json; charset=utf-8\n\n\n{\n    \"data\": {\n        \"contactInformation\": {\n            \"eshopName\": \"www.domena-eshopu.cz\",\n            \"url\": \"https:\\/\\/www.domena-eshopu.cz\\/\",\n            \"companyId\": \"28935675\",\n           ...\n        }\n        ...\n    },\n    \"errors\": 'null'\n}\n\n```\n\n\nThe basic structure of the response in the event of an error is as follows:\n\n\n```\n\n{\n    \"data\": 'null',\n    \"errors\": [\n        {\n            \"errorCode\": \"missing-access-token\",\n            \"message\": \"Missing access token. Please add `Shoptet-Access-Token` header to your request.\",\n            \"instance\": \"unknown\"\n        }\n    ]\n}\n\n```\n\n\nMost of the endpoints are synchronous, i.e. your answer is provided\nimmediately and contains the data requested. There\n\nare however some endpoints, where either the request or the response\nprocessing takes longer time. These are implemented as\n\n[Asynchronous\nrequests](https://developers.shoptet.com/asynchronous-requests/). Your\nrequest will be queued and you\n\nreceive only job identification in the response. You will be notified using\na\n\n[webhook](https://developers.shoptet.com/api/documentation/webhooks/) when\nthe job is completed and your results\n\ndownloadable. Be aware, that registration of webhook `job:finished` is\nrequired to be able to run asynchronous requests.\n\nIf webhook is not registered, you will receive an error response with HTTP\nstatus code 403 and job won't be queued.\n\nWebhook `job:finished` is also emitted when the job is failed so there is need to check the [Job detail](#tag/jobs/getjobdetail)\nto get the result of the job. If an error occurs during an asynchronous request, the job is automatically marked as\nfailed 3 hours after its creation, and in this case, the `job:finished` webhook is not emitted.\n\n\nSome attributes may be added to the new API version, or the sequence of\nattributes can be changed.\n\nYour software, therefore, shall not rely on either of these.\n\nIf some attributes are renamed or removed, you will be informed in an additional header - see also  [Deprecated header + Sunset](#section/basic-principles/deprecated-header-+-sunset).\n\n\n## Deprecated header + Sunset\n\n\nIf you are calling some endpoint in a version that will not be supported in\nthe future, you will receive a response with the header\n\n`X-Shoptet-Deprecated`. If you detect this header within the response and\nits presence is logged,\n\nyou should be aware of the support termination for a specific endpoint in\nadvance and thus have enough time for correction.\n\n\nFurthermore, you shall also receive the response with a`Sunset` header with\nthe date when the support for this endpoint is to be terminated.\n\n\n## Status codes\n\n\nWhen processing the response, the client shall first detect, what response\nstatus code was received.\n\n\nFor GET requests for responses with 200 code, it is not necessary to explore\nthe `errors` part of the response.\n\nFor PATCH/PUT requests, which can process more records at the same time and\nsome records\n\nare not processed successfully, these end with a 200 response code and the\nerrors key contains info\n on skipped rows.\n\nThe unknown record is returned with a 404 code, etc. These responses have\nthe error field filled in, where you can\n\nfind detailed info about the error.\n\n\nThe following errors might be expected:\n\n\n* 400 - Some of the validations on item level have failed. There is no\nreason to retry, it will fail always.\n\n\n* 401 - Invalid token or the token has expired (for addons access tokens).\nYou have to ask for another one.\n\n\n* 403 - Forbidden. The token has no rights to the endpoint called. The\nendpoints must be allowed for an addon\n  and the eshop must have approved them. Valid for addons access tokens, private tokens can always access all\n  endpoints. Can be also returned when required module for request is missing.\n\n* 404 - Either the endpoint is wrong; or most commonly, an entity\nidentifier, which is part of the URL, does\n  not exist.\n\n* 409 - Conflict - the action could not be completed for some consistency\nrules, such as duplicate data\n  or relation, which would be broken.\n\n* 413 - Payload too large - update requests can sometimes contain multiple\nentities to be amended. There is\n  however a limit (varying for each request), how many can be specified within one request. If you breach the\n  limit, you will get this error and nothing will be updated.\n\n* 422 - Unprocessable entity - we were not able to parse the request - it\ndoes not match the expected format.\n  Something is wrong with the request as whole, it might not be a correct JSON or it does not match the expected\n  JSON schema. There is no reason to retry, it will always fail.\n\n* 423 - Locked - for update and some read request we apply locks, usually on\nan URL level, which should avoid\n  consistency problems possibly occuring from parallel updates. See [Locks](#section/basic-principles/locks) section. Retry later,\n  try to avoid parallel update requests.\n\n* 500 - General server error. Yes, this might happen to our software, too.\nMost commonly this is a temporary\n  database issue and it might (but might not), work a few minutes later. We monitor all such errors and we\n  try to analyze and fix them.\n\n* 503 - System maintenance. Most commonly we move a database to another\ndatabase cluster or a database migration is\n  pending and it will be available in a few minutes. Please try later.\n\n\n## Paging\n\n\nSome endpoints can return larger quantity of records. Such endpoints do not\nreturn the entire result, but support pagination of results.\n\nYou can page using `page` (int) and `itemsPerPage` (int) parameters.\nThe first page has number 1. If you require a different quantity of items per page, use the `itemsPerPage` parameter. \n`itemsPerPage` has a default value used when the parameter is not specified, and a maximum value that cannot be exceeded. If a higher value is provided, the maximum is applied automatically.\nThe default and maximum value can be different for each endpoint.\n\nWhen paging, check the total number of items, if not altered (`totalCount`), then the items on pages could be shifted and some of them could be missed or processed twice.\n\n\n## Section on demand\n\n\nSome endpoints return the data sections as optional, on demand. The request\nis done by giving the section name in the\n\n`include` parameter. Part of the data is returned each time, the other\nsection only on demand. This makes the responses smaller for those, who do\nnot need the data\n\n, thus saving the volume of data transmitted and shortening the time to\nprocess the request.\n\n\nFor example, for \"Eshop Info\" endpoint, you will gain basic info when simply\ncalling `[GET] /api/eshop`, but payment\n\nmethods and transport options only when using `[GET]\n/api/eshop?include=paymentMethods,shippingMethods`.\n\n\nMore values are separated by a comma, no sequencing, no upper/lower case\ndifferentiation. Other blocks are available on demand\n\nand each endpoint informs you which identifier to request.\n\n\n## Translations\n\n\nFor proper functionality in translations you will have to get module Foreign\nlanguages (Cizí jazyky) activated on customer e-shop. Multi-language support\nin API is handled by query parameter `language`, which can be used in whole\nAPI. If parameter is not set, default shop language is used.\n\nWhen module foreignLanguages is active and initialized, read endpoints (HTTP \nverb GET) will return corresponding language version of texts where applicable.\n\n\nFor write endpoints, first use POST endpoint to create entity and then use\nPATCH endpoint with corresponding language query parameter to set language\nfields. Language can be set only when module foreignLanguages is active and initialized.\n\n\nPlease note that in some endpoints (typically surcharge/filtering/variant\nparameters) you must use the identifier's currently selected language\nvariant (which is filtered in list).\n\n\n## Files upload\n\n\nFor files upload, there are [Files](#tag/files) endpoints.\n\n\nThe file is uploaded to a temporary storage which is not accessible\npublicly. The file is kept there for 7 days and then deleted.\n\n\nAfter you upload a file, you may copy it to some API entities in their\nendpoints - you specify filename returned in response of upload job.\n\n\nPlease note that currently only images (png, jpg, gif) are allowed filetypes\nfor file upload.\n\n\n# Product images\n\n\nShoptet saves the product images in their original size and then prepares\nseveral sizes for standardized usage (called\n\nimage cuts). These cuts are created in advance and saved on the disk, so\nthey are readily available. The list of cuts is\n\nthe same for each e-shop, and each e-shop can theoretically have different\ncut sizes. In practice, their size is given\n\nby the template and most templates use the same sizes. The list of provided\ncuts is given by\n\nthe [Image cuts](#section/code-lists/image-cuts) code list.\n\n\nThe `/api/eshop?include=imageCuts` endpoint returns the `imageCuts` field in\nthe response, where each cut has the actual\n\nsize defined, and the URL base path. There are two base URLs (example for\nclassic.shoptet.cz, cut `detail`):\n\n\n- `urlPath`: \"https://classic.shoptet.cz/user/shop/detail/\"\n\n\n- `cdnPath`:\n\"https://cdn-api.myshoptet.com/usr/classic.shoptet.cz/user/shop/detail/\"\n\n\nUse the `urlPath` in case you need an up-to-date image right now. Use the\nurl for your backend processing and you\n\nwill retrieve the images only once. Images retrieved via `urlPath` are not\ncached. You can use image name or SEO version\n\nof the image name - see below.\n\n\nUse the `cdnPath` in case you want to use the image url on the frontend and\nusers of your application will display it,\n\ne.g. if you provide an alternative frontend, mobile application etc. The\nimages are cached and provided with lower\n\nlatency. Use `cdnName` retrieved from the product detail endpoint (or\nsimilar) - see below.\n\n\nOnce you determine the URL based on the purpose and image cut size (for\nexample `detail` for product detail, or `related`\n\nfor product preview), just append the filename you need. The filename can be\nretrieved from Product detail endpoint.\n\n\nAlthough the e-shop is behind the content delivery network (Cloudflare CDN),\nAPI still returns the same domain. Whether\n\nthe e-shop is behind the Cloudflare CDN, you can find out from response\nheaders (`CDN-Loop: cloudflare` header).\n\n\nThe product detail endpoint `/api/products/{guid}?include=images` returns\nthe image field `data.images[]` in the same\n\nsequence, as these are entered in administration. The file name `name` (for\nexample `100.jpg`) needs to be connected\n\nto the URL cut and then you have complete path to the image of a given cut\n(size), for example\n\n`https://classic.shoptet.cz/user/shop/detail/100.jpg`. You can also use\n`seoName`, which also contains a description\n\nof the image - you will be redirected to the same image. The `cdnName` is\nintended for use with the `cdnUrl` only.\n\nThe fields look like: (excerpt)\n\n\n```json\n    \"name\": \"106.png\",\n    \"description\": \"shamrock 2115611 640\",\n    \"seoName\": \"106_shamrock-2115611-640.png\",\n    \"cdnName\": \"106_shamrock-2115611-640.png?5b2a41f5\"\n```\n\n\nOne of the images mentioned for the product can be selected as the default\nimage for the product variant. The selected\n\nimage is in `data.variants[].image` item and contains the name of the image\n– this can be searched for in the image\n\nlist, in the `name` item. Should the variant have no preselected default\nimage, the parameter `image` is `null`.\n\nIf `data.variants[].isProductDefaultImage` is true, then the default product image is given. If it is `false`, then\nit is the default variant image.\n\nThe item `data.items[].mainImage` contains the main image in order detail -\nthis is either a default variant image,\n\nor, if not set (or product does not have variants), the default product\nimage is given. The structure is the same as\n\nin product details, but not all images are given here, only the default one\n– representative image. The full path can\n\nbe gained by assembling the `urlPath` from the e-shop info and the `name` or\n`seoName` items, given for the order item.\n\n\nSimilarly, the product list gives `data.products[].mainImage`, which\nmentions the initial image for each product.\n\n\n# Code lists\n\n\n## Image cuts\n\n\nValue | Description\n-------- | ---------\norig | original image (in the original resolution)\nbig | big image (typically 1024x768 px)\ndetail |image detail (typically 360x270 px)\ncategory | size for listing in category (typically 216x105 px)\nrelated | size for related products (typically 100x100 px)\n\n## Product visibility\n\nValue  | Description\n-------- | ---------\nhidden | Hide product\nvisible | Show product\nblocked | Cannot be ordered\nshow-registered | Show only to logged-in users\nblock-unregistered | Do not allow order to logged-out users\ncash-desk-only | Show only in cash desk\ndetail-only | Do not show e-shop navigation\n\n## Product types\n\nValue  | Description\n-------- | ---------\nproduct | Product\nbazar | Second-hand product\nservice | Service\ngift-certificate | Gift (deprecated)\nproduct-set | Product set\n\n## Types of order items\n\n\nValue  | Description\n-------- | ---------\nproduct | Product\nbazar | Second-hand product\nservice | Service\nshipping | Transportation\nbilling | Payment method\ndiscount-coupon | Discount coupon\nvolume-discount | Volume discount\ngift | Gift\ngift-certificate | Gift certificate\ngeneric-item | Non-specific item\nproduct-set | Product set\nproduct-set-item | Product set item\ndeposit | Deposit\n\n\n## Sorting of products in category\n\n\nValue  | Description\n-------- | ---------\ndefault | Default\nmost-selling | Most selling first\ncheapest | Cheapest first\nmost-expensive | Most expensive first\noldest | Oldest first\nnewest | Newest first\nalphabetically | Alphabetically\nalphabetically-desc | Alphabetically, descending\nproduct-code | Per product code\nproduct-code-desc  | Per product code, descending\ncategory-priority | Category priority\ncategory-priority-desc | Category priority, descending\n\n## Webhook event types\n\nValue  | Description | Identifier meaning\n-------- | --------- | ---------\nbrand:create | Brand creation event | String (`code`) - brand unique code\nbrand:update | Brand change event     | String (`code`) - brand unique code\nbrand:delete | Brand deleting event   | String (`code`) - brand unique code\ncategory:create | Category creation event | String (`guid`) of product category\ncategory:update | Category change event     | String (`guid`) of product category\ncategory:delete | Category deleting event   | String (`guid`) of product category\ncreditNote:create | Credit note creation event | Number (`code`) of credit note\ncreditNote:delete | Credit note deleting event   | Number (`code`) of credit note\ncreditNote:update | Credit note change event     | Number (`code`) of credit note\ncustomer:create | New customer was created | Customer GUID\ncustomer:update | Customer was updated. Throws `409 Conflict` when try to register simultaneously with `customer:disableOrders` or `customer:enableOrders` | Customer GUID\ncustomer:disableOrders | An event disabled the customer, and his future orders will be automatically cancelled. Throws `409 Conflict` when try to register simultaneously with `customer:update` | Customer GUID \ncustomer:enableOrders | An event enabled the customer's future orders. Throws `409 Conflict` when try to register simultaneously with `customer:update` | Customer GUID\ncustomer:import | Import of 1 and more customers was executed | Fixed string \"customers\"\ncustomer:delete | Customer was deleted | Customer GUID\ndeliveryNote:create | Delivery note creation event  | Number (`code`) of delivery note\ndeliveryNote:delete | Delivery note deleting event    | Number (`code`) of delivery note\ndeliveryNote:update | Delivery note change event      | Number (`code`) of delivery note\ndiscountCoupon:create | Discount coupon creating event | String (`code`) - discount coupon unique code\ndiscountCoupon:delete | Discount coupon deleting event      | String (`code`) of discount coupon\ndiscountCoupon:update | Discount coupon updating event | String (`code`) - discount coupon unique code\neshop:currencies | Currencies settings change event | ID of eshop\neshop:billingInformation | Billing information (i.e. eshop billing address) change event | ID of eshop\neshop:settingsInformation | Eshop settings change event. Whenever some attribute from `data.settings` response section of GET eshop detail change | ID of eshop\neshop:design | Design settings (template, colors, fonts, layout) | ID of eshop\neshop:mandatoryFields | Mandatory fields of customer were updated | ID of eshop\neshop:projectDomain | Domain of eshop was changed | ID of eshop  \ninvoice:create | Invoice creation event  | Number (`code`) of invoice\ninvoice:delete | Invoice deleting event    | Number (`code`) of invoice\ninvoice:update | Invoice change event      | Number (`code`) of invoice\njob:finished | The asynchronous request was finished | Job `id`\nmailingListEmail:create | E-mail addition event into the e-mail distribution list | Name (`code`) of e-mail distribution list\nmailingListEmail:delete | E-mail deleting event from the e-mail distribution list | Name (`code`) of e-mail distribution\norder:cancel | Order cancel event. Webhook is emitted when order status is set to `canceled`. Throws `409 Conflict` when try to register simultaneously with `order:update` | Number (`code`) of order\norder:create | Order creation event | Number (`code`) of order\norder:delete | Order deleting event   | Number (`code`) of order\norder:paid | Order paid event. Not emitted if a new order with paid status is created (register `order:create`/`order:massCreate`). Emitted only if the unpaid state is changed to paid during order update.   | Number (`code`) of order\norder:update | Order change event. Throws `409 Conflict` when try to register simultaneously with `order:cancel` | Number (`code`) of order\norderHistoryRemarks:change | Order history remarks have been changed. Emitted when order remark is created or deleted | Number (`code`) of order\norderStatusesList:change | Order status list change event. Emitted when order status is created, updated or deleted | Order status `ID`\npricelist:create | Pricelist creation event | ID of pricelist\npricelist:delete | Pricelist deleting event | ID of pricelist\npaymentMethod:change | Payment method change event | Payment method GUID\nproformaInvoice:create | Proforma invoice creation event | Number (`code`) of proforma invoice\nproformaInvoice:delete | Proforma invoice deleting event   | Number (`code`) of proforma invoice\nproformaInvoice:update | Proforma invoice change event     | Number (`code`) of proforma invoice\nprojectReview:create | Project review creation event | ID of project review\nproductReview:created | Product review creation event | ID of product review\nproofPayment:create | Proof of payment creation event | Number (`code`) of proof payment\nproofPayment:delete | Proof of payment deleting event | Number (`code`) of proof payment\nproofPayment:update | Proof of payment change event   | Number (`code`) of proof payment\nquantityDiscount:create | Quantity discount creation event | ID of quantity discount\nquantityDiscount:update | Quantity discount change event | ID of quantity discount\nquantityDiscount:delete | Quantity discount deleting event | ID of quantity discount\nsalesChannel:create | Sales channel create event | GUID of sales channel\nsalesChannel:update | Sales channel update event | GUID of sales channel\nsalesChannel:delete | Sales channel delete event | GUID of sales channel\nshippingMethod:change | Shipping method change event | Shipping method GUID\nshippingRequest:cancelled | Shipping request was not chosen for order delivery | `shippingRequestCode` associated with the cart\nshippingRequest:confirmed | Shipping request was chosen for order delivery | `shippingRequestCode` associated with the cart\nstock:movement | Stock change event | Stock ID\nstock:inStock (*) | Stock change event - sum across all of the stocks raised above 0 (beta, see below) | Number (`code`) of product\nstock:soldOut (*) | Stock change event - sum across all of the stocks reached 0 (beta, see below) | Number (`code`) of product\nstock:minStockSupplyReached (*) | Stock change event - sum across all of the stocks reached minimum stock supply value, if this limit is set for product (beta, see below) | Number (`code`) of product\n\n(*) These webhooks are considered beta/experimental, for more information, please visit the X-url\n\n### Mass Webhooks\n\nThese webhooks are sent when a mass change of entities is performed. The\npayload contains a json serialized list of IDs of changed entities.\n\nPurpose of these webhooks is to downgrade number of requests, while i.e.\nadministrator performs mass change of orders status at once etc.\n\nSo instead of emitting one event for every order, we emit one event for all\nof them.\n\n\n<strong>For now, if some mass event is performed, we also sent \"single\"\nwebhook event for every updated entity as usual, but it will be changed in\nfuture</strong>, \nso please watch [release changes](https://developers.shoptet.com/category/api/) for more info\n\n\nValue  | Description | Identifier meaning\n-------- | --------- | ---------\ncategory:massCreate | Mass create of product categories event | Json serialized list of string (`guid`) of product categories\ncategory:massUpdate | Mass change of product categories event      | Json serialized list of string (`guid`) of product categories\ncategory:massDelete | Mass delete of product categories event      | Json serialized list of string (`guid`) of product categories\ndiscountCoupon:massCreate | Mass create of discount coupons event | Json serialized list of string (`code`) of discount coupons\ndiscountCoupon:massDelete | Mass delete of discount coupons event      | Json serialized list of string (`code`) of discount coupons\ninvoice:massUpdate | Mass change of invoices event      | Json serialized list of number (`code`) of invoices\norder:massCreate | Mass create of orders event      | Json serialized list of number (`code`) of orders\norder:massUpdate | Mass change of orders event      | Json serialized list of number (`code`) of orders\norder:massPaid | Mass paid of orders event. Not emitted if a new mass orders with paid status are created (register `order:create`/`order:massCreate`). Emitted only if the unpaid state is changed to paid during mass orders update.      | Json serialized list of number (`code`) of orders\nquantityDiscount:massDelete | Mass delete of quantity discount event | Json serialized list of quantity discounts IDs\nquantityDiscount:massUpdate | Mass change of quantity discount event | Json serialized list of quantity discounts IDs \n\n### System Webhooks\n\nThese webhooks cannot be registered via API, they are setup in Partners'\nAddon administration section instead.\n\n\nValue | Description\n----- | -----------\naddon:suspend | The addon was suspended by the eshop or by Shoptet operations staff\naddon:approve | The addon was approved (resumed) after it was suspended\naddon:terminate | The addon was terminated by the eshop or by Shoptet operations staff\naddon:uninstall | The addon was uninstalled by the eshop admin or the eshop was terminated\n\n## URL address from endpoint Eshop info\n\nSee endpoint [Eshop info](#tag/eshop/geteshopinfo)\n\nIdent | Description\n------| -----\nadmin-orders-list | Listing of orders in administration\nadmin-customers-list | List of customers in administration\noauth | OAuth server address, used for [e-shop user verification](https://developers.shoptet.com/api/documentation/eshop-verification-using-oauth/)\n\n## List of product catalogues\n\nProvider (identification) | Description\n------| -----\nglami | Glami\ngoogle | Google\nheureka | Heuréka\nzbozi | Zboží.cz\n\n## Invoice billing methods\n\nid | Description\n------| -----\n1 | COD (cz: Dobírka)\n2 | Wire transfer (cz: Převodem)\n3 | Cash (cz: Hotově)\n4 | Card (cz: Kartou)\n\n## VAT modes\n             \n             \nValue |\n------|\nNormal |\nOne Stop Shop |\nMini One Stop Shop |\nReverse charge |\nOutside the EU |\n\n# Postman collection\n\n\nIf you use Postman as an API platform for building and using APIs, we provide you a complex collection of Shoptet API.\n\nYou have 2 options how to import our postman collection (created from [openApi schema](https://swagger.io/specification/) - openapi.yaml ) into your postman client\n\n\n## Fork Shoptet API Collection from Shoptet Public API Workspace (recommended)\n\n\nSee [Shoptet Public API Workspace](https://www.postman.com/shoptet-developers/shoptet-public-api-workspace).\n\nAlso check postman documentation for more details: [Fork a collection](https://learning.postman.com/docs/collaborating-in-postman/using-version-control/forking-elements/).\n\n\n### Step 1: Navigate to Shoptet Public API Workspace\n\n\n- Launch Postman on your desktop or in the browser.\n\n- In the search bar in the top header of app, type **Shoptet Public API** and select collection from Shoptet public API Workspace.\n\n\n### Step 2: Locate the Shoptet API Collection\n\n\n- Once inside the Shoptet Public API Workspace, go to the **Collections** tab.\n\n- Find the **Shoptet API** collection.\n\n\n### Step 3: Fork the Collection\n\n\n- Click on the **Shoptet API** collection to open it.\n\n- In the collection view, click the **Fork** button in the top-right corner.\n\n- In the fork dialog, choose a name for your forked collection.\n\n- Select the workspace where you want to save the forked collection.\n\n- **It’s recommended to check `watch original collection` to get notified about changes in the original collection.**\n\n- Click **Fork Collection**.\n\n\n### Step 4: Access Your Forked Collection\n\n\n- Navigate to the workspace where you saved the forked collection.\n\n- You’ll now find the forked **Shoptet API** collection under the **Collections** tab, ready for you to use and modify.\n\nNow you have your own copy of the Shoptet API collection! If you want to add changes from the original collection, you can do so by click on `pull changes` in collection settings.\n\n\n## Import openapi.yaml into Postman as a Collection\n\n\n### Step 1: Upload the `openapi.yaml` File\n\n\n- Download the [openapi.yaml](https://github.com/shoptet/developers/blob/master/openapi/openapi.yaml) file from our developers [repository](https://github.com/shoptet/developers).\n\n- Launch Postman on your desktop or in the browser.\n\n- In the top-left corner of Postman, click the **Import** button.\n\n- A pop-up window will appear.\n\n- Drag and drop your `openapi.yaml` file into the window, or click **Upload Files** and browse to the file's location.\n\n\n### Step 2: Verify OpenAPI Import\n\n\n- Postman will automatically recognize the OpenAPI schema.\n\n- It will display a preview of the API schema.\n\n\n### Step 3: Import as Collection\n\n\n- Once the file is recognized, click **Import**.\n\n- Postman will convert the OpenAPI schema into a collection of requests, based on the defined endpoints in the `openapi.yaml` file.\n\n\n### Step 4: Access the Imported Collection\n\n\n- After the import is successful, go to the **Collections** tab.\n\n- You’ll find your new collection, named after the OpenAPI schema, containing all the API requests generated from the file.\n\n\nNow you can explore the API endpoints and use them directly within Postman!\n\n## Collection settings\n\n1. Click the **Shoptet API** collection name.\n\n2. Go to **Authorization** tab.\n\n3. Set your access token into the `value` of `Shoptet-Access-Token` key.\n\n4. Go to **Variables** tab.\n\n5. You can set `baseUrl` variable here.\n\n# SDK\nThe official PHP library for the Shoptet REST API. The SDK is open-source and available on both [Packagist](https://packagist.org/packages/shoptet/api-sdk-php) and [GitHub](https://github.com/shoptet/api-sdk).\n## Requirements\nPHP 8.3 or later\n             \n## Dependencies\nThe SDK requires the following extensions and libraries to work properly:\n- **[curl](https://www.php.net/manual/en/book.curl.php)** — You can use your own non-cURL client if preferred.\n- **[json](https://www.php.net/manual/en/book.json.php)**\n- **[psr/log](https://www.php-fig.org/psr/psr-3/)**\n\n> If you use Composer, these dependencies will be handled automatically.  \n> If you install the library manually, please ensure that these extensions are available.\n## Installation\n### Composer\nYou can install the sdk via [Composer](https://getcomposer.org/). Run the following command:\n```bash\n  composer require shoptet/api-sdk-php\n```   \nTo use the sdk, use Composer's [autoload](https://getcomposer.org/doc/01-basic-usage.md#autoloading):\n```bash\n  require_once 'vendor/autoload.php';\n```\n### Manual\n```bash\n  require_once '/path/to/api-sdk-php/init.php';\n```\n## Getting Started \n### Simple usage\n  \n**Authorization**\n\nFor authorization, you need to set the partner domain URL and the token.\n```php\n  \\Shoptet\\Api\\Sdk\\Php\\Sdk::setPartnerDomainUrl('https://partner-eshop.myshoptet.com');\n  \\Shoptet\\Api\\Sdk\\Php\\Sdk::authorizeRequest('token-for-target-eshop');\n```\nIf token does not exist or is expired, you will need to obtain it first. For Obtaining a fresh public API token, you need to have the OAuth token for the eshop. See [how to get access token](https://developers.shoptet.com/api/documentation/getting-api-access-token/) for more information.\n  \n```php\n  // Set partner domain URL for obtaining fresh public API token\n  \\Shoptet\\Api\\Sdk\\Php\\Sdk::setPartnerDomainUrl('https://partner-eshop.myshoptet.com');\n  \n  try {\n      // Try to authorize request with token for some eshop\n      \\Shoptet\\Api\\Sdk\\Php\\Sdk::authorizeRequest('token-for-target-eshop');\n  } catch (TokenHasExpiredException | TokenNotFoundException) {\n      // If token has expired or not found, create fresh public API token with specific OAuth token for eshop.\n      \\Shoptet\\Api\\Sdk\\Php\\Sdk::createFreshPublicApiToken('token-for-target-eshop', 'oauth-token-for-target-eshop');\n      // Try to authorize request again with fresh public API token\n      \\Shoptet\\Api\\Sdk\\Php\\Sdk::authorizeRequest('token-for-target-eshop');\n  }\n```\nYou can obtain oAuth access token after addon is installed in the eshop and you receive installation callback request. See [how to process addon installation](https://developers.shoptet.com/api/documentation/installing-the-addon/) for more information.\n```php\n  // Set partner domain URL for obtaining fresh public API token\n  \\Shoptet\\Api\\Sdk\\Php\\Sdk::setPartnerDomainUrl('https://partner-eshop.myshoptet.com');\n\n  $requestData = new \\Shoptet\\Api\\Sdk\\Php\\Endpoint\\OAuth\\CreateOauthAccessToken\\CreateOauthAccessTokenRequestData([\n  'client_id' => 'some-client-id',\n  'client_secret' => 'some-client-secret',\n  'redirect_uri' => 'https://partner-redirect-domain.com/after/authorize',\n  'code' => 'fdqmcvw0b89p3xv31j7w....', // use code from request\n  ]);\n\n  $authorizationFacade = \\Shoptet\\Api\\Sdk\\Php\\Sdk::createAuthorizationFacade();\n  // obtain and store new OAuth token\n  $authorizationFacade->addonInstallationCallback('oauth-token-for-target-eshop', $requestData);\n```\nFor storing tokens, there is in default basic implementation used `FileTokenStorage` which stores tokens in the file system. Default path for storing tokens is:\n```php\n  protected const string DEFAULT_FILE_STORAGE_PATH = '/tmp/shoptet-api';\n```\n\nThis implementation is not recommended for production use. You should implement your own token storage which implements `TokenStorage` interface.\n```php\n  \\Shoptet\\Api\\Sdk\\Php\\Sdk::setTokenStorage(new MyTokenStorage());\n```\n\n**Call endpoint with request body**\n```php\n  \\Shoptet\\Api\\Sdk\\Php\\Sdk::setPartnerDomainUrl('https://partner-eshop.myshoptet.com');\n  \\Shoptet\\Api\\Sdk\\Php\\Sdk::authorizeRequest('token-for-target-eshop');\n\n  $createdBrandResponse = \\Shoptet\\Api\\Sdk\\Php\\Sdk::createBrand([\n      'data' => [\n          'name' => 'Brand name',\n          'description' => 'Brand description',\n          'indexName' => 'brand-name',\n      ]\n  ]);\n\n  $createdBrandResponse->getBody();\n  //...\n```\n> [Read more](https://github.com/shoptet/api-sdk/blob/master/docs/request_body_processing_methods.md) about possible methods, how to call endpoints with request body.\n\n**Paginator**\n```php\n  \\Shoptet\\Api\\Sdk\\Php\\Sdk::setPartnerDomainUrl('https://partner-eshop.myshoptet.com');\n  \\Shoptet\\Api\\Sdk\\Php\\Sdk::authorizeRequest('token-for-target-eshop');\n\n  $listOfProductResponse = \\Shoptet\\Api\\Sdk\\Php\\Sdk::getListOfProducts();\n  //... Process response\n  try {\n      $listOfProductResponseNextPage = $listOfProductResponse->getNextPage();\n  } catch (\\Shoptet\\Api\\Sdk\\Php\\Exception\\OutOfRangeException $e) {\n      //Next page is out of range - Last page already reached\n  }\n```\n\n### Webhooks\nList of supported webhooks can be found in `\\Shoptet\\Api\\Sdk\\Php\\Webhook\\Event` enum.\n\nUse the enum above or plain string in request body to register new webhook.\n```php\n  Sdk::registerNewWebhook([\n      'data' => [\n          [\n              'event' => \\Shoptet\\Api\\Sdk\\Php\\Webhook\\Event::BRAND_CREATE,\n              'url' => 'https://my-domain.com/shoptet-webhook-consumer/brand-create'\n          ]\n      ],\n  ]);\n```\n\n### Custom header\n```php\n  // Add/remove custom header\n  \\Shoptet\\Api\\Sdk\\Php\\Sdk::setHeader('X-MY-AWESOME-HEADER', 'my-awesome-header-value');\n  \\Shoptet\\Api\\Sdk\\Php\\Sdk::unsetHeader('X-MY-AWESOME-HEADER');\n```\n\n### Custom request timeouts\n```php\n  $httpClient = \\Shoptet\\Api\\Sdk\\Php\\Sdk::getHttpClient();\n\n  /**\n   * Set connection timeout on 60sec\n   * Default is 30sec\n   * @see \\Shoptet\\Api\\Sdk\\Php\\HttpClient\\CurlClient::DEFAULT_TIMEOUT\n   */\n  $httpClient->setTimeout(60);\n\n  /**\n   * Set timeout on 90sec\n   * Default is 80sec\n   * @see \\Shoptet\\Api\\Sdk\\Php\\HttpClient\\CurlClient::DEFAULT_CONNECT_TIMEOUT\n   */\n  $httpClient->setConnectTimeout(90);\n\n  echo $httpClient->getTimeout(); // 60\n  echo $httpClient->getConnectTimeout(); // 90\n```\n\n### Handling Rate Limits\nWhen the API rate limit is exceeded, the SDK throws a `RateLimitExceededException`. You can handle this exception by retrying the request after the suggested `Retry-After` date. For more information, see the [Rate Limiting](https://api.docs.shoptet.com/openapi/section/basic-principles/rate-limiting) section in the API documentation.\n```php\n  try {\n      // ... Prepare the order entity\n      // Send the request, which may exceed the rate limit\n      $response = \\Shoptet\\Api\\Sdk\\Php\\Sdk::createOrder($orderEntity);\n  } catch (\\Shoptet\\Api\\Sdk\\Php\\Exception\\RateLimitExceededException $e) {\n      // Try again after Retry-After\n      $retryAfter = $e->getRetryAfter();\n      // ...\n  }\n```\n\n### Custom cURL options\nYou can customize the default CurlClient with extra options. The keys should be valid `CURLOPT_*` constants or their integer equivalents. The options will be used in `curl_setopt_array()`.\n```php\n  // Add/remove custom option in HttpClient\n  \\Shoptet\\Api\\Sdk\\Php\\Sdk::getHttpClient()\n      ->addOption(CURLOPT_PROXY, 'my-proxy.local:80');\n      ->removeOption(CURLOPT_PROXY);\n```\n\n### Response body type\nThe SDK provides multiple options how to handle response body automatically.\n- Return response body as the corresponding `Entity` object\n  - Factory class: `\\Shoptet\\Api\\Sdk\\Php\\Factory\\Response\\EntityResponseFactory`\n  - Default option\n- Return response body as array\n  - Factory class: `\\Shoptet\\Api\\Sdk\\Php\\Factory\\Response\\ArrayResponseFactory`\n- Return response body as raw string\n  - Factory class: `\\Shoptet\\Api\\Sdk\\Php\\Factory\\Response\\RawResponseFactory`\n\n```php\n  echo get_class(\\Shoptet\\Api\\Sdk\\Php\\Sdk::getEshopInfo()->getBody()); // Shoptet\\Api\\Sdk\\Php\\Endpoint\\Eshop\\GetEshopInfoResponse\\GetEshopInfoResponse\n\n  // Set response factory to ArrayResponseFactory so the response body will return as array (not the Entity)\n  \\Shoptet\\Api\\Sdk\\Php\\Sdk::getHttpClient()->setResponseFactory(new \\Shoptet\\Api\\Sdk\\Php\\Factory\\Response\\ArrayResponseFactory());\n\n  echo gettype(\\Shoptet\\Api\\Sdk\\Php\\Sdk::getEshopInfo()->getBody()); // array\n```\n\n### Custom HttpClient\nIf current HttpClient is not sufficient you can implement your own Client. The client must implement `\\Shoptet\\Api\\Sdk\\Php\\HttpClient\\ClientInterface`.\n```php\n  \\Shoptet\\Api\\Sdk\\Php\\Sdk::setHttpClient($httpClient);\n```\n\n### Logger\nThe library does minimal logging. Logging can be configured with a [PSR-3 compatible logger](https://www.php-fig.org/psr/psr-3/). Default Logger is the `Psr\\Log\\NullLogger` - So the logs end up in the void.\n```php\n  \\Shoptet\\Api\\Sdk\\Php\\Sdk::setLogger($logger);\n```\n    \n    \n### Handeling snapshot endpoints result\nIf you need to process snapshot job result, i.e. `/api/products/snapshot`, you can use `JobResultProcessor` or Sdk helper method `Sdk::processSnapshotResult`. This method gets job result file path from response and processes it.\n\nIt returns an iterator over snapshot job result data. This method use Generator to process data with smaller memory footprint.\n```php\n  $snapshotResultData = Sdk::processSnapshotResult('3xhzjz2');\n\n  foreach ($snapshotResultData as $entity) {\n      // do something with entity\n  }\n```\n\n### Exceptions\nAll exceptions should implement `Shoptet\\Api\\Sdk\\Php\\Exception\\Exception`.\n\nThere are 3 base types of Exceptions:\n- `Shoptet\\Api\\Sdk\\Php\\Exception\\LogicException`\n- `Shoptet\\Api\\Sdk\\Php\\Exception\\RuntimeException`\n- `Shoptet\\Api\\Sdk\\Php\\Exception\\ReflectionException`\n\n### Tests\nTo run unit tests, use the following command:\n```bash\n  composer test:unit\n```\n# Last changes\n\n\nLast API changes are published on the [API news] page\n(https://developers.shoptet.com/category/api/)."
  },
  "servers": [
    {
      "url": "https://api.myshoptet.com"
    }
  ],
  "security": [
    {
      "shoptetAccessToken": []
    },
    {
      "shoptetPrivateApiToken": []
    }
  ],
  "tags": [
    {
      "name": "Orders",
      "description": "Basic endpoints for managing orders. See the sections below for other specific actions."
    },
    {
      "name": "Order items",
      "description": "Managing order items."
    },
    {
      "name": "Order payment",
      "description": "Managing order payment."
    },
    {
      "name": "Order shipping",
      "description": "Managing order shipping."
    },
    {
      "name": "Order gifts",
      "description": "Managing order gifts."
    },
    {
      "name": "Order history",
      "description": "Managing order history."
    },
    {
      "name": "Invoices",
      "description": "Managing invoices in the e-shop."
    },
    {
      "name": "Proforma invoices",
      "description": "Managing proforma invoices in the e-shop.\n\nThe code (`code`) is the proforma invoice identifier. Although this is\nusually a number, it is necessary to take into account that this might\nalso include letters, a dash, etc."
    },
    {
      "name": "Credit notes",
      "description": "Managing credit notes in the e-shop.\n\nThe code (`code`) is the credit note identifier. Although this is usually\na number, it is necessary to take into account that this might also\ninclude letters, a dash, etc."
    },
    {
      "name": "Delivery notes",
      "description": "Managing delivery notes in the e-shop.\n\nThe code (`code`) is the credit notes identifier. Although this is usually\na number, it is necessary to take into account that this might also\ninclude letters, a dash, etc."
    },
    {
      "name": "Proof payments",
      "description": "The code (`code`) is the proof payments identifier. Although this is\nusually a number, it is necessary to take into account that this \nmight also include letters, a dash, etc."
    },
    {
      "name": "Products",
      "description": "Managing products in the e-shop and also its related modules."
    },
    {
      "name": "Price lists",
      "description": "Price lists are used for setting up different prices for products for\ndifferent customer groups."
    },
    {
      "name": "Brands",
      "description": "Managing brands in the e-shop.\n\n**Please note**, the **field `code` is deprecated** - use `indexName`\ninstead. Parameter `code` accepts both: \n\nguid string style, e.g. `d467bfbe-4334-11ef-ad70-0242ac1f0005`, and index\nname string style, e.g. `willy-wonka`.\n\n**The index name string style is deprecated** - use guid style."
    },
    {
      "name": "Product images",
      "description": "Managing product images."
    },
    {
      "name": "Product gifts",
      "description": "Managing product gifts."
    },
    {
      "name": "Alternative products",
      "description": "Managing alternative products."
    },
    {
      "name": "Related products",
      "description": "Managing related products."
    },
    {
      "name": "Product related files",
      "description": "Managing product related files."
    },
    {
      "name": "Product sets",
      "description": "Managing product sets."
    },
    {
      "name": "Customers",
      "description": "Managing customers in the e-shop."
    },
    {
      "name": "Customer accounts",
      "description": "Managing customer accounts."
    },
    {
      "name": "Customer delivery addresses",
      "description": "Managing customer delivery addresses."
    },
    {
      "name": "Customer remarks",
      "description": "Managing customer remarks."
    },
    {
      "name": "Articles",
      "description": "Managing articles in the e-shop."
    },
    {
      "name": "Pages",
      "description": "Managing pages in the e-shop."
    },
    {
      "name": "Discussions",
      "description": "Managing discussions in the e-shop."
    },
    {
      "name": "Templates",
      "description": "In the last Shoptet version, it is not possible to change the e-shop\ndesign via API. However, it is possible to include HTML codes\n\ninto previously defined places. This enables the code or link to a file\ncontaining additional CSS styles or JavaScript codes to be entered.\n\nThe same functionality is now included within the e-shop administration\n(`/admin/html-kody/`, `HTML code` tab).\n\nThere are 3 possible locations, where HTML codes can be inserted:\n\n* `common-header` - the code will be inserted into each e-shop page header\n(`<HEAD>`)\n\n* `common-footer` - the code will be inserted into each e-shop page foot\n(before end `</BODY>`)\n\n* `order-confirmed` - the code will be inserted in the page confirming the\norder (the \"thank you page\")\n\nThe inserted codes may come from 3 sources, and they are included in the\nfollowing order:\n\n1. Codes from addons (the addon defines HTML codes to be inserted for\nanybody, who installs the addon). If there are more of these, they are\ninserted progressively, the order cannot be relied upon.\n\n2. Codes entered via API. Each addon can insert only one code into each\nlocation. If there are more of these addons, the codes will be inserted\nprogressively, one after another, the order cannot be relied upon.\n\n3. The code entered in the administration GUI (`/admin/html-kody/`, `HTML\ncode` tab)."
    },
    {
      "name": "Reviews",
      "description": "Managing reviews in the e-shop."
    },
    {
      "name": "Discount coupons",
      "description": "Managing discount coupons in the e-shop."
    },
    {
      "name": "Quantity discounts",
      "description": "Managing quantity discounts in the e-shop."
    },
    {
      "name": "XY discounts",
      "description": "Managing X + Y discounts in the e-shop."
    },
    {
      "name": "Volume discounts",
      "description": "Managing volume discounts in the e-shop."
    },
    {
      "name": "E-mail distribution lists",
      "description": "The functionality is subject to module activation [Mass\ne-mailing](https://doplnky.shoptet.cz/hromadne-rozesilani-emailu) within\nthe e-shop. The addon using this endpoint must therefore have this module\ndefined as dependency."
    },
    {
      "name": "Unsubscribed emails",
      "description": "This functionality allows you to manage a list of email addresses that\nopted out of receiving marketing communications in compliance with legal\nrequirements, including the possibility of comparing any further mailings\nwith this list to exclude opt-out contacts."
    },
    {
      "name": "Categories",
      "description": "Managing categories in the e-shop."
    },
    {
      "name": "Parametric categories",
      "description": "Managing parametric categories in the e-shop."
    },
    {
      "name": "Stocks",
      "description": "Managing stocks in the e-shop."
    },
    {
      "name": "Consumption taxes",
      "description": "Managing consumption taxes in the e-shop."
    },
    {
      "name": "Surcharge parameters",
      "description": "Managing surcharge parameters in the e-shop."
    },
    {
      "name": "Flags",
      "description": "Managing flags in the e-shop."
    },
    {
      "name": "Variant parameters",
      "description": "Managing variant parameters in the e-shop."
    },
    {
      "name": "Filtering parameters",
      "description": "Managing filtering parameters in the e-shop."
    },
    {
      "name": "Suppliers",
      "description": "Managing suppliers in the e-shop."
    },
    {
      "name": "Shipping methods",
      "description": "Managing shipping methods in the e-shop."
    },
    {
      "name": "Payment methods",
      "description": "Managing payment methods in the e-shop."
    },
    {
      "name": "Gifts",
      "description": "Managing order gifts in the e-shop."
    },
    {
      "name": "Eshop",
      "description": "General information about the e-shop settings."
    },
    {
      "name": "Units",
      "description": "Managing units in the e-shop."
    },
    {
      "name": "Warranties",
      "description": "Managing warranties for the products."
    },
    {
      "name": "Recycling fees",
      "description": "Managing recycling fees in the e-shop."
    },
    {
      "name": "Webhooks",
      "description": "API endpoints for webhook servicing. It offers the possibility to read,\nadd, change and delete the registered webhooks. Furthermore, it offers\na list of notifications about invoked webhooks and their status.\n\nThe webhooks are HTTP calls, which send HTTPs calls to registered\nsubscribers if a specific event happens,\n\nfor example creating an order. Then the information, in JSON format, is\ndelivered to the defined URL.\n\n```javascript\n\n{\n    \"eshopId\": 222651,\n    \"event\": \"order:create\",\n    \"eventCreated\": \"2019-01-08T15:13:39+0100\",\n    \"eventInstance\": \"2018000057\"\n}\n\n```\n\nThe meaning of individual items:\n\n* `eshopId` - number of the e-shop, where the event happened\n\n* `event` - event which invoked the call (see code list\n[Webhook event types](#section/code-lists/webhook-event-types))\n\n* `eventCreated` - accurate time, when the event happened\n\n* `eventInstance` - reference to a specified entity - according to the\ncontext, order number, invoice number, product GUID, etc.\n\nFor more information about the function of webhooks, see\nhttps://developers.shoptet.com/webhooks/."
    },
    {
      "name": "Endpoints",
      "description": "Obtaining information for endpoints in API."
    },
    {
      "name": "Jobs",
      "description": "Managing asynchronous jobs in the e-shop."
    },
    {
      "name": "Files",
      "description": "Managing files in the e-shop."
    },
    {
      "name": "Exports",
      "description": "Exports allow to work with documents of several types in several formats."
    },
    {
      "name": "Payment gateways",
      "description": "API endpoints for integration of payment gateways.\n\n**If you are a Premium client, contact your Account or Onboarding manager.\nNew payment gateway has to be approved by Shoptet and client needs to be\nfamiliar with the terms of payment in advance**."
    },
    {
      "name": "Shipping requests",
      "description": "Shipping requests endpoints are used for managing shipping requests in the\ne-shop."
    },
    {
      "name": "Measure units",
      "description": "Allows you to access the system measure unit. These units are convertible to\neach other and cannot be redefined or extended. For defining/extending your\nown units use [Units](#tag/units) in the **Settings** section."
    },
    {
      "name": "Batch",
      "description": "Schemas related to batch actions."
    },
    {
      "name": "Snapshot",
      "description": "Schemas related to snapshot actions."
    }
  ],
  "paths": {
    "/api/eshop": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "contactInformation",
                        "settings",
                        "currencies",
                        "taxClasses",
                        "activeModules",
                        "urls"
                      ],
                      "properties": {
                        "contactInformation": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "eshopId",
                            "eshopName",
                            "eshopCategory",
                            "url",
                            "eshopTitle",
                            "eshopSubtitle",
                            "contactPerson",
                            "email",
                            "phone",
                            "mobilePhone",
                            "skypeAccount",
                            "contactPhotoUrl"
                          ],
                          "properties": {
                            "eshopId": {
                              "type": "integer",
                              "examples": [
                                "9993"
                              ],
                              "description": "e-shop ID"
                            },
                            "eshopName": {
                              "type": "string",
                              "examples": [
                                "Shoptet"
                              ],
                              "description": "name of the e-shop"
                            },
                            "eshopCategory": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "category of the e-shop",
                              "examples": [
                                "Technology"
                              ]
                            },
                            "url": {
                              "type": "string",
                              "description": "e-shop domain. Please note that domain can change, so it is recommended to register `eshop:projectDomain` webhook and update the domain in your system if needed.",
                              "examples": [
                                "http://www.domena-eshopu.cz"
                              ]
                            },
                            "eshopTitle": {
                              "type": "string",
                              "description": "name of the store",
                              "examples": [
                                "Shoptet"
                              ]
                            },
                            "eshopSubtitle": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "subtitle of the store",
                              "examples": [
                                "Shop quickly and easily"
                              ]
                            },
                            "contactPerson": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "contact person (e-shop owner)",
                              "examples": [
                                "John Doe"
                              ]
                            },
                            "email": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "contact person email",
                              "examples": [
                                "info@domena-eshopu.cz"
                              ]
                            },
                            "phone": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "contact person phone",
                              "examples": [
                                "+420777888999"
                              ]
                            },
                            "mobilePhone": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "contact person mobile phone",
                              "examples": [
                                "+420777888999"
                              ]
                            },
                            "skypeAccount": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "contact person skype account",
                              "examples": [
                                "john_doe"
                              ]
                            },
                            "contactPhotoUrl": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "contact person photo URL",
                              "examples": [
                                "http://www.domena-eshopu.cz/picture.jpg"
                              ]
                            }
                          }
                        },
                        "billingInformation": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "billingName",
                            "address",
                            "country",
                            "registration",
                            "phone",
                            "email",
                            "billingEmail"
                          ],
                          "properties": {
                            "billingName": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "trade company / e-shop owner",
                              "examples": [
                                "John Doe"
                              ]
                            },
                            "company": {
                              "type": "object",
                              "additionalProperties": false,
                              "description": "company invoicing informations",
                              "required": [
                                "companyId",
                                "taxId",
                                "vatId"
                              ],
                              "properties": {
                                "companyId": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "description": "Company registration number.",
                                  "examples": [
                                    "12345678"
                                  ]
                                },
                                "vatId": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "description": "VAT identification number.",
                                  "examples": [
                                    "CZ289324675"
                                  ]
                                },
                                "taxId": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "description": "TAX identification number. For Czech address, taxId is same as vatId.",
                                  "examples": [
                                    "CZ289324675"
                                  ]
                                }
                              }
                            },
                            "address": {
                              "type": "object",
                              "additionalProperties": false,
                              "description": "invoicing address",
                              "required": [
                                "streetAddress",
                                "city",
                                "zip"
                              ],
                              "properties": {
                                "streetAddress": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "description": "street, including house and landmark numbers",
                                  "examples": [
                                    "Roháčova 15"
                                  ]
                                },
                                "city": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "description": "city or town",
                                  "examples": [
                                    "Praha"
                                  ]
                                },
                                "zip": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "description": "ZIP or postal code.",
                                  "examples": [
                                    "130 00"
                                  ]
                                }
                              }
                            },
                            "country": {
                              "type": "object",
                              "additionalProperties": false,
                              "description": "country of invoicing address",
                              "required": [
                                "countryCode",
                                "countryName"
                              ],
                              "properties": {
                                "countryCode": {
                                  "type": "string",
                                  "description": "international 2-character country code",
                                  "examples": [
                                    "CZ"
                                  ]
                                },
                                "countryName": {
                                  "type": "string",
                                  "description": "country name",
                                  "examples": [
                                    "Czech Republic"
                                  ]
                                }
                              }
                            },
                            "registration": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "reference tag",
                              "examples": [
                                "C 12345"
                              ]
                            },
                            "evNumber": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Hungarian sole trader registration number. Only for Hungary with enabled `Online Számla` module, otherwise, it is null.",
                              "examples": [
                                "87654321"
                              ]
                            },
                            "phone": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "main company telephone",
                              "examples": [
                                "+420777888999"
                              ]
                            },
                            "email": {
                              "type": "string",
                              "description": "Main company e-mail. Use this email as a primary one for communication with e-shop.",
                              "examples": [
                                "novak@domena-eshopu.cz"
                              ]
                            },
                            "billingEmail": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "invoicing e-mail",
                              "examples": [
                                "fakturace@domena-eshopu.cz"
                              ]
                            }
                          }
                        },
                        "settings": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "vatPayer",
                            "cashDeskOnly",
                            "trackStockClaims",
                            "maxProductAmount",
                            "maxEmailAmount",
                            "defaultPricelist",
                            "timezone",
                            "dateFormat",
                            "timeFormat",
                            "internals",
                            "exchangeRateFlip",
                            "negativeStockAmount",
                            "oss",
                            "stockControlDisabled",
                            "wholesaleSplitActive"
                          ],
                          "properties": {
                            "vatPayer": {
                              "type": "boolean",
                              "description": "flag, whether the e-shop is a VAT payer",
                              "examples": [
                                true
                              ]
                            },
                            "cashDeskOnly": {
                              "type": "boolean",
                              "description": "flag, whether the e-shop is operated exclusively in cash desk mode",
                              "examples": [
                                false
                              ]
                            },
                            "trackStockClaims": {
                              "type": "boolean",
                              "description": "flag, activate stock claim count",
                              "examples": [
                                true
                              ]
                            },
                            "maxProductAmount": {
                              "type": "integer",
                              "description": "maximum number of products allowed",
                              "examples": [
                                500
                              ]
                            },
                            "maxEmailAmount": {
                              "type": "integer",
                              "description": "maximum number of e-mails allowed",
                              "examples": [
                                1000
                              ]
                            },
                            "defaultPricelist": {
                              "$ref": "#/components/schemas/pricelist",
                              "description": "default pricelist"
                            },
                            "eshopLanguage": {
                              "type": "string",
                              "description": "Default language code of the e-shop. Unavailable when module foreignLanguages is active and initialized.",
                              "examples": [
                                "cs"
                              ]
                            },
                            "timezone": {
                              "type": "string",
                              "description": "e-shop timezone",
                              "examples": [
                                "Europe/Prague"
                              ]
                            },
                            "dateFormat": {
                              "type": "string",
                              "description": "eshop date format",
                              "examples": [
                                "j.n.Y"
                              ]
                            },
                            "timeFormat": {
                              "type": "string",
                              "description": "eshop time format",
                              "examples": [
                                "H:i"
                              ]
                            },
                            "internals": {
                              "type": "string",
                              "description": "e-shop language internals - shows eshop internal language settings, that can change some behavior like EET, vat/tax, ...",
                              "examples": [
                                "cs"
                              ]
                            },
                            "exchangeRateFlip": {
                              "type": "boolean",
                              "description": "rate flipping",
                              "examples": [
                                false
                              ]
                            },
                            "negativeStockAmount": {
                              "type": "string",
                              "enum": [
                                "allowed",
                                "no-show-product",
                                "no-hide-navigation",
                                "no-hide-product"
                              ],
                              "description": "determines if negative stock buying is allowed. Possible values: `allowed`, `no-show-product` (no, but still show product), `no-hide-navigation` (no, show product, hide in navigation), `no-hide-product` (no, hide product)",
                              "examples": [
                                "allowed"
                              ]
                            },
                            "oss": {
                              "type": "boolean",
                              "description": "Determines if eshop has the OSS (One stop shop) tax mode enabled, this affects behavior of VAT rates in the order.",
                              "examples": [
                                false
                              ]
                            },
                            "stockControlDisabled": {
                              "type": "boolean",
                              "description": "Determines if eshop has stock control disabled, this is also true if stock module is disabled.",
                              "examples": [
                                false
                              ]
                            },
                            "wholesaleSplitActive": {
                              "type": "boolean",
                              "description": "Determines if the wholesale payment/shipping methods split is enabled. True if wholesale payment methods are permitted and split is active, otherwise false",
                              "examples": [
                                true
                              ]
                            }
                          }
                        },
                        "currencies": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "title",
                              "isDefault",
                              "isDefaultAdmin",
                              "isDefaultDocuments",
                              "isVisible",
                              "exchangeRate",
                              "priority",
                              "display",
                              "priceDecimalPlaces",
                              "documentPriceDecimalPlaces",
                              "rounding",
                              "minimalOrderValue",
                              "bankAccount"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "currency (ISO format 3 characters)",
                                "examples": [
                                  "CZK"
                                ]
                              },
                              "title": {
                                "type": "string",
                                "description": "currency name",
                                "examples": [
                                  "Crown"
                                ]
                              },
                              "isDefault": {
                                "type": "boolean",
                                "description": "flag, whether this is the default shop currency",
                                "examples": [
                                  true
                                ]
                              },
                              "isDefaultAdmin": {
                                "type": "boolean",
                                "description": "flag, whether this is the default administration currency",
                                "examples": [
                                  true
                                ]
                              },
                              "isDefaultDocuments": {
                                "type": "boolean",
                                "description": "flag, whether this is the default documents (invoicing) currency",
                                "examples": [
                                  true
                                ]
                              },
                              "isVisible": {
                                "type": "boolean",
                                "description": "flag, whether the currency is visible in the e-shop",
                                "examples": [
                                  true
                                ]
                              },
                              "exchangeRate": {
                                "$ref": "#/components/schemas/typeExchangeRate",
                                "description": "currency exchange rate. According to the currency administration settings, the exchange rate is updated regularly according to the Czech National Bank rate, or is fixed."
                              },
                              "priority": {
                                "type": "integer",
                                "description": "currency priority",
                                "examples": [
                                  1
                                ]
                              },
                              "display": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "text",
                                  "location",
                                  "decimalsSeparator",
                                  "thousandsSeparator"
                                ],
                                "properties": {
                                  "text": {
                                    "type": "string",
                                    "description": "currency symbol",
                                    "examples": [
                                      "CZK"
                                    ]
                                  },
                                  "location": {
                                    "type": "string",
                                    "enum": [
                                      "left",
                                      "right"
                                    ],
                                    "description": "position of currency symbol, possible values are (left) and (right)",
                                    "examples": [
                                      "right"
                                    ]
                                  },
                                  "decimalsSeparator": {
                                    "type": "string",
                                    "description": "currency display decimal separator",
                                    "examples": [
                                      ","
                                    ]
                                  },
                                  "thousandsSeparator": {
                                    "type": [
                                      "string",
                                      "null"
                                    ],
                                    "description": "currency display thousands separator",
                                    "examples": [
                                      " "
                                    ]
                                  }
                                }
                              },
                              "priceDecimalPlaces": {
                                "type": "integer",
                                "description": "number of decimal places",
                                "examples": [
                                  2
                                ]
                              },
                              "documentPriceDecimalPlaces": {
                                "type": "integer",
                                "description": "number of decimal places",
                                "examples": [
                                  2
                                ]
                              },
                              "rounding": {
                                "type": "string",
                                "enum": [
                                  "none",
                                  "up",
                                  "down",
                                  "math"
                                ],
                                "description": "way of rounding, possible values are (none), (up), (down) and (math)",
                                "examples": [
                                  "up"
                                ]
                              },
                              "minimalOrderValue": {
                                "$ref": "#/components/schemas/typePriceNullable",
                                "description": "minimal order value",
                                "examples": [
                                  "300.00"
                                ]
                              },
                              "bankAccount": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "accountNumber",
                                  "iban",
                                  "bic",
                                  "ownerName"
                                ],
                                "properties": {
                                  "accountNumber": {
                                    "type": [
                                      "string",
                                      "null"
                                    ],
                                    "description": "account number",
                                    "examples": [
                                      "19-2000145399/0800"
                                    ]
                                  },
                                  "iban": {
                                    "type": [
                                      "string",
                                      "null"
                                    ],
                                    "description": "IBAN",
                                    "examples": [
                                      "CZ6508000000000192000145399"
                                    ]
                                  },
                                  "bic": {
                                    "type": [
                                      "string",
                                      "null"
                                    ],
                                    "description": "BIC",
                                    "examples": [
                                      "GIBACZPX"
                                    ]
                                  },
                                  "ownerName": {
                                    "type": [
                                      "string",
                                      "null"
                                    ],
                                    "description": "Owner name",
                                    "examples": [
                                      "Account Name"
                                    ]
                                  }
                                }
                              }
                            }
                          }
                        },
                        "taxClasses": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "title",
                              "rates",
                              "isDefault"
                            ],
                            "properties": {
                              "title": {
                                "type": "string",
                                "description": "descriptive name of tax rate",
                                "examples": [
                                  "Reduced VAT rate"
                                ]
                              },
                              "rates": {
                                "type": "array",
                                "description": "the list of tax rate zones",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "required": [
                                    "zone",
                                    "vatRate"
                                  ],
                                  "properties": {
                                    "zone": {
                                      "type": "string",
                                      "description": "zone name",
                                      "examples": [
                                        "Default Zone"
                                      ]
                                    },
                                    "vatRate": {
                                      "$ref": "#/components/schemas/typeVatRate",
                                      "description": "VAT rate",
                                      "examples": [
                                        "15.00"
                                      ]
                                    }
                                  }
                                }
                              },
                              "isDefault": {
                                "type": "boolean",
                                "description": "flag, whether the default VAT rate is for e-shop",
                                "examples": [
                                  true
                                ]
                              }
                            }
                          }
                        },
                        "activeModules": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "title",
                              "name"
                            ],
                            "properties": {
                              "title": {
                                "type": "string",
                                "description": "module descriptive name",
                                "examples": [
                                  "Abandoned Cart"
                                ]
                              },
                              "name": {
                                "type": "string",
                                "description": "module identifier",
                                "examples": [
                                  "abandonedCart"
                                ]
                              }
                            }
                          }
                        },
                        "urls": {
                          "type": "array",
                          "description": "e-shop significant URLs. Please note that domain can change, so it is recommended to register `eshop:projectDomain` webhook and update the domain in your system if needed.",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "ident",
                              "url"
                            ],
                            "properties": {
                              "ident": {
                                "type": "string",
                                "description": "URL identifier",
                                "examples": [
                                  "admin-orders-list"
                                ]
                              },
                              "url": {
                                "type": "string",
                                "description": "URL (correct form based on e-shop and administration)",
                                "examples": [
                                  "https://mujobchod.myshoptet.com/admin/prehled-objednavek"
                                ]
                              }
                            }
                          }
                        },
                        "socialNetworks": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "facebookUrl",
                            "facebookText",
                            "twitterAccount",
                            "instagramAccount"
                          ],
                          "properties": {
                            "facebookUrl": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Facebook profile URL.",
                              "examples": [
                                "https://www.facebook.com/eshop"
                              ]
                            },
                            "facebookText": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "visible text of the Facebook profile link.",
                              "examples": [
                                "Follow us on Facebook"
                              ]
                            },
                            "twitterAccount": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Twitter profile name.",
                              "examples": [
                                "shoptet_sro"
                              ]
                            },
                            "instagramAccount": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Instagram profile name.",
                              "examples": [
                                "shoptet_sro"
                              ]
                            }
                          }
                        },
                        "orderAdditionalFields": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "index",
                              "label"
                            ],
                            "description": "additional order fields, must be requested using `include=orderAdditionalFields`",
                            "properties": {
                              "index": {
                                "type": "integer",
                                "description": "field number in the order listed in the e-shop administration. Starts from 1.",
                                "examples": [
                                  1
                                ]
                              },
                              "label": {
                                "type": "string",
                                "description": "field label",
                                "examples": [
                                  "1. pole"
                                ]
                              }
                            }
                          }
                        },
                        "orderStatuses": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "statuses",
                            "defaultStatus"
                          ],
                          "description": "order statuses, must be requested using `include=orderStatuses`",
                          "properties": {
                            "statuses": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "id",
                                  "order",
                                  "name",
                                  "markAsPaid"
                                ],
                                "properties": {
                                  "id": {
                                    "type": "integer",
                                    "description": "order status identifier. System statuses are negative numbers, user positive.",
                                    "examples": [
                                      -4
                                    ]
                                  },
                                  "order": {
                                    "type": "integer",
                                    "description": "status order according to administration numbering.",
                                    "examples": [
                                      6
                                    ]
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "name of the status, as named in the administration.",
                                    "examples": [
                                      "Cancelled"
                                    ]
                                  },
                                  "markAsPaid": {
                                    "type": "boolean",
                                    "description": "flag, whether the order payment flag is set with this status.",
                                    "examples": [
                                      false
                                    ]
                                  }
                                }
                              }
                            },
                            "defaultStatus": {
                              "type": "integer",
                              "description": "default status of new orders.",
                              "examples": [
                                -1
                              ]
                            }
                          }
                        },
                        "paymentMethods": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "retail",
                            "wholesale",
                            "wholesaleActive"
                          ],
                          "properties": {
                            "retail": {
                              "type": "object",
                              "additionalProperties": false,
                              "required": [
                                "methods",
                                "defaultPayment"
                              ],
                              "properties": {
                                "methods": {
                                  "type": "array",
                                  "description": "list of available retail payment methods.",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "guid",
                                      "order",
                                      "name",
                                      "visible"
                                    ],
                                    "properties": {
                                      "guid": {
                                        "$ref": "#/components/schemas/typeGuid",
                                        "description": "payment method identifier"
                                      },
                                      "order": {
                                        "type": "integer",
                                        "description": "order of method as set in e-shop administration.",
                                        "examples": [
                                          1
                                        ]
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "payment method caption (customizable in administration)",
                                        "examples": [
                                          "Cash on delivery"
                                        ]
                                      },
                                      "visible": {
                                        "type": "boolean",
                                        "description": "flag, whether the payment method is offered to customers.",
                                        "examples": [
                                          true
                                        ]
                                      }
                                    }
                                  }
                                },
                                "defaultPayment": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "description": "default payment method",
                                  "examples": [
                                    "b57f91bb-e920-11e0-baa3-7dc668b75ca8"
                                  ]
                                }
                              }
                            },
                            "wholesale": {
                              "type": "object",
                              "additionalProperties": false,
                              "required": [
                                "methods",
                                "defaultPayment"
                              ],
                              "description": "available payment methods for wholesale",
                              "properties": {
                                "methods": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "guid",
                                      "order",
                                      "name",
                                      "visible"
                                    ],
                                    "properties": {
                                      "guid": {
                                        "$ref": "#/components/schemas/typeGuid",
                                        "description": "payment method identifier"
                                      },
                                      "order": {
                                        "type": "integer",
                                        "description": "order of method as set in e-shop administration.",
                                        "examples": [
                                          1
                                        ]
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "payment method caption (customizable in administration)",
                                        "examples": [
                                          "Cash on delivery"
                                        ]
                                      },
                                      "visible": {
                                        "type": "boolean",
                                        "description": "flag, whether the payment method is offered to customers.",
                                        "examples": [
                                          true
                                        ]
                                      }
                                    }
                                  }
                                },
                                "defaultPayment": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "description": "default payment method",
                                  "examples": [
                                    "b57f91bb-e920-11e0-baa3-7dc668b75ca8"
                                  ]
                                }
                              }
                            },
                            "wholesaleActive": {
                              "type": "boolean",
                              "description": "flag, whether wholesale payment methods are activated in administration",
                              "examples": [
                                true
                              ]
                            }
                          }
                        },
                        "shippingMethods": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "retail",
                            "wholesale",
                            "wholesaleActive"
                          ],
                          "description": "available transport options, must be requested using `include=shippingMethods`",
                          "properties": {
                            "retail": {
                              "type": "object",
                              "additionalProperties": false,
                              "required": [
                                "methods",
                                "defaultShipping"
                              ],
                              "properties": {
                                "methods": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "guid",
                                      "order",
                                      "name",
                                      "visible"
                                    ],
                                    "properties": {
                                      "guid": {
                                        "$ref": "#/components/schemas/typeGuid",
                                        "description": "shipping method identifier"
                                      },
                                      "order": {
                                        "type": "integer",
                                        "description": "order of method as set in e-shop administration.",
                                        "examples": [
                                          1
                                        ]
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "shipping method caption (customizable in administration)",
                                        "examples": [
                                          "Czech Post - in the post office"
                                        ]
                                      },
                                      "visible": {
                                        "type": "boolean",
                                        "description": "flag, whether the shipping method is offered to customers.",
                                        "examples": [
                                          true
                                        ]
                                      }
                                    }
                                  }
                                },
                                "defaultShipping": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "description": "default shipping method",
                                  "examples": [
                                    "b57f91bb-e920-11e0-baa3-7dc668b75ca8"
                                  ]
                                }
                              }
                            },
                            "wholesale": {
                              "type": "object",
                              "additionalProperties": false,
                              "required": [
                                "methods",
                                "defaultShipping"
                              ],
                              "properties": {
                                "methods": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "guid",
                                      "order",
                                      "name",
                                      "visible"
                                    ],
                                    "properties": {
                                      "guid": {
                                        "$ref": "#/components/schemas/typeGuid",
                                        "description": "shipping method identifier"
                                      },
                                      "order": {
                                        "type": "integer",
                                        "description": "order of method as set in e-shop administration.",
                                        "examples": [
                                          1
                                        ]
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "shipping method caption (customizable in administration)",
                                        "examples": [
                                          "Czech Post - in the post office"
                                        ]
                                      },
                                      "visible": {
                                        "type": "boolean",
                                        "description": "flag, whether the shipping method is offered to customers.",
                                        "examples": [
                                          true
                                        ]
                                      }
                                    }
                                  }
                                },
                                "defaultShipping": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "description": "default shipping method",
                                  "examples": [
                                    "b57f91bb-e920-11e0-baa3-7dc668b75ca8"
                                  ]
                                }
                              }
                            },
                            "wholesaleActive": {
                              "type": "boolean",
                              "description": "flag, whether wholesale shipping methods are activated in administration",
                              "examples": [
                                true
                              ]
                            }
                          }
                        },
                        "imageCuts": {
                          "type": "array",
                          "description": "the information on image cuts must be requested using `include=imageCuts`",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "name",
                              "width",
                              "height",
                              "urlPath",
                              "cdnPath"
                            ],
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "cut name",
                                "examples": [
                                  "big"
                                ]
                              },
                              "width": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "image width in given cut (`null` for original image - cuts `orig`)",
                                "examples": [
                                  1024
                                ]
                              },
                              "height": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "image height in given cut (`null` for original image - cuts `orig`)",
                                "examples": [
                                  768
                                ]
                              },
                              "urlPath": {
                                "type": "string",
                                "description": "URL path to images in given cut, including end slash",
                                "examples": [
                                  "https://classic.shoptet.cz/user/shop/big/"
                                ]
                              },
                              "cdnPath": {
                                "type": "string",
                                "description": "Cdn URL path to images in given cut, including end slash",
                                "examples": [
                                  "https://cdn-api.myshoptet.com/usr/classic.shoptet.cz/user/shop/big/"
                                ]
                              }
                            }
                          }
                        },
                        "languages": {
                          "type": "array",
                          "description": "Supported languages in eshop. Available only if module Foreign languages is active and initialized.",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "language code",
                                "examples": [
                                  "cs"
                                ]
                              },
                              "currencyCode": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "default currency of language",
                                "examples": [
                                  "CZK"
                                ]
                              },
                              "dateFormat": {
                                "type": "string",
                                "description": "date format for this language",
                                "examples": [
                                  "j.n.Y"
                                ]
                              },
                              "timeFormat": {
                                "type": "string",
                                "description": "time format for this language",
                                "examples": [
                                  "H:i"
                                ]
                              },
                              "isVisible": {
                                "type": "boolean",
                                "description": "whether language is selectable in e-shop",
                                "examples": [
                                  true
                                ]
                              },
                              "isDefault": {
                                "type": "boolean",
                                "description": "whether language is default",
                                "examples": [
                                  true
                                ]
                              },
                              "priority": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "ordering property",
                                "examples": [
                                  1
                                ]
                              }
                            }
                          }
                        },
                        "trial": {
                          "type": "boolean",
                          "description": "flag, whether the e-shop is in trial mode",
                          "examples": [
                            false
                          ]
                        },
                        "countries": {
                          "type": "array",
                          "description": "the information on countries must be requested using `include=countries`",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "countryCode",
                              "countryName",
                              "companyIdPattern",
                              "companyIdExample",
                              "zipCodePattern"
                            ],
                            "properties": {
                              "countryCode": {
                                "type": "string",
                                "description": "international 2-character country code",
                                "examples": [
                                  "CZ"
                                ]
                              },
                              "countryName": {
                                "type": "string",
                                "description": "country name",
                                "examples": [
                                  "Czech Republic"
                                ]
                              },
                              "companyIdPattern": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Validation pattern for company id",
                                "examples": [
                                  "^\\d{8}$"
                                ]
                              },
                              "companyIdExample": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Example of company id",
                                "examples": [
                                  "28935675"
                                ]
                              },
                              "zipCodePattern": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Validation pattern for zip code",
                                "examples": [
                                  "^[1-7]\\d{2}\\s*\\d{2}$"
                                ]
                              }
                            }
                          }
                        },
                        "cashDesk": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "defaultOrderStatusId"
                          ],
                          "description": "eshop cash desk configuration",
                          "properties": {
                            "defaultOrderStatusId": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "default status of order after cash desk payment",
                              "examples": [
                                -1
                              ]
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Eshop info",
        "operationId": "getEshopInfo",
        "description": "Information about queried e-shop (defined by token). Returns the contact data and e-shop settings.\n\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see\n[Section on demand](#section/basic-principles/section-on-demand).\n\n\nIf you state the `include=imageCuts` parameter within the URL, information about the image cut will also be part of the response. For more information\nabout the chapter [Product images](#section/Product-images).\n\n\n**Please note that languages section has meaning only if module foreign languages (Cizí jazyky) is enabled on current eshop. Otherwise you have to follow \"eshopLanguage\" attribute.**\n\nValue | Section\n--------|------\norderAdditionalFields | The order can contain up to six additional fields, which can be freely used by the e-shop for its individual needs. The field names can be defined in administration and this section returns their names.\norderStatuses | The order statuses, as defined for this e-shop.\npaymentMethods | Payment methods, as defined for this e-shop.\nshippingMethods | Transportation options, as defined for this e-shop.\nimageCuts | The information on image cuts (various sizes of the same image)\ncountries | Informations about eshop supported countries (name, validation atterns, ...)\ncashDesk | Informations about eshop cash desk configuration",
        "tags": [
          "Eshop"
        ],
        "parameters": [
          {
            "name": "include",
            "in": "query",
            "description": "Sections to include",
            "example": "orderAdditionalFields,orderStatuses,paymentMethods,shippingMethods,imageCuts,countries,cashDesk",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/eshop/design": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "template",
                        "layout",
                        "colorScheme",
                        "fonts",
                        "header",
                        "background"
                      ],
                      "properties": {
                        "template": {
                          "type": "object",
                          "additionalProperties": false,
                          "description": "e-shop template",
                          "required": [
                            "name",
                            "colorVariant"
                          ],
                          "properties": {
                            "name": {
                              "type": "string",
                              "description": "template name, enum value [swing, jazz, funk, pop, rock, soul, techno, echo, tango, waltz, classic, step, custom]",
                              "examples": [
                                "Tango"
                              ]
                            },
                            "colorVariant": {
                              "type": "string",
                              "description": "code for a specific color variant of a template",
                              "examples": [
                                "09-one"
                              ]
                            }
                          }
                        },
                        "layout": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "homepage",
                            "subPage",
                            "productDetail"
                          ],
                          "description": "page layout",
                          "properties": {
                            "homepage": {
                              "type": "string",
                              "enum": [
                                "list",
                                "listImage",
                                "catalog2",
                                "catalog3",
                                "catalog4"
                              ],
                              "description": "product detail, enum value [list, listImage, catalog2, catalog3, catalog4]",
                              "examples": [
                                "list"
                              ]
                            },
                            "subPage": {
                              "type": "string",
                              "enum": [
                                "list",
                                "listImage",
                                "catalog2",
                                "catalog3",
                                "catalog4"
                              ],
                              "description": "subpage, enum value [list, listImage, catalog2, catalog3, catalog4]",
                              "examples": [
                                "list"
                              ]
                            },
                            "productDetail": {
                              "type": "string",
                              "enum": [
                                "list",
                                "listImage",
                                "catalog2",
                                "catalog3",
                                "catalog4"
                              ],
                              "description": "product detail, enum value [list, listImage, catalog2, catalog3, catalog4]",
                              "examples": [
                                "list"
                              ]
                            }
                          }
                        },
                        "colorScheme": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "conversionColor",
                            "conversionColorHover",
                            "color1",
                            "color2",
                            "color3",
                            "color4"
                          ],
                          "properties": {
                            "conversionColor": {
                              "type": "string",
                              "description": "conversion color",
                              "examples": [
                                "#ff0000"
                              ]
                            },
                            "conversionColorHover": {
                              "type": "string",
                              "description": "conversion color upon cursor hovering",
                              "examples": [
                                "#000000"
                              ]
                            },
                            "color1": {
                              "type": "string",
                              "description": "primary color of e-shop",
                              "examples": [
                                "#ff0000"
                              ]
                            },
                            "color2": {
                              "type": "string",
                              "description": "primary color upon cursor hovering",
                              "examples": [
                                "#000000"
                              ]
                            },
                            "color3": {
                              "type": "string",
                              "description": "secondary e-shop color (can be `null` - not for all templates)",
                              "examples": [
                                "#ff0000"
                              ]
                            },
                            "color4": {
                              "type": "string",
                              "description": "secondary e-shop color upon cursor hovering (can be `null` - not for all templates)",
                              "examples": [
                                "#000000"
                              ]
                            }
                          }
                        },
                        "fonts": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "heading",
                            "text"
                          ],
                          "properties": {
                            "heading": {
                              "type": "string",
                              "examples": [
                                "Open Sans"
                              ]
                            },
                            "text": {
                              "type": "string",
                              "examples": [
                                "Open Sans"
                              ]
                            }
                          }
                        },
                        "header": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "backgroundImage",
                            "image",
                            "logo",
                            "color"
                          ],
                          "properties": {
                            "backgroundImage": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "background image (can be `null`)'",
                              "examples": [
                                "https://dummy.myshoptet.com/cms/img/blank.gif"
                              ]
                            },
                            "image": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "header image (can be `null`)",
                              "examples": [
                                "https://dummy.myshoptet.com/user/front_images/front.jpg"
                              ]
                            },
                            "logo": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "e-shop logo in header (can be `null`)",
                              "examples": [
                                "https://dummy.myshoptet.com/user/logos/shoptet-logo.png"
                              ]
                            },
                            "color": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Header background color for templates Techno, Tango, Classic, Step and Disco (can be `null`)",
                              "examples": [
                                "#000000"
                              ]
                            }
                          }
                        },
                        "background": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "enabled",
                            "color",
                            "image"
                          ],
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "flag, whether background is enabled",
                              "examples": [
                                true
                              ]
                            },
                            "color": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "additionalProperties": false,
                              "required": [
                                "enabled",
                                "color"
                              ],
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "flag, whether the background color is on",
                                  "examples": [
                                    false
                                  ]
                                },
                                "color": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "description": "background color (can be `null`)",
                                  "examples": [
                                    "#000000"
                                  ]
                                }
                              }
                            },
                            "image": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "additionalProperties": false,
                              "required": [
                                "url",
                                "attachment",
                                "position"
                              ],
                              "properties": {
                                "url": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "description": "background image URL (can be `null`)",
                                  "examples": [
                                    "https://dummy.myshoptet.com/user/bg-image.jpg"
                                  ]
                                },
                                "attachment": {
                                  "type": "string",
                                  "enum": [
                                    "scroll",
                                    "fixed"
                                  ],
                                  "description": "mounting, enum value [scroll, fixed]",
                                  "examples": [
                                    "scroll"
                                  ]
                                },
                                "position": {
                                  "type": "string",
                                  "enum": [
                                    "center",
                                    "tile"
                                  ],
                                  "description": "location, enum value [center, tile]",
                                  "examples": [
                                    "center"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "E-shop design",
        "operationId": "getEshopDesign",
        "description": "Information about queried e-shop template setting (defined by token).         \n`backgroundImage` value can internally contain the link to a transparent       \nreference gif, in this case the API returns a NULL value.",
        "tags": [
          "Eshop"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/eshop/document-settings": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "order",
                        "defaultSettings",
                        "logoUrl",
                        "companyStamp"
                      ],
                      "properties": {
                        "order": {
                          "additionalProperties": false,
                          "type": "object",
                          "required": [
                            "codePrefix",
                            "codeLength",
                            "isCodeRandom",
                            "numberSeriesStartFrom"
                          ],
                          "properties": {
                            "codePrefix": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Prefix of order `code`. Typically the current year is used as a prefix.",
                              "examples": [
                                "2025"
                              ]
                            },
                            "codeLength": {
                              "type": "integer",
                              "description": "Total length of order `code`, including prefix.",
                              "examples": [
                                10
                              ]
                            },
                            "isCodeRandom": {
                              "type": "boolean",
                              "description": "If `true`, order code is generated randomly - can be used to keep your count of orders unknown.",
                              "examples": [
                                true
                              ]
                            },
                            "numberSeriesStartFrom": {
                              "type": "integer",
                              "description": "Applicable if `isCodeRandom` is `false`, e.g., if `codePrefix` is set to `2025`, `codeLength` is `10`, and `numberSeriesStartFrom` is `1`, first order `code` will look like `2025000001`.",
                              "examples": [
                                1
                              ]
                            },
                            "syncDocuments": {
                              "type": "boolean",
                              "description": "E.g., if the order will be canceled, all related documents will be canceled as well. Available only if module `nav` is not active.",
                              "examples": [
                                true
                              ]
                            },
                            "printItemRemark": {
                              "type": "boolean",
                              "description": "If `true`, parameters from `order.itemRemarkParameters` will be displayed on the order. Available only if module `invoicing` is active.",
                              "examples": [
                                true
                              ]
                            },
                            "displayProductStockLocation": {
                              "type": "boolean",
                              "description": "If `true`, the product's warehouse position will be displayed in the order printout. Available only if module `stock` and `invoicing` is active.",
                              "examples": [
                                true
                              ]
                            },
                            "itemRemarkParameters": {
                              "type": "array",
                              "description": "Item remark parameters. Available only if module `invoicing` is active.",
                              "examples": [
                                [
                                  "parameter"
                                ],
                                [
                                  "first parameter",
                                  "second parameter"
                                ]
                              ],
                              "items": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "proformaInvoice": {
                          "additionalProperties": false,
                          "type": [
                            "object"
                          ],
                          "required": [
                            "codePrefix",
                            "codeLength",
                            "numberSeriesStartFrom",
                            "useVariableSymbolFromOrder",
                            "printItemRemark",
                            "addNotesFromOrder",
                            "percentageValueForPartialPayment"
                          ],
                          "description": "Available only if module `invoicing` is active.",
                          "properties": {
                            "codePrefix": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Prefix of proforma invoice `code`. Typically the current year is used as a prefix.",
                              "examples": [
                                "2025"
                              ]
                            },
                            "codeLength": {
                              "type": "integer",
                              "description": "Total length of proforma invoice `code`, including prefix.",
                              "examples": [
                                10
                              ]
                            },
                            "numberSeriesStartFrom": {
                              "type": "integer",
                              "description": "E.g., if `codePrefix` is set to `2025`, `codeLength` is `10`, and `numberSeriesStartFrom` is `1`, first proforma invoice `code` will look like `2025000001`.",
                              "examples": [
                                1
                              ]
                            },
                            "unifyCodeWithOrder": {
                              "type": "boolean",
                              "description": "Proforma invoice will have the identical number as the order. VS will be the same in the order and invoice. Available only if module `nav` is not active.",
                              "examples": [
                                true
                              ]
                            },
                            "useVariableSymbolFromOrder": {
                              "type": "boolean",
                              "description": "The variable symbol from the order will be used in the proforma invoice.",
                              "examples": [
                                true
                              ]
                            },
                            "printItemRemark": {
                              "type": "boolean",
                              "description": "If `true`, parameters from `order.itemRemarkParameters` will be displayed on the proforma invoice.",
                              "examples": [
                                true
                              ]
                            },
                            "addNotesFromOrder": {
                              "type": "boolean",
                              "description": "If `true` and `order.syncDocuments` enabled, note from order will be added to proforma invoice.",
                              "examples": [
                                true
                              ]
                            },
                            "percentageValueForPartialPayment": {
                              "$ref": "#/components/schemas/typePrice",
                              "description": "The specified percentage value for partial payment must not be less than the order value or 1 %, and must not exceed the order value or 100 %."
                            }
                          }
                        },
                        "invoice": {
                          "additionalProperties": false,
                          "type": [
                            "object"
                          ],
                          "required": [
                            "codePrefix",
                            "codeLength",
                            "numberSeriesStartFrom",
                            "useVariableSymbolFromOrder",
                            "useSpecialNumberSerieForCashdesk",
                            "displayWarranty",
                            "printItemRemark",
                            "addEanToItemRemark",
                            "addNotesFromOrder"
                          ],
                          "description": "Available only if module `invoicing` is active.",
                          "properties": {
                            "codePrefix": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Prefix of invoice `code`. Typically the current year is used as a prefix.",
                              "examples": [
                                "2025"
                              ]
                            },
                            "codeLength": {
                              "type": "integer",
                              "description": "Total length of invoice `code`, including prefix.",
                              "examples": [
                                10
                              ]
                            },
                            "numberSeriesStartFrom": {
                              "type": "integer",
                              "description": "E.g., if `codePrefix` is set to `2025`, `codeLength` is `10`, and `numberSeriesStartFrom` is `1`, first invoice `code` will look like `2025000001`.",
                              "examples": [
                                1
                              ]
                            },
                            "unifyCodeWithOrder": {
                              "type": "boolean",
                              "description": "Invoice will have the identical number as the order. VS will be the same in the order and invoice. Available only if module `nav` is not active.",
                              "examples": [
                                true
                              ]
                            },
                            "useVariableSymbolFromOrder": {
                              "type": "boolean",
                              "description": "The variable symbol from the order will be used in the invoice.",
                              "examples": [
                                true
                              ]
                            },
                            "useSpecialNumberSerieForCashdesk": {
                              "type": "boolean",
                              "description": "If `true`, special number serie will be used for invoices created via cashdesk using fields `cashdeskCodePrefix`, `cashdeskCodeLength`, and `cashdeskNumberSeriesStartFrom`.",
                              "examples": [
                                true
                              ]
                            },
                            "cashdeskCodePrefix": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Prefix of invoice `code` generated via cashdesk. Typically the current year is used as a prefix.",
                              "examples": [
                                "C-2025"
                              ]
                            },
                            "cashdeskCodeLength": {
                              "type": "integer",
                              "description": "Total length of invoice `code` generated via cashdesk, including prefix.",
                              "examples": [
                                10
                              ]
                            },
                            "cashdeskNumberSeriesStartFrom": {
                              "type": "integer",
                              "description": "E.g., if `codePrefix` is set to `2025`, `codeLength` is `10`, and `numberSeriesStartFrom` is `1`, first invoice `code` generated via cashdesk will look like `C-20250001`.",
                              "examples": [
                                1
                              ]
                            },
                            "displayWarranty": {
                              "type": "boolean",
                              "description": "If `true`, warranty will be displayed on invoice.",
                              "examples": [
                                true
                              ]
                            },
                            "printItemRemark": {
                              "type": "boolean",
                              "description": "If `true`, parameters from `order.itemRemarkParameters` will be displayed on the proforma invoice."
                            },
                            "addEanToItemRemark": {
                              "type": "boolean",
                              "description": "If `true` and `invoice.printItemRemark` enabled, the EAN of the product will be displayed in the note next to the item.",
                              "examples": [
                                true
                              ]
                            },
                            "addNotesFromOrder": {
                              "type": "boolean",
                              "description": "If `true` and `order.syncDocuments` enabled, note from order will be added to invoice.",
                              "examples": [
                                true
                              ]
                            },
                            "displayDoNotPay": {
                              "type": "boolean",
                              "description": "If `true`, display do not pay on paid invoice.",
                              "examples": [
                                true
                              ]
                            },
                            "displayPriceWithoutDiscount": {
                              "type": "boolean",
                              "description": "If `true`, price before applying discount will be displayed on invoice.",
                              "examples": [
                                true
                              ]
                            },
                            "displayTaxableSupplyDate": {
                              "type": "boolean",
                              "description": "If `true`, the tax date (DUZP – Date of taxable supply) will be displayed on the invoice.",
                              "examples": [
                                true
                              ]
                            }
                          }
                        },
                        "creditNote": {
                          "additionalProperties": false,
                          "type": [
                            "object"
                          ],
                          "required": [
                            "codePrefix",
                            "codeLength",
                            "numberSeriesStartFrom",
                            "displayCorrectedAndOriginalDocumentDiff",
                            "printItemRemark",
                            "defaultReasonRemark",
                            "restock",
                            "forbiddenItemTypes"
                          ],
                          "description": "Available only if module `invoicing` is active.",
                          "properties": {
                            "codePrefix": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Prefix of credit note `code`. Typically the current year is used as a prefix.",
                              "examples": [
                                "2025"
                              ]
                            },
                            "codeLength": {
                              "type": "integer",
                              "description": "Total length of credit note `code`, including prefix.",
                              "examples": [
                                10
                              ]
                            },
                            "numberSeriesStartFrom": {
                              "type": "integer",
                              "description": "E.g., if `codePrefix` is set to `2025`, `codeLength` is `10`, and `numberSeriesStartFrom` is `1`, first credit note `code` will look like `2025000001`.",
                              "examples": [
                                1
                              ]
                            },
                            "unifyCodeWithOrder": {
                              "type": "boolean",
                              "description": "Credit note will have the identical number as the order. VS will be the same in the order and invoice. Available only if module `nav` is not active.",
                              "examples": [
                                true
                              ]
                            },
                            "displayCorrectedAndOriginalDocumentDiff": {
                              "type": "boolean",
                              "description": "If `true`, the difference between the corrected and original tax base, tax and original amount will be shown on the credit note.",
                              "examples": [
                                true
                              ]
                            },
                            "printItemRemark": {
                              "type": "boolean",
                              "description": "If `true`, parameters from `order.itemRemarkParameters` will be displayed on the credit note.",
                              "examples": [
                                true
                              ]
                            },
                            "defaultReasonRemark": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "This reason will be displayed on credit notes by default. For individual credit notes you can change it via the credit note detail.",
                              "examples": [
                                "Order cancellation"
                              ]
                            },
                            "restock": {
                              "type": "boolean",
                              "description": "If `true`, the items from the order will be automatically restocked.",
                              "examples": [
                                true
                              ]
                            },
                            "addNotesFromOrder": {
                              "type": "boolean",
                              "description": "If `true` and `order.syncDocuments` enabled, note from order will be added to invoice.",
                              "examples": [
                                true
                              ]
                            },
                            "forbiddenItemTypes": {
                              "type": "array",
                              "description": "Items that will not be automatically added into the credit note. You can add them additionally. Available types: `shipping`, `billing`, and `gift`.",
                              "examples": [
                                [
                                  "shipping"
                                ],
                                [
                                  "shipping",
                                  "billing",
                                  "gift"
                                ]
                              ],
                              "items": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "deliveryNote": {
                          "additionalProperties": false,
                          "type": [
                            "object"
                          ],
                          "required": [
                            "codePrefix",
                            "codeLength",
                            "numberSeriesStartFrom",
                            "printItemRemark"
                          ],
                          "description": "Available only if module `invoicing` is active.",
                          "properties": {
                            "codePrefix": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Prefix of delivery note `code`. Typically the current year is used as a prefix.",
                              "examples": [
                                "2025"
                              ]
                            },
                            "codeLength": {
                              "type": "integer",
                              "description": "Total length of delivery note `code`, including prefix.",
                              "examples": [
                                10
                              ]
                            },
                            "numberSeriesStartFrom": {
                              "type": "integer",
                              "description": "E.g., if `codePrefix` is set to `2025`, `codeLength` is `10`, and `numberSeriesStartFrom` is `1`, first delivery note `code` will look like `2025000001`.",
                              "examples": [
                                1
                              ]
                            },
                            "unifyCodeWithOrder": {
                              "type": "boolean",
                              "description": "Delivery note will have the identical number as the order. VS will be the same in the order and invoice. Available only if module `nav` is not active.",
                              "examples": [
                                true
                              ]
                            },
                            "printItemRemark": {
                              "type": "boolean",
                              "description": "If `true`, parameters from `order.itemRemarkParameters` will be displayed on the delivery note.",
                              "examples": [
                                true
                              ]
                            }
                          }
                        },
                        "proofPayment": {
                          "additionalProperties": false,
                          "type": [
                            "object"
                          ],
                          "required": [
                            "useSequentionalNumberSerie",
                            "createByIncomingPayment"
                          ],
                          "description": "Available only if module `invoicing` is active.",
                          "properties": {
                            "useSequentionalNumberSerie": {
                              "type": "boolean",
                              "description": "If `true`, sequentional number serie will be used, accepting fields `codePrefix`, `codeLength`, and `numberSeriesStartFrom`. Otherwise number serie is generated by linked document with prefix `codePrefixOrder`, or `codePrefixProformaInvoice`.",
                              "examples": [
                                true
                              ]
                            },
                            "codePrefix": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Prefix of proof payment `code`. Typically the current year is used as a prefix. Available only if `useSequentionalNumberSerie` is `true`.",
                              "examples": [
                                "2025"
                              ]
                            },
                            "codeLength": {
                              "type": "integer",
                              "description": "Total length of proof payment `code`, including prefix. Available only if `useSequentionalNumberSerie` is `true`.",
                              "examples": [
                                10
                              ]
                            },
                            "numberSeriesStartFrom": {
                              "type": "integer",
                              "description": "E.g., if `codePrefix` is set to `2025`, `codeLength` is `10`, and `numberSeriesStartFrom` is `1`, first proof payment `code` will look like `2025000001`. Available only if `useSequentionalNumberSerie` is `true`.",
                              "examples": [
                                1
                              ]
                            },
                            "codePrefixOrder": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Prefix of proof payment `code` if created from order. Available only if `useSequentionalNumberSerie` is `false`, i.e. number serie is generated by linked document.",
                              "examples": [
                                "O-"
                              ]
                            },
                            "codePrefixProformaInvoice": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Prefix of proof payment `code` if created from proforma invoice. Available only if `useSequentionalNumberSerie` is `false`, i.e. number serie is generated by linked document.",
                              "examples": [
                                "P-"
                              ]
                            },
                            "createByIncomingPayment": {
                              "type": "boolean",
                              "description": "If `true`, a receipt will automatically be issued when payment is received. Note, if enabled, issuance of receipts upon order status change is deactivated, as it is not possible to use both methods simultaneously.",
                              "examples": [
                                true
                              ]
                            }
                          }
                        },
                        "export": {
                          "additionalProperties": false,
                          "type": [
                            "object"
                          ],
                          "required": [
                            "useIsdocModule",
                            "erpMoneyS3PreAccounting",
                            "erpMoneyS3Account"
                          ],
                          "description": "Available only if module `invoicing` is active.",
                          "properties": {
                            "useIsdocModule": {
                              "type": "boolean",
                              "description": "If `true`, `isdoc` module is active.",
                              "examples": [
                                true
                              ]
                            },
                            "erpMoneyS3PreAccounting": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Prefix of proof payment `code`. Typically the current year is used as a prefix. Available only if `useSequentionalNumberSerie` is `true`.",
                              "examples": [
                                "2025"
                              ]
                            },
                            "erpMoneyS3Account": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Prefix of proof payment `code` if created from order. Available only if `useSequentionalNumberSerie` is `false`, i.e. number serie is generated by linked document.",
                              "examples": [
                                "123456789/1234"
                              ]
                            }
                          }
                        },
                        "defaultSettings": {
                          "additionalProperties": false,
                          "type": [
                            "object"
                          ],
                          "required": [
                            "billingMethodId"
                          ],
                          "description": "Will be applied to all documents if in document detail won't be set otherwise.",
                          "properties": {
                            "billingMethodId": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Default billing method identifier.",
                              "examples": [
                                1
                              ]
                            },
                            "constSymbol": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Default constant symbol. Available only if module `invoicing` is active.",
                              "examples": [
                                "3558"
                              ]
                            },
                            "specSymbol": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Default specific symbol. Available only if module `invoicing` is active.",
                              "examples": [
                                "2025042200001"
                              ]
                            },
                            "maturity": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Default maturity. Available only if module `invoicing` is active.",
                              "examples": [
                                "14"
                              ]
                            },
                            "invoiceRemark": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Custom note displayed on each invoice. Available only if module `invoicing` is active.",
                              "examples": [
                                "Custom invoice note"
                              ]
                            },
                            "proformaInvoiceRemark": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Custom note displayed on each proforma invoice. Available only if module `invoicing` is active.",
                              "examples": [
                                "Custom proforma invoice note"
                              ]
                            },
                            "showQrCode": {
                              "type": "boolean",
                              "description": "If `true`, it will display QR code to pay by bank transfer. Available only if module `invoicing` is active.",
                              "examples": [
                                true
                              ]
                            },
                            "sortItems": {
                              "type": "string",
                              "description": "Determines how items are sorted in documents, printout, and inventory. Available only if module `invoicing` is active.",
                              "examples": [
                                "byProductName"
                              ]
                            },
                            "showBarcode": {
                              "type": "boolean",
                              "description": "If `true`, it will display barcode on all documents. Available only if module `invoicing` is active.",
                              "examples": [
                                true
                              ]
                            },
                            "showBillFullName": {
                              "type": "boolean",
                              "description": "If `true`, the name of the supplier's contact person will be shown on the issued documents. Available only if module `invoicing` is active.",
                              "examples": [
                                true
                              ]
                            },
                            "showBillFullNameOfRecipient": {
                              "type": "boolean",
                              "description": "If `true`, the name of the recipient's contact person will be shown on the issued documents. Available only if module `invoicing` is active.",
                              "examples": [
                                true
                              ]
                            }
                          }
                        },
                        "logoUrl": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Logo URL.",
                          "example": [
                            "https://example.com/logo.png"
                          ]
                        },
                        "companyStamp": {
                          "additionalProperties": false,
                          "type": [
                            "object"
                          ],
                          "required": [
                            "stampUrl",
                            "xAxisCorrection",
                            "yAxisCorrection"
                          ],
                          "description": "Company stamp of documents.",
                          "properties": {
                            "xAxisCorrection": {
                              "type": "integer",
                              "description": "How many pixel should be logo shifted to the right on X axis.",
                              "examples": [
                                "0"
                              ]
                            },
                            "yAxisCorrection": {
                              "type": "integer",
                              "description": "How many pixel should be logo shifted to the right on Y axis.",
                              "examples": [
                                "0"
                              ]
                            },
                            "stampUrl": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Company stamp URL.",
                              "example": [
                                "https://example.com/stamp.png"
                              ]
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "E-shop document settings",
        "operationId": "getEshopDocumentSettings",
        "description": "Information about financial documents settings.",
        "tags": [
          "Eshop"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/eshop/customer-fields": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "billingAddress",
                        "deliveryAddress",
                        "billingInfo",
                        "contactInfo"
                      ],
                      "properties": {
                        "billingAddress": {
                          "type": "object",
                          "additionalProperties": false,
                          "description": "invoicing address",
                          "required": [
                            "company",
                            "fullName",
                            "street",
                            "houseNumber",
                            "city",
                            "district",
                            "zip",
                            "countryCode"
                          ],
                          "properties": {
                            "company": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "company name, enum [`required`, `optional`, `hidden`]"
                            },
                            "fullName": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "full name, enum [`required`, `optional`, `hidden`]"
                            },
                            "street": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "street, enum [`required`, `optional`, `hidden`]"
                            },
                            "houseNumber": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "house number, enum [`required`, `optional`, `hidden`]"
                            },
                            "city": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "city/town, enum [`required`, `optional`, `hidden`]"
                            },
                            "district": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "county, enum [`required`, `optional`, `hidden`]"
                            },
                            "zip": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "zip code, enum [`required`, `optional`, `hidden`]"
                            },
                            "countryCode": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "country, enum [`required`, `optional`, `hidden`]"
                            }
                          }
                        },
                        "deliveryAddress": {
                          "type": "object",
                          "additionalProperties": false,
                          "description": "delivery address",
                          "required": [
                            "company",
                            "fullName",
                            "street",
                            "houseNumber",
                            "city",
                            "district",
                            "zip",
                            "countryCode"
                          ],
                          "properties": {
                            "company": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "company name, enum [`required`, `optional`, `hidden`]"
                            },
                            "fullName": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "full name, enum [`required`, `optional`, `hidden`]"
                            },
                            "street": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "street, enum [`required`, `optional`, `hidden`]"
                            },
                            "houseNumber": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "house number, enum [`required`, `optional`, `hidden`]"
                            },
                            "city": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "city/town, enum [`required`, `optional`, `hidden`]"
                            },
                            "district": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "county, enum [`required`, `optional`, `hidden`]"
                            },
                            "zip": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "zip code, enum [`required`, `optional`, `hidden`]"
                            },
                            "countryCode": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "country, enum [`required`, `optional`, `hidden`]"
                            }
                          }
                        },
                        "billingInfo": {
                          "type": "object",
                          "additionalProperties": false,
                          "description": "company data",
                          "required": [
                            "companyId",
                            "taxId"
                          ],
                          "properties": {
                            "companyId": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "company registration number, enum [`required`, `optional`, `hidden`]"
                            },
                            "taxId": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "VAT number, enum [`required`, `optional`, `hidden`]"
                            }
                          }
                        },
                        "contactInfo": {
                          "type": "object",
                          "additionalProperties": false,
                          "description": "contact information",
                          "required": [
                            "phone",
                            "email",
                            "birthday"
                          ],
                          "properties": {
                            "phone": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "phone number, enum [`required`, `optional`, `hidden`]"
                            },
                            "email": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "email address, enum [`required`, `optional`, `hidden`]"
                            },
                            "birthday": {
                              "$ref": "#/components/schemas/typeCustomerFieldValue",
                              "description": "birth date, enum [`required`, `optional`, `hidden`]"
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "E-shop mandatory fields",
        "operationId": "getEshopMandatoryFields",
        "description": "Information about queried e-shop mandatory fields setting (defined by token). \nReturns the values, which are set by e-shop administrator in \nSettings -> Customers -> Mandatory fields.",
        "tags": [
          "Eshop"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/eshop/reviews": {
      "get": {
        "deprecated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "reviews",
                        "paginator"
                      ],
                      "properties": {
                        "reviews": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "date",
                              "orderCode",
                              "rating",
                              "description",
                              "fullName",
                              "email",
                              "customerGuid",
                              "visible",
                              "reaction"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Review id.",
                                "examples": [
                                  1
                                ]
                              },
                              "date": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "Review creation date."
                              },
                              "orderCode": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Order code related to review. Can be null.",
                                "examples": [
                                  "2011000002"
                                ]
                              },
                              "rating": {
                                "type": "integer",
                                "description": "Number from 1 to 5 representing starts of review's rating.",
                                "examples": [
                                  5
                                ]
                              },
                              "description": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "examples": [
                                  "Snack was very good"
                                ]
                              },
                              "fullName": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Fullname of review's author. Can be null.",
                                "examples": [
                                  "John Doe"
                                ]
                              },
                              "email": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Email of the review author. If it's a registered customer and the review email is empty, it's filled with the customer's main account email. Can be null.",
                                "examples": [
                                  "johndoe@email.tld"
                                ]
                              },
                              "customerGuid": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Customer guid related to review. Can be null.",
                                "examples": [
                                  "443cad54-73bc-11e8-8216-002590dad85e"
                                ]
                              },
                              "visible": {
                                "type": "boolean",
                                "description": "flag, whether the review is visible",
                                "examples": [
                                  false
                                ]
                              },
                              "reaction": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "reactionCreated",
                                  "reactionFullName",
                                  "reactionEmail",
                                  "reactionText"
                                ],
                                "properties": {
                                  "reactionCreated": {
                                    "$ref": "#/components/schemas/typeDateTimeNullable",
                                    "description": "Date of creation of reaction. Can be null."
                                  },
                                  "reactionFullName": {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "examples": [
                                      "John Doe"
                                    ]
                                  },
                                  "reactionEmail": {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "examples": [
                                      "johndoe@email.tld"
                                    ]
                                  },
                                  "reactionText": {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "examples": [
                                      "Thank you for your review!"
                                    ]
                                  }
                                }
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Method requires active rating module in eshop.",
                      "instance": "rating"
                    },
                    {
                      "errorCode": "rating-not-enabled",
                      "message": "The e-shop must have store ratings enabled. They are currently disabled.",
                      "instance": "settings"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "List of eshop reviews",
        "operationId": "getListOfEshopReviewsDeprecated",
        "description": "Returns a list of the e-shop's reviews. This endpoint is available only when the 'Rating' module is active. Also, the e-shop must have store ratings enabled in the administration settings.\nThe endpoint supports [Paging](#section/basic-principles/paging).",
        "tags": [
          "Reviews"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultItemsPerPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/online-stores": {
      "get": {
        "deprecated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "onlineStores"
                      ],
                      "properties": {
                        "onlineStores": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "status",
                              "timezone",
                              "isPasswordProtected",
                              "isPrimary"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Online store identifier.",
                                "examples": [
                                  1
                                ]
                              },
                              "status": {
                                "type": "string",
                                "description": "Online store status",
                                "enum": [
                                  "active",
                                  "pending"
                                ],
                                "examples": [
                                  "active"
                                ]
                              },
                              "domain": {
                                "type": [
                                  "string"
                                ],
                                "description": "Online store domain.",
                                "examples": [
                                  "store.example.com"
                                ]
                              },
                              "timezone": {
                                "type": "string",
                                "description": "Timezone of online store.",
                                "examples": [
                                  "Europe/Prague"
                                ]
                              },
                              "defaultCountry": {
                                "$ref": "#/components/schemas/onlineStoreCountry",
                                "description": "Default country of online store."
                              },
                              "isPasswordProtected": {
                                "type": "boolean",
                                "description": "Whether the online store is protected by password.",
                                "examples": [
                                  false
                                ]
                              },
                              "isPrimary": {
                                "type": "boolean",
                                "description": "Whether the online store is primary.",
                                "examples": [
                                  true
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Module \"Multishop\" is not active.",
                      "instance": "multishop"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "List of online stores",
        "operationId": "getListOfOnlineStores",
        "description": "This endpoint is deprecated. \nUse the sales channels endpoint (/api/sales-channels) instead.\n\nList of online stores.\n",
        "tags": [
          "Online stores"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/online-stores/{id}": {
      "get": {
        "deprecated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "onlineStore"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "onlineStore": {
                          "$ref": "#/components/schemas/onlineStore"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Module \"Multishop\" is not active.",
                      "instance": "multishop"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "example": {
                    "data": null,
                    "errors": [
                      {
                        "errorCode": "online-store-not-found",
                        "message": "Online store with id \"1\" not found.",
                        "instance": "1"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "summary": "Online store detail",
        "operationId": "getOnlineStoreDetail",
        "description": "This endpoint is deprecated. \nUse the general sales channels endpoint (/api/sales-channels/{guid}) instead.\n\nInformation about the detail of the online store. This endpoint is available only when the 'Multishop' module is active.\n",
        "tags": [
          "Online stores"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Online store ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "products",
                        "paginator"
                      ],
                      "properties": {
                        "products": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "guid",
                              "name",
                              "type",
                              "url",
                              "visibility",
                              "brand",
                              "defaultCategory",
                              "creationTime",
                              "changeTime",
                              "supplier"
                            ],
                            "properties": {
                              "guid": {
                                "$ref": "#/components/schemas/typeGuidUnlimited",
                                "description": "unique product indicator"
                              },
                              "name": {
                                "type": "string",
                                "description": "product name",
                                "examples": [
                                  "Pelle 1978"
                                ]
                              },
                              "type": {
                                "type": "string",
                                "description": "product type (`product`, `bazar`...) - see also [Product types](#section/code-lists/product-types) code list",
                                "examples": [
                                  "product"
                                ]
                              },
                              "url": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "examples": [
                                  "https://www.your-eshop.cz/pelle-1978"
                                ]
                              },
                              "visibility": {
                                "type": "string",
                                "description": "visibility of product (`normal`, `hidden` ...) - see also [Product visibility](#section/code-lists/product-visibility) code list",
                                "examples": [
                                  "normal"
                                ]
                              },
                              "creationTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time of product creation (date in ISO 8601 format)"
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time of last product change (date in ISO 8601 format)"
                              },
                              "brand": {
                                "oneOf": [
                                  {
                                    "$ref": "#/components/schemas/brandNamed"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "description": "product brand (or manufacturer, possibly)"
                              },
                              "supplier": {
                                "oneOf": [
                                  {
                                    "$ref": "#/components/schemas/supplier"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "description": "product supplier"
                              },
                              "defaultCategory": {
                                "type": "object",
                                "additionalProperties": false,
                                "description": "default product category",
                                "required": [
                                  "guid",
                                  "name",
                                  "visible"
                                ],
                                "properties": {
                                  "guid": {
                                    "$ref": "#/components/schemas/typeGuidNullable",
                                    "description": "category unique identifier (can be `null`)"
                                  },
                                  "name": {
                                    "type": [
                                      "string",
                                      "null"
                                    ],
                                    "description": "category description",
                                    "examples": [
                                      "Watches"
                                    ]
                                  },
                                  "visible": {
                                    "type": [
                                      "boolean",
                                      "null"
                                    ],
                                    "description": "whether the parameter is visible",
                                    "examples": [
                                      true
                                    ]
                                  }
                                }
                              },
                              "mainImage": {
                                "type": [
                                  "object",
                                  "null"
                                ],
                                "additionalProperties": false,
                                "required": [
                                  "name",
                                  "seoName",
                                  "cdnName",
                                  "priority",
                                  "description",
                                  "changeTime"
                                ],
                                "description": "image information (filled in only on request. if `include=images` parameter is defined)",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "description": "image file name, also serves as an identifier for the image of the product. To assemble complete URL, it is added to the `urlPath` obtained from the endpoint e-shop info `/api/eshop?include=imageCuts`.",
                                    "examples": [
                                      "100.jpg"
                                    ]
                                  },
                                  "seoName": {
                                    "type": "string",
                                    "description": "file name modified for SEO - a short label is attached.",
                                    "examples": [
                                      "100_purple-apple.jpg"
                                    ]
                                  },
                                  "cdnName": {
                                    "type": "string",
                                    "description": "same as `seoName` with attached hashed last image change time.",
                                    "examples": [
                                      "100_purple-apple.jpg?59393c3a"
                                    ]
                                  },
                                  "priority": {
                                    "type": "integer",
                                    "description": "the key for the sequence of images matching the sequence in administration - it's not necessarily from the first, and the series may contain gaps.",
                                    "examples": [
                                      1
                                    ]
                                  },
                                  "description": {
                                    "type": [
                                      "string",
                                      "null"
                                    ],
                                    "description": "image label",
                                    "examples": [
                                      "Fresh purple apple for Snow White"
                                    ]
                                  },
                                  "changeTime": {
                                    "$ref": "#/components/schemas/typeDateTimeNullable",
                                    "description": "last image change time If you are saving images together, you can use this timestamp to indicate if you need to reload the image."
                                  }
                                }
                              },
                              "voteAverageScore": {
                                "$ref": "#/components/schemas/typeAmountNullable",
                                "description": "Average score of product reviews",
                                "examples": [
                                  2.6
                                ]
                              },
                              "voteCount": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "Count of product reviews",
                                "examples": [
                                  16
                                ]
                              },
                              "preauthorizationRequired": {
                                "type": "boolean",
                                "description": "whether the preauthorization is required; available only if shoptet pay module is enabled",
                                "examples": [
                                  true
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-parameter",
                      "message": "Invalid \"productCodes\" parameter. Expected max. 50 elements, but 55 given.",
                      "instance": "productCodes"
                    },
                    {
                      "errorCode": "invalid-parameter",
                      "message": "Invalid \"productGuids\" parameter. Expected max. 50 elements, but 55 given.",
                      "instance": "productGuids"
                    },
                    {
                      "errorCode": "invalid-parameter",
                      "message": "Invalid \"productCodes\" parameter. You can use \"productCodes\" or \"productGuids\", but not both.",
                      "instance": "productCodes"
                    },
                    {
                      "errorCode": "missing-parameter",
                      "message": "Missing value for parameter \"productCodes\".",
                      "instance": "productCodes"
                    },
                    {
                      "errorCode": "missing-parameter",
                      "message": "Missing value for parameter \"productGuids\".",
                      "instance": "productGuids"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "List of products",
        "operationId": "getListOfProducts",
        "description": "Returns the list of products - only basic info and GUID, using this you can determine the details \nwith another API call. Endpoint supports [Paging](#section/basic-principles/paging).\n\n\nThis endpoint has several sections, which are sent only when requested in the `include` parameter (see [Section on demand](#section/basic-principles/section-on-demand).\n\n\nIf you state the `include=images` parameter within the URL, then information about main product image will \nalso be part of the response. For more information about the chapter [Product images](#section/Product-images).\n\n\nPlease note it is better to use List of all products endpoint for getting all products from eshop.\n\nUse `productCodes` or `productGuids` request parameter to get the list of specific products. Product codes/GUIDs are separated by a comma. If you use this query parameter, other filters are not applied, and the set of particular products is returned. Please note that these parameters **accepts max. 50 product codes/GUIDs in request parameter** and cannot be combined.",
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "availabilityId",
            "in": "query",
            "description": "product availability id. Optional.",
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "availabilityWhenSoldOutId",
            "in": "query",
            "description": "product availability id when not stocked. Optional.",
            "example": -2,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "date of product creation, lower limit. Optional.",
            "example": "2017-02-28T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "date of product creation, upper limit. Optional.",
            "example": "2028-02-28T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "visibility",
            "in": "query",
            "description": "Product visibility (visible, hidden, only for logged-in users...) - see also [Product visibility](#section/code-lists/product-visibility) code list. Optional.",
            "example": "visible",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Product type (product, service, bazar...) - see also [Product types](#section/code-lists/product-types) code list. Optional.",
            "example": "product",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "brandName",
            "in": "query",
            "description": "product brand (manufacturer) name. Optional.",
            "example": "Storm",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "brandCode",
            "in": "query",
            "description": "product brand (manufacturer) code from `/api/brands` endpoint.\nOptional.",
            "example": "storm",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "defaultCategoryGuid",
            "in": "query",
            "description": "product default category. Optional.",
            "example": "5c499a23-70ac-11e9-9208-08002774f818",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryGuid",
            "in": "query",
            "description": "product category - only the products added to specific category will\nbe included. Optional.",
            "example": "5c499a23-70ac-11e9-9208-08002774f818",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "flag",
            "in": "query",
            "description": "product flag - only products with selected flag will be included",
            "example": "action",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "optional parts of response",
            "example": "images",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productCodes",
            "in": "query",
            "description": "Define the output set of products. Use max. 50 product codes separated by a comma. No additional filters take\neffect. Cannot be combined with `productGuids` query parameter.",
            "example": "15/ZLU,15/ZEL,27/XL,33/FIA,DS53437473,428",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productGuids",
            "in": "query",
            "description": "Define the output set of products. Use max. 50 product GUIDs separated by a comma. No additional filters take\neffect. Cannot be combined with `productCodes` query parameter.",
            "example": "356eb81e-d966-11e0-b04f-57a43310b768,519d8f84-1609-11f0-bcf6-06999863e34a,519d8f84-1609-11f0-bcf6-06999863e34a",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "supplierGuid",
            "in": "query",
            "description": "supplier GUID - only products with selected supplier will be\nincluded",
            "example": "16a67ec6-d957-11e0-b04f-57a43310b768",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeFrom",
            "in": "query",
            "description": "date of product last update, lower limit. Optional.",
            "example": "2017-02-28T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeTo",
            "in": "query",
            "description": "date of product last update, upper limit. Optional.",
            "example": "2028-02-28T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 20. Max value is 1000.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "product"
                      ],
                      "properties": {
                        "product": {
                          "$ref": "#/components/schemas/product"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Unable to process request with consumptionTax include as \"consumptionTax\" module is not active.",
                      "instance": "consumptionTax"
                    },
                    {
                      "errorCode": "missing-module",
                      "message": "Method requires active shoptetPay module in eshop when preauthorizationRequired field is present in product data.",
                      "instance": "shoptetPay"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "The property consumptionTaxId is not allowed. Module \"consumptionTax\" required.",
                      "instance": "payload"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Product insertion",
        "operationId": "createProduct",
        "description": "This endpoint allows you to insert products into Shoptet. You can use it\nfor an import from an external system.\n\nRequest is sent in JSON format in its body. For detailed description of\nitems, which can be provided, see the right-most\n\npane, section \"Request\" » \"Attributes\".\n\n\n**Currently it is possible to insert only a basic product attributes**\n\n\nWhen creating product without variants, add one variant to `variants`\narray and it will be created as product without variants,\n\nbut with values specified in the `variant`.\n\n\nWhen creating product with multiple variants, you must specify\n`parameters` which are different in each variant (variant A with\n\ncolor black and size XXL and variant B with color yellow and size XXL is\ncorrect, but two variants with color black and size XXL is not correct).\n\nAlso, `nameIndex` must be unique in a variant (variant A with color\nblack and color white is not correct).",
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "include",
            "in": "query",
            "description": "Optional parts of response",
            "example": "images,variantParameters,allCategories,flags,descriptiveParameters,measureUnit,surchargeParameters,setItems,filteringParameters,recyclingFee,consumptionTax,warranty,sortVariants,relatedVideos,perPricelistPrices",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "name",
                      "defaultCategoryGuid",
                      "variants"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "guid": {
                        "$ref": "#/components/schemas/typeGuid",
                        "description": "Product GUID. Must be unique if set."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "product",
                          "bazar",
                          "service",
                          "product-set"
                        ],
                        "description": "Product type. Optional, default value 'product'. Please note that 'product-set' requires 'sets' module to be enabled. Enum - see [Product types](#section/code-lists/product-types) code list.",
                        "examples": [
                          "product",
                          "bazar",
                          "service",
                          "product-set"
                        ]
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "hidden",
                          "visible",
                          "blocked",
                          "show-registered",
                          "block-unregistered",
                          "cash-desk-only",
                          "detail-only"
                        ],
                        "description": "Product visibility. Optional, default value `visible`. Enum - see [Product visibility](#section/code-lists/product-visibility) code list.",
                        "examples": [
                          "hidden"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 250,
                        "description": "Product's name. Mandatory. Maximal length of 250 characters.",
                        "examples": [
                          "Velká čokoláda"
                        ]
                      },
                      "adult": {
                        "type": "boolean",
                        "description": "Whether the product is for adults only. Optional, default value `false`.",
                        "examples": [
                          true
                        ]
                      },
                      "shortDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Product's short description.",
                        "examples": [
                          "Velice kvalitní a dobrá čokoláda."
                        ]
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Product's full description.",
                        "examples": [
                          "<p>Velice kvalitní a dobrá čokoláda. Chutná vždy dobře. <b>Neobsahuje arašídy.</b></p>"
                        ]
                      },
                      "additionalName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "maxLength": 150,
                        "description": "Product's additional name. Optional. Maximal length of 150 characters.",
                        "examples": [
                          "Velice kvalitní a dobrá čokoláda."
                        ]
                      },
                      "metaTitle": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Product's seo title. Maximal length of 255 characters.",
                        "examples": [
                          "Velice kvalitní a dobrá čokoláda."
                        ]
                      },
                      "metaDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Product's full description.",
                        "examples": [
                          "Velice kvalitní a dobrá čokoláda. Chutná vždy dobře. Neobsahuje arašídy."
                        ]
                      },
                      "conditionGrade": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "Grade condition of second-hand product. Allowed only for `bazar` type.",
                        "examples": [
                          "used"
                        ]
                      },
                      "conditionDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "Condition description of second-hand product. Allowed only for `bazar` type.",
                        "examples": [
                          "Without original package."
                        ]
                      },
                      "defaultCategoryGuid": {
                        "$ref": "#/components/schemas/typeGuid",
                        "description": "Product's default category's GUID. Mandatory."
                      },
                      "brandCode": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Product's brand indexName/code. Must exist if set.",
                        "examples": [
                          "milka"
                        ]
                      },
                      "internalNote": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Product internal note.",
                        "examples": [
                          "Internal note for product manager."
                        ]
                      },
                      "preauthorizationRequired": {
                        "type": "boolean",
                        "description": "whether the preauthorization is required; available only if shoptet pay module is enabled",
                        "examples": [
                          true
                        ]
                      },
                      "supplierGuid": {
                        "$ref": "#/components/schemas/typeGuid",
                        "minLength": 1,
                        "description": "Supplier GUID. Must exist if set."
                      },
                      "categoryGuids": {
                        "type": "array",
                        "minItems": 1,
                        "items": {
                          "$ref": "#/components/schemas/typeGuid"
                        }
                      },
                      "warrantyId": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Warranty ID.",
                        "examples": [
                          1
                        ]
                      },
                      "flags": {
                        "type": "array",
                        "description": "Must exist if set.",
                        "minItems": 1,
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "code"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "flag identifier.",
                              "examples": [
                                "new"
                              ]
                            },
                            "dateFrom": {
                              "$ref": "#/components/schemas/typeDateNullable",
                              "description": "Date from which the flag is valid."
                            },
                            "dateTo": {
                              "$ref": "#/components/schemas/typeDateNullable",
                              "description": "Date to which the flag is valid."
                            }
                          }
                        }
                      },
                      "descriptiveParameters": {
                        "type": "array",
                        "description": "Product descriptive parameters.",
                        "minItems": 1,
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "name"
                          ],
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 255,
                              "description": "Parameter name.",
                              "examples": [
                                "Material"
                              ]
                            },
                            "value": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "value of the descriptive parameter.",
                              "examples": [
                                "Cotton"
                              ]
                            },
                            "description": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Description of the descriptive parameter.",
                              "examples": [
                                "Material the shirt is made of"
                              ]
                            },
                            "priority": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "maximum": 99999,
                              "description": "Priority of the parameter.",
                              "examples": [
                                1
                              ]
                            }
                          }
                        }
                      },
                      "filteringParameters": {
                        "type": "array",
                        "minItems": 1,
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "code",
                            "values"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 255,
                              "description": "Filtering parameter code.",
                              "examples": [
                                "action"
                              ]
                            },
                            "values": {
                              "type": "array",
                              "minItems": 1,
                              "description": "Product filtering parameter values.",
                              "items": {
                                "type": "string"
                              },
                              "examples": [
                                "Action"
                              ]
                            }
                          }
                        }
                      },
                      "surchargeParameters": {
                        "type": "array",
                        "minItems": 1,
                        "description": "Product surcharge parameters. Not allowed for products with multiple tax classes.",
                        "items": {
                          "$ref": "#/components/schemas/productRequestSurchargeParameter"
                        }
                      },
                      "variants": {
                        "type": "array",
                        "description": "Product's variants",
                        "minItems": 1,
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "code": {
                              "$ref": "#/components/schemas/typeVariantCodeRequest"
                            },
                            "ean": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "maxLength": 255,
                              "description": "Variant's ean.",
                              "examples": [
                                "8594001234567"
                              ]
                            },
                            "unitId": {
                              "type": "integer",
                              "description": "Variant's unit id. Optional",
                              "examples": [
                                -1
                              ]
                            },
                            "weight": {
                              "$ref": "#/components/schemas/typeWeightRequest",
                              "description": "Variant's weight in kilograms. 3 decimal places, and maximum value of 99999.999.",
                              "examples": [
                                "13.500"
                              ]
                            },
                            "width": {
                              "$ref": "#/components/schemas/typeDimension",
                              "description": "width of the product in cm. 1 decimal place, maximum 9999.9."
                            },
                            "height": {
                              "$ref": "#/components/schemas/typeDimension",
                              "description": "height of the product in cm. 1 decimal place, maximum 9999.9."
                            },
                            "depth": {
                              "$ref": "#/components/schemas/typeDimension",
                              "description": "depth of the product in cm. 1 decimal place, maximum 9999.9."
                            },
                            "visible": {
                              "type": "boolean",
                              "description": "Is variant visible?",
                              "examples": [
                                true
                              ]
                            },
                            "price": {
                              "$ref": "#/components/schemas/typePrice",
                              "description": "Product price.",
                              "examples": [
                                "123.45"
                              ]
                            },
                            "currencyCode": {
                              "$ref": "#/components/schemas/typeCurrencyCode"
                            },
                            "manufacturerCode": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "maxLength": 32,
                              "description": "Variant's manufacturer code.",
                              "examples": [
                                "OKI"
                              ]
                            },
                            "pluCode": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "maxLength": 16,
                              "description": "Variant's plu.",
                              "examples": [
                                "0828"
                              ]
                            },
                            "isbn": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "maxLength": 32,
                              "description": "Variant's ISBN.",
                              "examples": [
                                "978-80-251-0000-0"
                              ]
                            },
                            "serialNo": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "maxLength": 32,
                              "description": "Variant's serial number.",
                              "examples": [
                                "B412"
                              ]
                            },
                            "mpn": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "maxLength": 32,
                              "description": "Variant's MPN.",
                              "examples": [
                                "H3T5-87"
                              ]
                            },
                            "availabilityId": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Product availability id",
                              "examples": [
                                -1
                              ]
                            },
                            "availabilityWhenSoldOutId": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Product availability id when not stocked",
                              "examples": [
                                -3
                              ]
                            },
                            "parameters": {
                              "type": "array",
                              "description": "Variant's parameters",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "nameIndex",
                                  "valueIndex"
                                ],
                                "properties": {
                                  "nameIndex": {
                                    "type": "string",
                                    "description": "indexName of parameter name",
                                    "examples": [
                                      "color"
                                    ]
                                  },
                                  "valueIndex": {
                                    "type": "string",
                                    "description": "indexName of parameter value",
                                    "examples": [
                                      "red"
                                    ]
                                  }
                                }
                              }
                            },
                            "minStockSupply": {
                              "$ref": "#/components/schemas/typePositiveAmountNullable",
                              "description": "Minimum stock supply.",
                              "examples": [
                                "10.000"
                              ]
                            },
                            "stocksLocations": {
                              "type": "array",
                              "description": "Locations and amounts in stocks.",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "stockId"
                                ],
                                "properties": {
                                  "stockId": {
                                    "type": "integer",
                                    "description": "Id of stock. Required if stocksLocations is set. Must fit existing stock Id. Check List of Stocks.",
                                    "examples": [
                                      1
                                    ]
                                  },
                                  "amount": {
                                    "$ref": "#/components/schemas/typeAmountNullable",
                                    "description": "Current quantity in stock.  0 if not set.",
                                    "examples": [
                                      50
                                    ]
                                  },
                                  "location": {
                                    "type": "string",
                                    "description": "Stock location.",
                                    "examples": [
                                      "H6/M11/R13"
                                    ]
                                  }
                                }
                              }
                            },
                            "negativeStockAllowed": {
                              "type": "boolean",
                              "description": "Product stock can be in negative numbers",
                              "examples": [
                                true
                              ]
                            },
                            "measureUnit": {
                              "$ref": "#/components/schemas/measureUnit",
                              "description": "Product variant measure and packaging units."
                            },
                            "recyclingFeeId": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Product recycling fee id",
                              "examples": [
                                123
                              ]
                            },
                            "consumptionTaxId": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Product consumption tax identifier",
                              "examples": [
                                1
                              ]
                            },
                            "amountDecimalPlaces": {
                              "type": "integer",
                              "enum": [
                                0,
                                1,
                                2,
                                3
                              ],
                              "description": "Amount of product variant decimal places.",
                              "examples": [
                                2
                              ]
                            },
                            "atypicalBilling": {
                              "type": "boolean",
                              "description": "Has atypical billing?",
                              "examples": [
                                true
                              ]
                            },
                            "atypicalShipping": {
                              "type": "boolean",
                              "description": "Has atypical shipping?",
                              "examples": [
                                true
                              ]
                            },
                            "boxRestriction": {
                              "type": "boolean",
                              "description": "When enabled, pickup lockers cannot be selected in the cart.",
                              "examples": [
                                true
                              ],
                              "default": false
                            },
                            "ossVatLevels": {
                              "type": "array",
                              "description": "OSS Tax setup",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "countryCode",
                                  "taxLevel"
                                ],
                                "properties": {
                                  "countryCode": {
                                    "type": "string",
                                    "maxLength": 2,
                                    "description": "Country code",
                                    "examples": [
                                      "CZ"
                                    ]
                                  },
                                  "taxLevel": {
                                    "enum": [
                                      "high",
                                      "low",
                                      "third",
                                      "none",
                                      "superLow",
                                      "parking"
                                    ],
                                    "description": "Tax level type. Use Enums: high: Standard tax rate, none: Zero tax rate, low: First reduced tax rate, third: Second reduced tax rate, superLow: Super low tax rate, parking: Parking tax rate.",
                                    "examples": [
                                      "high"
                                    ]
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "indexName": {
                        "type": "string",
                        "description": "String which defines product url. Value is sanitized to fits url needs = All characters except [a-zA-Z0-9_] will be converted to `-`. If value is not present, indexName is created from product name.",
                        "examples": [
                          "baleriny-modre-s-puntiky"
                        ],
                        "minLength": 1
                      },
                      "relatedVideos": {
                        "type": "array",
                        "description": "Product related videos.",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "code",
                            "type"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "maxLength": 32,
                              "description": "related video code.",
                              "examples": [
                                "zpvmPA3me7o"
                              ]
                            },
                            "title": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "maxLength": 128,
                              "description": "related video title.",
                              "examples": [
                                "Test video"
                              ]
                            },
                            "type": {
                              "enum": [
                                "youtube",
                                "youtube-short"
                              ],
                              "description": "related video type.",
                              "examples": [
                                "youtube"
                              ]
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/products/{guid}/copy": {
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/product"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Unable to process request with perStockAmounts as \"stock\" module is not active.",
                      "instance": "stock"
                    },
                    {
                      "errorCode": "missing-module",
                      "message": "Unable to process request with consumptionTax include as \"consumptionTax\" module is not active.",
                      "instance": "consumptionTax"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "product-not-found",
                      "message": "Product with identificator \"93bc0dbe-7481-11e8-8216-002590dad85e\" not found.",
                      "instance": "93bc0dbe-7481-11e8-8216-002590dad85e"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Stocks cannot be copied without pricelist. Property `pricelist` must be set to `true`.",
                      "instance": "stocks"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Product copy",
        "operationId": "productCopy",
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "description": "This endpoint allows you to copy a product identified by a GUID.\n\nThe new product will have the same attributes as the original product. Many settings can be copied from the original product,but some settings require an active module. See the details below.\n\nBy default, all parameters are copied and set to true unless specified otherwise. If you only want to copy certain parameters, select those you want to copy and set the others to false. If you wish to copy all parameters, you don't need to include them in the request list at all.\n\nImportant note: If you previously had any active modules (such as Heureka, Seznam, GlobalSaleVat) that are no longer active, the resulting data may differ slightly because data requiring an active module will not be copied in this case.",
        "tags": [
          "Products"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "minProperties": 1,
                    "additionalProperties": false,
                    "required": [
                      "name"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 250,
                        "description": "Product`s name. Maximal length of 250 characters. Mandatory.",
                        "examples": [
                          "Velká čokoláda"
                        ]
                      },
                      "isVisible": {
                        "type": "boolean",
                        "description": "Determine whether the copied product will be `visible` or `hidden`. This is optional; if not set, the visibility will be inherited from the source product.",
                        "examples": [
                          true
                        ]
                      },
                      "copyProperties": {
                        "type": "object",
                        "additionalProperties": false,
                        "description": "Properties to copy. All properties are optional; if not set, the default value is true.",
                        "minProperties": 1,
                        "properties": {
                          "generalData": {
                            "type": "boolean",
                            "description": "Whether to copy general data, which includes 'shortDescription', 'description', 'internalNote', 'manufacturer', 'warranty', 'supplier', 'itemType' and 'visibility' (if not set `isVisible` property).",
                            "examples": [
                              true
                            ]
                          },
                          "images": {
                            "type": "boolean",
                            "description": "Whether to copy product gallery images.",
                            "examples": [
                              true
                            ]
                          },
                          "images360": {
                            "type": "boolean",
                            "description": "Whether to copy product 360° gallery images.",
                            "examples": [
                              true
                            ]
                          },
                          "pricelist": {
                            "type": "boolean",
                            "description": "Whether to copy the pricelist with all settings, including any variants from the source product.",
                            "examples": [
                              true
                            ]
                          },
                          "categories": {
                            "type": "boolean",
                            "description": "Whether to copy all categories.",
                            "examples": [
                              true
                            ]
                          },
                          "properties": {
                            "type": "boolean",
                            "description": "Whether to copy properties, which includes `descriptiveParameters` and `surchargeParameters`.",
                            "examples": [
                              true
                            ]
                          },
                          "related": {
                            "type": "boolean",
                            "description": "Whether to copy all related properties. It includes `relatedProducts` (only when the relatedProducts module is active), `alternativeProducts` (only when the `alternativeProducts` module is active), `relatedVideos` (only when the `relatedVideos` module is active), `relatedGifts` (only when the `gifts` module is active) and `downPayments` (only when the `downPayments` module is active).",
                            "examples": [
                              true
                            ]
                          },
                          "advanced": {
                            "type": "boolean",
                            "description": "Whether to copy advanced properties like `metaDescription`, `appendix`, `xmlFeedName`, `seoTitle`, `IPlatba`, `PayOnline`, `adult`. If `categoryPairing` is set to `true`, the `categoryPairing` settings for Google, Glami, Heureka, Zbozi.cz will be copied.",
                            "examples": [
                              true
                            ]
                          },
                          "stocks": {
                            "type": "boolean",
                            "description": "Whether to copy stocks. Available only with active `Stock` module. The pricelist must be also setted to `true` in order for the stock requirements to be copied.",
                            "examples": [
                              true
                            ]
                          },
                          "globalSaleVat": {
                            "type": "boolean",
                            "description": "Whether to copy global sale VAT. Available only with active `Global Sale` module.",
                            "examples": [
                              true
                            ]
                          },
                          "zboziCzSettings": {
                            "type": "boolean",
                            "description": "Whether to copy Zboží.cz settings. Available only with active `Seznam` module.",
                            "examples": [
                              true
                            ]
                          },
                          "heurekaSettings": {
                            "type": "boolean",
                            "description": "Whether to copy Heureka settings. Available only with active `HeurekaCZ` module.",
                            "examples": [
                              true
                            ]
                          },
                          "categoryPairing": {
                            "type": "boolean",
                            "description": "Whether to copy category pairing settings for Google, Glami, Heureka, Zbozi.cz. Property `advanced` must be set to `true`.",
                            "examples": [
                              true
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/products/snapshot": {
      "get": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-parameter",
                      "message": "Invalid \"productCodes\" parameter. Expected max. 50 elements, but 55 given.",
                      "instance": "productCodes"
                    },
                    {
                      "errorCode": "invalid-parameter",
                      "message": "Invalid \"productGuids\" parameter. Expected max. 50 elements, but 55 given.",
                      "instance": "productGuids"
                    },
                    {
                      "errorCode": "invalid-parameter",
                      "message": "Invalid \"productCodes\" parameter. You can use \"productCodes\" or \"productGuids\", but not both.",
                      "instance": "productCodes"
                    },
                    {
                      "errorCode": "missing-parameter",
                      "message": "Missing value for parameter \"productCodes\".",
                      "instance": "productCodes"
                    },
                    {
                      "errorCode": "missing-parameter",
                      "message": "Missing value for parameter \"productGuids\".",
                      "instance": "productGuids"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Unable to process request with consumptionTax include as \"consumptionTax\" module is not active.",
                      "instance": "consumptionTax"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "List of all products",
        "operationId": "getListOfAllProducts",
        "description": "Using this endpoint, you can get list of all products with detailed info of each product (like in Product Detail endpoint) asynchronously. See how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each product taking one line of output file.\n\n\nOne product in response has the same format as product detail response. See [Product snapshot schema](/shoptet-api/openapi/snapshot/productsnapshot) for more details.\n\n\nThis endpoint has several sections, which are exported only when requested in the `include` parameter (see [Section on demand](#section/basic-principles/section-on-demand)).\n\n\nInclude parameter     | Meaning\n---                   | ---\nimages                | Export will also contain the list of all product images. For more information about the chapter [Product images](#product-images).\nvariantParameters     | Export will also contain a field of variant parameters and a variant description, as they are visible to customers.\nallCategories         | Export will also contain information on all the categories that the product was assigned into\nflags                 | Details on product designation\ndescriptiveParameters | Export will also contain descriptive parameters of the product\nmeasureUnit           | Export will also contain measure unit info of every variant.\nsurchargeParameters   | Export will also contain surcharge parameters of the product.\nsetItems              | Export will also contain items, products, in set.\nfilteringParameters   | Export will also contain filtering parameters of the product.\nrecyclingFee          | Export will also contain recycling fee.\nconsumptionTax        | Export will also contain consumption tax. Requires the \"Consumption tax\" module to be enabled on the current e-shop.\nwarranty              | Export will also contain product warranty.\nsortVariants          | Product variants will be sorted as in administration.\ngifts                 | List of gifts (variants) related to product\nalternativeProducts   | The response will also contain alternative products.\nrelatedProducts       | The response will also contain related products.\nrelatedVideos         | The response will also contain related videos.\nrelatedFiles          | The response will also contain related files.\nperStockAmounts       | The response will also contain amounts/claims per individual stocks. Requires the \"stock\" module to be enabled on the current e-shop.\nperPricelistPrices    | The response will also contain prices per individual price lists.\n\nUse `productCodes` or `productGuids` request parameter to get the list of specific products. Product codes/GUIDs are separated by a comma. If you use this query parameter, other filters are not applied, and the set of particular products is returned. Please note that these parameters **accepts max. 50 product codes/GUIDs in request parameter** and cannot be combined.\n\nResult file is compressed using GZIP.",
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "include",
            "in": "query",
            "description": "Optional parts of response",
            "example": "images,variantParameters,allCategories,flags,descriptiveParameters,measureUnit,surchargeParameters,setItems,filteringParameters,recyclingFee,consumptionTax,warranty,sortVariants,gifts,alternativeProducts,relatedProducts,relatedVideos,relatedFiles,perStockAmounts,perPricelistPrices",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productCodes",
            "in": "query",
            "description": "Define the output set of products. Use max. 50 product codes separated by a comma. No additional filters take\neffect. Cannot be combined with `productGuids` query parameter.",
            "example": "15/ZLU,15/ZEL,27/XL,33/FIA,DS53437473,428",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productGuids",
            "in": "query",
            "description": "Define the output set of products. Use max. 50 product GUIDs separated by a comma. No additional filters take\neffect. Cannot be combined with `productCodes` query parameter.",
            "example": "356eb81e-d966-11e0-b04f-57a43310b768,519d8f84-1609-11f0-bcf6-06999863e34a,519d8f84-1609-11f0-bcf6-06999863e34a",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "availabilityId",
            "in": "query",
            "description": "product availability id. Optional.",
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "availabilityWhenSoldOutId",
            "in": "query",
            "description": "product availability id when not stocked. Optional.",
            "example": -2,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "date of product creation, lower limit. Optional.",
            "example": "2017-02-28T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "date of product creation, upper limit. Optional.",
            "example": "2028-02-28T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "visibility",
            "in": "query",
            "description": "Product visibility (visible, hidden, only for logged-in users...) - see also [Product visibility](#section/code-lists/product-visibility) code list. Optional.",
            "example": "visible",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Product type (product, service, bazar...) - see also [Product types](#section/code-lists/product-types) code list. Optional.",
            "example": "product",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "brandName",
            "in": "query",
            "description": "product brand (manufacturer) name. Optional.",
            "example": "Storm",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "brandCode",
            "in": "query",
            "description": "product brand (manufacturer) code from `/api/brands` endpoint.\nOptional.",
            "example": "storm",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "defaultCategoryGuid",
            "in": "query",
            "description": "product default category. Optional.",
            "example": "5c499a23-70ac-11e9-9208-08002774f818",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryGuid",
            "in": "query",
            "description": "product category - only the products added to specific category will\nbe included. Optional.",
            "example": "5c499a23-70ac-11e9-9208-08002774f818",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "flag",
            "in": "query",
            "description": "product flag - only products with selected flag will be included",
            "example": "action",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "supplierGuid",
            "in": "query",
            "description": "supplier GUID - only products with selected supplier will be\nincluded",
            "example": "16a67ec6-d957-11e0-b04f-57a43310b768",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeFrom",
            "in": "query",
            "description": "date of product last update, lower limit. Optional.",
            "example": "2017-02-28T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeTo",
            "in": "query",
            "description": "date of product last update, upper limit. Optional.",
            "example": "2028-02-28T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-snapshot-endpoint": true,
        "x-shoptet-response-ref": "#/definitions/productSnapshot"
      }
    },
    "/api/products/snapshot/pricelists": {
      "get": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "List of all products and pricelist prices",
        "operationId": "getListOfAllProductsAndPricelistPrices",
        "description": "Using this endpoint, you can get list of all products with basic data such as  product guid, id, code and its prices across all pricelists.\n\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each product taking one line of output file. See [Product price list snapshot schema](/shoptet-api/openapi/snapshot/productpricelistsnapshot) for more details.\n\n\nResult file is compressed using GZIP.",
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-snapshot-endpoint": true,
        "x-shoptet-response-ref": "#/definitions/productPricelistSnapshot"
      }
    },
    "/api/products/{guid}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/product"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Unable to process request with consumptionTax include as \"consumptionTax\" module is not active.",
                      "instance": "consumptionTax"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Product detail",
        "operationId": "getProductDetail",
        "description": "Returns detailed information about one product. The product includes the variant field. In case the product comes in variants,\nthe field contains all the available variants. If the product does not have any variants, it contains only one variant\nwith product information.\n\n\nThis endpoint has several sections, which are sent only when requested in the `include` parameter (see\n[Section on demand](#section/basic-principles/section-on-demand)).\n\nInclude parameter     | Meaning\n---                   | ---\nimages                | The response will also contain the list of all product images. For more information about the chapter [Product images](#section/Product-images).\nvariantParameters     | The response will also contain a field of variant parameters and a variant description, as they are visible to customers.\nallCategories         | The response will also contain information on all the categories that the product was assigned into\nflags                 | Details on product designation\ndescriptiveParameters | The response will also contain descriptive parameters of the product\nmeasureUnit           | The response will also contain measure unit info of every variant.\nsurchargeParameters   | The response will also contain surcharge parameters of the product.\nsetItems              | The response will also contain items, products, in set.\nfilteringParameters   | The response will also contain filtering parameters of the product.\nrecyclingFee          | The response will also contain recycling fee.\nconsumptionTax        | The response will also contain consumption tax. Requires the \"Consumption tax\" module to be enabled on the current e-shop.\nwarranty              | The response will also contain product warranty.\nsortVariants          | Product variants will be sorted as in administration.\ngifts                 | Product gifts, will be sorted as in administration\nalternativeProducts   | The response will also contain alternative products.\nrelatedProducts       | The response will also contain related products.\nrelatedVideos         | The response will also contain related videos.\nrelatedFiles          | The response will also contain related files.\nperStockAmounts       | The response will also contain amounts/claims per individual stocks. Requires the \"stock\" module to be enabled on the current e-shop.\nperPricelistPrices    | The response will also contain prices per individual price lists.",
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Optional parts of response",
            "example": "images,variantParameters,allCategories,flags,descriptiveParameters,measureUnit,surchargeParameters,setItems,filteringParameters,recyclingFee,consumptionTax,warranty,sortVariants,gifts,alternativeProducts,relatedProducts,relatedVideos,relatedFiles,perStockAmounts,perPricelistPrices",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/product"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Unable to process request with consumptionTax include as \"consumptionTax\" module is not active.",
                      "instance": "consumptionTax"
                    },
                    {
                      "errorCode": "missing-module",
                      "message": "Method requires active shoptetPay module in eshop when preauthorizationRequired field is present in product data.",
                      "instance": "shoptetPay"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "The property consumptionTaxId is not allowed. Module \"consumptionTax\" required.",
                      "instance": "payload"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Product update",
        "operationId": "updateProduct",
        "description": "Allows you to change a product, which is identified by the guid.\n\n\nThis endpoint allows you to update products in Shoptet.\n\nRequest is sent in JSON format in its body. For detailed description of\nitems, which can be updated and their format,\n\ncheck the right-most pane, section \"Request\" » \"Attributes\"\n\n\nProduct variant can be updated by specifying its `code`. When `code` is\nnot specified or not existing, new variant will be created.\n\nIf you want to change `code` of variant, use `code` to specify variant\nto be changed and `newCode` for specifying new code.\n\n\nField `parameters` should contain ALL parameters that the edited variant\nshould contain.\n\nThat means, if you have for example \"color:black\" in variant and you\nspecify only new parameter \"size\", parameter color will be deleted.",
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid",
            "required": true,
            "example": "bffa3b98-d968-11e0-b04f-57a43310b768",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Optional parts of response",
            "example": "images,variantParameters,allCategories,flags,descriptiveParameters,measureUnit,surchargeParameters,setItems,filteringParameters,consumptionTax",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/productUpdate"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "product-not-found",
                      "message": "Product with identificator\n\"93bc0dbe-7481-11e8-8216-002590dad85e\" not found.",
                      "instance": "93bc0dbe-7481-11e8-8216-002590dad85e"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "product-used-in-set",
                      "message": "Product with identificator\n\"93bc0dbe-7481-11e8-8216-002590dad85e\" cannot be deleted\nbecause is used in product set.",
                      "instance": "93bc0dbe-7481-11e8-8216-002590dad85e"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Product deletion",
        "operationId": "deleteProduct",
        "description": "Deletes product as per entered `guid`. If successful, returns the code\n200.\n\nIf the product does not exist within the e-shop, a 404 code is returned.\n\nIf the product cannot be deleted, because it is part of set or used as a\ngift to some product, a 409 code is returned.",
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/batch": {
      "patch": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "file-not-found",
                      "message": "File \"https://jsonlines.org/products.jsonl\" not found.",
                      "instance": "batchFileUrlPath"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "batch-job-already-running",
                      "message": "Concurrent job already running!",
                      "instance": "products-batch-update"
                    },
                    {
                      "errorCode": "another-import-is-running",
                      "message": "Another import is running. Please try again later.",
                      "instance": "products-batch-update"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Product BATCH update",
        "operationId": "productBatchUpdate",
        "description": "This endpoint allows you to update multiple products at once. Batch\nupdate is processed asynchronously in same way as for example products\nsnapshot, but it does not have `resultUrl` with products to download in response.\nInstead, you can check attribute `log` which contains successfully updated products and errors.\n\n\n\nSee how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\n\nFile with data for update must be in JSONL ([jsonlines](https://jsonlines.org/)) format. Each line must contain one\nproduct in JSON format. Maximum size of file is 100MB.\n\nStructure of JSON row is same as structure of JSON for single product update above. You can add one extra optional attribute\n\"language\" which defines language of updating product, so you are able to update multiple language attributes (i.e. \"name\", \"description\" etc.)\nof one product in one batch file.\n\n\n\nIf language is not defined, default language of shop is used. See [Product batch update schema](/shoptet-api/openapi/batch/productbatchupdate) for more details.\n\n\nAsynchronous job process jsonl file row by row and try to validate and save data. If there is any error, row is skipped and error is logged,\nbut it does not stop processing of other rows.\n\n\n\nIn Log, every product is identified by its position in file (starting from 1).",
        "tags": [
          "Products"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "batchFileUrlPath"
                ],
                "properties": {
                  "batchFileUrlPath": {
                    "type": "string",
                    "description": "Url to batch file with products data. File must be in JSONL format.",
                    "examples": [
                      "https://cdn.myshoptet.com/batch-products-update.jsonl"
                    ]
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-async-endpoint": true
      }
    },
    "/api/products/code/{code}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/product"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Unable to process request with consumptionTax include as \"consumptionTax\" module is not active.",
                      "instance": "consumptionTax"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Product detail by code",
        "operationId": "getProductDetailByCode",
        "description": "Retrieve details about one product. Optional sections can be requested\nusing `?include=` parameter\nThe response format is the same as for [Product detail](#tag/products/getlistofproducts) endpoint.",
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "product or variant code.",
            "required": true,
            "example": "133",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Optional parts of response",
            "example": "images,variantParameters,allCategories,flags,descriptiveParameters,measureUnit,surchargeParameters,setItems,filteringParameters,recyclingFee,consumptionTax,perStockAmounts,sortVariants,perPricelistPrices",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/product"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Unable to process request with consumptionTax include as \"consumptionTax\" module is not active.",
                      "instance": "consumptionTax"
                    },
                    {
                      "errorCode": "missing-module",
                      "message": "Method requires active shoptetPay module in eshop when preauthorizationRequired field is present in product data.",
                      "instance": "shoptetPay"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "The property consumptionTaxId is not allowed. Module \"consumptionTax\" required.",
                      "instance": "payload"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Product update by code",
        "operationId": "updateProductByCode",
        "description": "This endpoint allows you to update products identified by a product code\nin Shoptet.\n\nRequest is sent in JSON format in its body. For detailed description of\nitems, which can be updated and their format,\n\ncheck the right-most pane, section \"Request\" » \"Attributes\".\n\n\nProduct variant can be updated by specifying its `code`. When `code` is\nnot specified or not existing, new variant will be created.\n\nIf you want to change `code` of variant, use `code` to specify variant\nto be changed and `newCode` for specifying new code.\n\n\nField `parameters` should contain ALL parameters that the edited variant\nshould contain.\n\nThat means, if you have for example \"color:black\" in variant and you\nspecify only new parameter \"velikost\", parameter color will be deleted.\n\n\n**Please note that any product's variant can be edited by this endpoint,\nnot only the one in url**",
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "Product or variant code",
            "required": true,
            "example": "00351",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Optional parts of response",
            "example": "images,variantParameters,allCategories,flags,descriptiveParameters,measureUnit,surchargeParameters,setItems,filteringParameters,perStockAmounts,perPricelistPrices,recyclingFee,consumptionTax",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/productUpdate"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "product-not-found",
                      "message": "Product with identificator \"133\" not found.",
                      "instance": "133"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "product-used-in-set",
                      "message": "Product with identificator \"133\" cannot be deleted because\nis used in product set.",
                      "instance": "133"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Product variant deletion",
        "operationId": "deleteProductVariant",
        "description": "Deletes product variant as per entered `code`. If this is the last\nproduct variant, the entire product is deleted.\n\nIf successful, returns the code 200.\n\nIf the product variant does not exist within the e-shop, a 404 code is\nreturned.\n\nIf the product variant cannot be deleted, because it is part of set or\nused as a gift to some product, a 409 code is returned.",
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "product variant code.",
            "required": true,
            "example": "112",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/{guid}/images/{gallery}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "images"
                      ],
                      "properties": {
                        "images": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "name",
                              "priority",
                              "description",
                              "changeTime",
                              "seoName",
                              "cdnName",
                              "isMainImage"
                            ],
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "image file name, also serves as an identifier for the image of the product. To assemble complete URL, it is added to the `urlPath` obtained from the endpoint e-shop info `/api/eshop?include=imageCuts`.",
                                "examples": [
                                  "product-image-1.jpg"
                                ]
                              },
                              "priority": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "the key for the sequence of images matching the sequence in administration - it''s not necessarily from the first, and the series may contain gaps. (can be `null`)",
                                "examples": [
                                  10
                                ]
                              },
                              "description": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "image label (can be `null`)",
                                "examples": [
                                  "Fresh purple apple for Snow White"
                                ]
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "last image change time If you are saving images together, you can use this timestamp to indicate if you need to reload the image. (can be `null`)"
                              },
                              "seoName": {
                                "type": "string",
                                "description": "file name modified for SEO - a short label is attached.",
                                "examples": [
                                  "100_purple-apple.jpg"
                                ]
                              },
                              "cdnName": {
                                "type": "string",
                                "description": "same as `seoName` with attached hashed last image change time. `name`, `seoName` and `cdnName` can be entered in the URL - redirect will deliver the same image.",
                                "examples": [
                                  "100_purple-apple.jpg?59393c3a"
                                ]
                              },
                              "isMainImage": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of product images",
        "operationId": "getListOfProductImages",
        "description": "Returns list of product's images.\n\nData from this endpoint and from product's detail endpoint (list named\n`images` when using `?include=images` parameter) are the same.\n\nUse this endpoint when working only with product images to save time.",
        "tags": [
          "Product images"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product's guid",
            "required": true,
            "example": "92ca3575-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gallery",
            "in": "path",
            "description": "Gallery identifier - use `shop` for normal and `shop360` for 360\nphotos",
            "required": true,
            "example": "shop",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "example-error-code",
                      "message": "Example error message",
                      "instance": "instance"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Delete all product images in gallery",
        "operationId": "deleteAllProductImagesInGallery",
        "description": "Deletes all product's images by gallery name. If `removeReference`\nparameter is not present or set to `false` and if image is referenced\n\nas variant image, then image will be skipped and present in `errors` in\nresponse.\n\nIf `removeReference` is set to true, then this reference will be removed\nwith the image.\n\n\nReturns `200` status code. If any image deletion failed, it will be\nnoted in `errors` section in response.",
        "tags": [
          "Product images"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product's guid",
            "required": true,
            "example": "94fe7ffc-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gallery",
            "in": "path",
            "description": "Gallery name (shop or shop360)",
            "required": true,
            "example": "shop",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "removeReference",
            "in": "query",
            "description": "If product's variant image reference should be removed. Default\n`false`.",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "images"
                      ],
                      "properties": {
                        "images": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "name",
                              "priority",
                              "description",
                              "changeTime",
                              "seoName",
                              "cdnName",
                              "isMainImage"
                            ],
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "image file name, also serves as an identifier for the image of the product. To assemble complete URL, it is added to the `urlPath` obtained from the endpoint e-shop info `/api/eshop?include=imageCuts`.",
                                "examples": [
                                  "100_purple-apple.jpg"
                                ]
                              },
                              "priority": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "the key for the sequence of images matching the sequence in administration - it''s not necessarily from the first, and the series may contain gaps. (can be `null`)",
                                "examples": [
                                  10
                                ]
                              },
                              "description": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "image label (can be `null`)",
                                "examples": [
                                  "Fresh purple apple for Snow White"
                                ]
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "last image change time If you are saving images together, you can use this timestamp to indicate if you need to reload the image. (can be `null`)"
                              },
                              "seoName": {
                                "type": "string",
                                "description": "file name modified for SEO - a short label is attached.",
                                "examples": [
                                  "100_purple-apple.jpg"
                                ]
                              },
                              "cdnName": {
                                "type": "string",
                                "description": "same as `seoName` with attached hashed last image change time. `name`, `seoName` and `cdnName` can be entered in the URL - redirect will deliver the same image.",
                                "examples": [
                                  "100_purple-apple.jpg?59393c3a"
                                ]
                              },
                              "isMainImage": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Product images update",
        "operationId": "getProductImagesUpdate",
        "description": "Using this endpoint you can modify product images attributes, such as\ndescription and priority (order). Maximum of 100 images can be sent at\nonce.",
        "tags": [
          "Product images"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product's guid",
            "required": true,
            "example": "95b84d4b-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gallery",
            "in": "path",
            "description": "Gallery identifier - use `shop` for normal and `shop360` for 360\nphotos",
            "required": true,
            "example": "shop",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "images"
                    ],
                    "properties": {
                      "images": {
                        "type": "array",
                        "minItems": 1,
                        "maxItems": 100,
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "name"
                          ],
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "description": "Name of image.",
                              "examples": [
                                "127.png"
                              ]
                            },
                            "priority": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 65535,
                              "description": "Image priority.",
                              "examples": [
                                100
                              ]
                            },
                            "description": {
                              "type": "string",
                              "description": "Image description.",
                              "examples": [
                                "Dobrá čokoláda"
                              ]
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Product images insertion",
        "operationId": "createProductImages",
        "description": "Using this endpoint you can upload new images to a product. This is an\nasynchronous request,\n\nsee how [Asynchronous\nrequests](https://developers.shoptet.com/asynchronous-requests/) work on\nour\n\ndeveloper's portal. Maximum of 100 images can be sent at once.",
        "tags": [
          "Product images"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product's guid",
            "required": true,
            "example": "95b84d4b-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gallery",
            "in": "path",
            "description": "Gallery identifier - use `shop` for normal and `shop360` for 360\nphotos",
            "required": true,
            "example": "shop",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "images"
                    ],
                    "properties": {
                      "images": {
                        "type": "array",
                        "minItems": 1,
                        "maxItems": 100,
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "sourceUrl"
                          ],
                          "properties": {
                            "sourceUrl": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000,
                              "description": "URL of the image.",
                              "examples": [
                                "https://www.your-eshop.com/cokolada.jpg"
                              ]
                            },
                            "priority": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 65535,
                              "description": "Image priority.",
                              "examples": [
                                100
                              ]
                            },
                            "description": {
                              "type": "string",
                              "description": "Image description.",
                              "examples": [
                                "Dobrá čokoláda"
                              ]
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-shoptet-async-endpoint": true
      }
    },
    "/api/products/{guid}/images/{gallery}/source": {
      "patch": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Product images source update",
        "operationId": "updateProductImagesSource",
        "description": "Using this endpoint you can modify product image attributes and also\nupload a new image and replace the existing one.\n\nThis is an asynchronous request,  see how [Asynchronous\nrequests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.",
        "tags": [
          "Product images"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product's guid",
            "required": true,
            "example": "95b84d4b-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gallery",
            "in": "path",
            "description": "Gallery identifier - use `shop` for normal and `shop360` for 360\nphotos",
            "required": true,
            "example": "shop",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "images"
                    ],
                    "properties": {
                      "images": {
                        "type": "array",
                        "minItems": 1,
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "name",
                            "sourceUrl"
                          ],
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "description": "Name of the image",
                              "examples": [
                                "127.png"
                              ]
                            },
                            "sourceUrl": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000,
                              "description": "URL of the image",
                              "examples": [
                                "https://www.your-eshop.com/cokolada.jpg"
                              ]
                            },
                            "priority": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 99999,
                              "description": "Priority of the image",
                              "examples": [
                                1
                              ]
                            },
                            "description": {
                              "type": "string",
                              "description": "Description of the image",
                              "examples": [
                                "Dobrá čokoláda"
                              ]
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-shoptet-async-endpoint": true
      }
    },
    "/api/products/{guid}/images/{gallery}/{imageName}": {
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Delete one product image",
        "operationId": "deleteOneProductImage",
        "description": "Deletes product's image. If `removeReference` parameter is not present\nor set to `false` and if image is referenced\n\nas variant image, then image won't be deleted and response will have\nstatus code `409 Conflict`.\n\nIf `removeReference` is set to true, then this reference will be removed\nwith the image.",
        "tags": [
          "Product images"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product's guid",
            "required": true,
            "example": "92d77e60-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gallery",
            "in": "path",
            "description": "Gallery name (shop or shop360)",
            "required": true,
            "example": "shop",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "imageName",
            "in": "path",
            "description": "Filename",
            "required": true,
            "example": "52.png",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "removeReference",
            "in": "query",
            "description": "If product's variant image reference should be removed. Default\n`false`.",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/{guid}/related-files": {
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "relatedFiles"
                      ],
                      "properties": {
                        "relatedFiles": {
                          "type": "array",
                          "description": "files related to product",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "id",
                              "name",
                              "url",
                              "size"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Related file id",
                                "examples": [
                                  426
                                ]
                              },
                              "name": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "related file title",
                                "examples": [
                                  "Example file"
                                ]
                              },
                              "url": {
                                "type": "string",
                                "description": "related file URL",
                                "examples": [
                                  "https://www.domena-eshopu.cz/user/related_files/example-file.txt"
                                ]
                              },
                              "size": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "related file size",
                                "examples": [
                                  1024
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Product related file link",
        "operationId": "createRelatedFileLink",
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "description": "Linking related file from temporary storage to product.",
        "tags": [
          "Product related files"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "sourceFileName"
                    ],
                    "properties": {
                      "sourceFileName": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Source file name uploaded to temporary storage or url path to external file",
                        "examples": [
                          "productsheet.pdf",
                          "https://cdn.myshoptet.com/productsheet.pdf"
                        ]
                      },
                      "description": {
                        "type": "string",
                        "description": "File description.",
                        "examples": [
                          "Product technical sheet"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Unable to process this request as \"relatedFiles\" module is not active.",
                      "instance": "relatedFiles"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "product-not-found",
                      "message": "Product \\\"fc8e4a2a-4c41-11e7-819d-002590dc5efc\\\" does not exist.",
                      "instance": "fc8e4a2a-4c41-11e7-819d-002590dc5efc"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Unlink all product related files",
        "operationId": "unlinkAllProductRelatedFiles",
        "description": "Unlink all related files linked to a specific product.",
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/{guid}/related-files/{id}": {
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Unable to process request as \"relatedFiles\" module is not active.",
                      "instance": "relatedFiles"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "file-not-found",
                      "message": "File with ID \"243\" not found.",
                      "instance": "id"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Delete one product related file",
        "operationId": "deleteOneProductRelatedFile",
        "description": "Deletes product's related file.",
        "tags": [
          "Product related files"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product's guid",
            "required": true,
            "example": "92d77e60-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "Related file id",
            "required": true,
            "example": 232,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/changes": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "changes",
                        "paginator"
                      ],
                      "properties": {
                        "changes": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "guid",
                              "changeTime",
                              "changeType"
                            ],
                            "properties": {
                              "guid": {
                                "$ref": "#/components/schemas/typeGuidUnlimited",
                                "description": "product identifier that can be used to query about the customer''s details."
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time, when the event happened. ISO 8601 format (`2017-12-12T22:08:01+0100`)."
                              },
                              "changeType": {
                                "type": "string",
                                "description": "type of event that happened with the entity. Possible values are following: `add`, `edit`, `delete`.",
                                "examples": [
                                  "add"
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Last product changes",
        "operationId": "getLastProductChanges",
        "description": "Returns the list of products, which were changed (added/edited or deleted). Endpoint is intended to determine\nthe changes after you have loaded the complete list of products and you need to know if any of these have been changed.\nGuaranteed history is 30 days, older data are deleted progressively.\n\n\nEach product in the log is mentioned only with its last change. For example, if the product was modified and then deleted,\nthe log will show only information about its deletion.\n\nCan be filtered by changeType = edit/delete parameter.\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\n\nEndpoint supports [Paging](#section/basic-principles/paging).\n\n\nDescription of object attributes with information about changes:\n\n|Field                                 | Causes product change | Notes.                                 |\n|--------------------------------------|---------------------|---------------------------------------|\n|guid                                  |Yes   |                                       |\n|type                                  |Yes     |                                       |\n|visibility                            |Yes    |                                       |\n|creationTime                          |Yes   |                                       |\n|changeTime                            |Yes          |                                       |\n|shortDescription                      |Yes       |                                       |\n|description                           |Yes  |                                       |\n|metaDescription                       |Yes |                                       |\n|name                                  |Yes     |                                       |\n|internalNote                          |Yes     |                                       |\n|defaultCategory                       |Yes                  |Only category - product relation change|\n|defaultCategory.guid                  |No      |                                       |\n|defaultCategory.name                  |No                      |                                       |\n|supplier                              |Yes                  |Only supplier    - product relation change|\n|supplier.guid                         |No                      |                                       |\n|supplier.name                         |No                      |                                       |\n|brand                                 |Yes                  |Only brand -    product relation change   |\n|brand.code                            |No                      |                                       |\n|brand.name                            |No                      |                                       |\n|categories                            |Yes                  |Only product -    category relation       |\n|categories.guid                       |No                      |                                       |\n|categories.parentGuid                 |No                      |                                       |\n|categories.name                       |No                      |                                       |\n|url                                   |Yes                  |Only for    relative url. Domain change no|\n|flags                                 |Yes                     |                                       |\n|flags.code                            |No                      |                                       |\n|flags.title                           |No                      |                                       |\n|flags.dateFrom                        |Yes                     |                                       |\n|flags.dateTo                          |Yes                     |                                       |\n|variants                              |Yes                     |                                       |\n|variants.code                         |Yes                     |                                       |\n|variants.ean                          |Yes                     |                                       |\n|variants.stock                        |no                      |                                       |\n|variants.unit                         |yes                     |                                       |\n|variants.weight                       |yes                     |                                       |\n|variants.visible                      |yes                     |                                       |\n|variants.minStockSupply               |yes                     |                                       |\n|variants.negativeStockAllowed         |yes                     |                                       |\n|variants.amountDecimalPlaces          |yes                     |                                       |\n|variants.price                        |yes                     |                                       |\n|variants.includingVat                 |yes                     |                                       |\n|variants.vatRate                      |yes                     |                                       |\n|variants.currencyCode                 |yes                     |                                       |\n|variants.actionPrice                  |yes                     |                                       |\n|variants.commonPrice                  |yes                     |                                       |\n|variants.manufacturerCode             |yes                     |                                       |\n|variants.pluCode                      |yes                     |                                       |\n|variants.isbn                         |yes                 |                                       |\n|variants.serialNo                     |yes                     |                                       |\n|variants.mpn                          |yes                     |                                       |\n|variants.availability                 |yes                     |                                       |\n|variants.availabilityWhenSoldOut      |yes                     |                                       |\n|variants.image                        |yes                     |                                       |\n|variants.parameters                   |yes                     |                                       |\n|variants.name                         |yes                     |                                       |\n|variants.measureUnit                  |yes                     |                                       |\n|variants.measureUnit.measureAmount    |yes                     |                                       |\n|variants.measureUnit.measureUnitId    |yes                     |                                       |\n|variants.measureUnit.packagingAmount  |yes                     |                                       |\n|variants.measureUnit.packagingUnitId  |yes                     |                                       |\n|variants.measureUnit.measureUnitName  |yes                     |                                       |\n|variants.measureUnit.packagingUnitName|yes                     |                                       |\n|variants.measureUnit.measurePrice     |yes                     |                                       |\n|variants.recyclingFee                 |yes                     |                                       |\n|images                                |yes                     |                                       |\n|images.name                           |yes                     |                                       |\n|images.priority                       |yes                     |                                       |\n|images.description                    |yes                     |                                       |\n|images.changeTime                     |yes                     |                                       |\n|images.seoName                        |yes                     |                                       |\n|images.cdnName                        |yes                     |                                       |\n|descriptiveParameters                 |yes                     |                                       |\n|descriptiveParameters.name            |yes                     |                                       |\n|descriptiveParameters.value           |yes                     |                                       |\n|descriptiveParameters.description     |yes                     |                                       |\n|descriptiveParameters.priority        |yes                     |                                       |\n|surchargeParameters                   |no                      |                                       |\n|surchargeParameters.code              |no                      |                                       |\n|surchargeParameters.name              |no                      |                                       |\n|surchargeParameters.displayName       |no                      |                                       |\n|surchargeParameters.description       |no                      |                                       |\n|surchargeParameters.priority          |no                      |                                       |\n|surchargeParameters.required          |no                      |                                       |\n|surchargeParameters.currency          |no                      |                                       |\n|surchargeParameters.includingVat      |no                      |                                       |\n|surchargeParameters.values            |no                      |                                       |\n|surchargeParameters.values.valueIndex |no                      |                                       |\n|surchargeParameters.values.description|no                      |                                       |\n|surchargeParameters.values.price      |no                      |                                       |\n|surchargeParameters.values.priority   |no                      |                                       |\n|surchargeParameters.values.visible    |no                      |                                       |\n|setItems                              |yes                     |                                       |\n|setItems.guid                         |no                      |                                       |\n|setItems.code                         |no                      |                                       |\n|setItems.amount                       |no                  |                                       |\n|filteringParameters                   |yes                  |Only    relation                          |\n|filteringParameters.code              |no                      |                                       |\n|filteringParameters.name              |no                      |                                       |\n|filteringParameters.displayName       |no                      |                                       |\n|filteringParameters.description       |no                      |                                       |\n|filteringParameters.priority          |yes                     |                                       |\n|filteringParameters.googleMapping     |no                      |                                       |\n|filteringParameters.values            |yes                  |Only    relation                          |\n|filteringParameters.values.valueIndex |no                      |                                       |\n|filteringParameters.values.name       |no                      |                                       |\n|filteringParameters.values.priority   |no                      |                                       |\n|filteringParameters.values.color      |no                      |                                       |\n|filteringParameters.values.image      |no                      |                                       |\n|warranty                              |yes                  |only    relation                          |\n|warranty.inMonths                     |no                      |                                       |\n|warranty.description                  |no                      |                                       |",
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "DateTime from which up to the present we are interested in the changes. + in the time zone",
            "required": true,
            "example": "2018-01-01T01:01:01+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeType",
            "in": "query",
            "description": "Returning only edit or delete type changed records",
            "required": false,
            "example": "edit",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 1000.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/categories": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "categories",
                        "paginator"
                      ],
                      "properties": {
                        "categories": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/category"
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of product categories",
        "operationId": "getListOfProductCategories",
        "description": "Returns the list of product categories.",
        "tags": [
          "Categories"
        ],
        "parameters": [
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 500. Max value is 1000.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/category"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Product category create",
        "operationId": "createProductCategory",
        "description": "Creates new category",
        "tags": [
          "Categories"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name"
                    ],
                    "properties": {
                      "guid": {
                        "$ref": "#/components/schemas/typeGuid",
                        "description": "Category GUID. Must be unique if set. Optional."
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Category name",
                        "examples": [
                          "Watches"
                        ]
                      },
                      "parentGuid": {
                        "$ref": "#/components/schemas/typeGuidNullable",
                        "description": "Parent category GUID. Category must exist if set. Optional."
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Category description. Max length 65535 bytes. Optional.",
                        "examples": [
                          "<p>Top category description</p>"
                        ]
                      },
                      "secondDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Bottom category description. Max length 65535 bytes. Optional.",
                        "examples": [
                          "<p>Bottom category description</p>"
                        ]
                      },
                      "imageName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Category image. File must exist on the server. Optional. (Use `sourceImageName` instead)",
                        "examples": [
                          "watches-category-image.jpg"
                        ],
                        "deprecated": true
                      },
                      "sourceImageName": {
                        "$ref": "#/components/schemas/typeFilenameNullable",
                        "description": "Name of file in [Files upload](#section/basic-principles/files-upload) storage to be set as category image.",
                        "examples": [
                          "image.png"
                        ]
                      },
                      "sortBefore": {
                        "$ref": "#/components/schemas/typeGuid",
                        "description": "Guid of category before which you want to move the category from the request. Not possible to use with `sortAfter`. Optional."
                      },
                      "sortAfter": {
                        "$ref": "#/components/schemas/typeGuid",
                        "description": "Guid of category after which you want to move the category from the request. Not possible to use with `sortBefore`. Optional."
                      },
                      "indexName": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Last part of url. Optional, generated from name if not set.",
                        "examples": [
                          "watches"
                        ]
                      },
                      "menuTitle": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Label for menu. Optional.",
                        "examples": [
                          "Watches"
                        ]
                      },
                      "title": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Meta tag title. Optional.",
                        "examples": [
                          "Watches"
                        ]
                      },
                      "metaTagDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Meta tag description. Optional.",
                        "examples": [
                          "Watches, Apple watch, black, white, garmin"
                        ]
                      },
                      "visible": {
                        "type": "boolean",
                        "description": "Whether the category is visible. Optional, default `true`.",
                        "examples": [
                          true
                        ]
                      },
                      "customerVisibility": {
                        "type": "string",
                        "enum": [
                          "all",
                          "registered",
                          "unregistered",
                          "admin-only"
                        ],
                        "description": "defines users of the e-shop who can see the category - `all` = all (default), `registered` = registered users, `unregistered` = non-registered users. Optional.",
                        "examples": [
                          "all"
                        ]
                      },
                      "productOrdering": {
                        "type": "string",
                        "enum": [
                          "default",
                          "most-selling",
                          "cheapest",
                          "most-expensive",
                          "oldest",
                          "newest",
                          "alphabetically",
                          "alphabetically-desc",
                          "product-code",
                          "product-code-desc",
                          "category-priority",
                          "category-priority-desc"
                        ],
                        "description": "Defines how products are sorted in a category. See also [Sorting of products in category](#section/code-lists/sorting-of-products-in-category) code list.",
                        "examples": [
                          "alphabetically"
                        ]
                      },
                      "similarProductsCategory": {
                        "$ref": "#/components/schemas/typeGuidNullable",
                        "description": "Similar category guid. Optional."
                      },
                      "relatedProductsCategory": {
                        "$ref": "#/components/schemas/typeGuidNullable",
                        "description": "Related category guid. Optional."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/categories/{categoryGuid}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/category"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Product category detail",
        "operationId": "getProductCategoryDetail",
        "description": "Returns category info",
        "tags": [
          "Categories"
        ],
        "parameters": [
          {
            "name": "categoryGuid",
            "in": "path",
            "description": "Product category.",
            "required": true,
            "example": "5c498fb7-70ac-11e9-9208-08002774f818",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/category"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Product category update",
        "operationId": "updateProductCategory",
        "description": "Updates existing category.",
        "tags": [
          "Categories"
        ],
        "parameters": [
          {
            "name": "categoryGuid",
            "in": "path",
            "description": "Category's guid",
            "required": true,
            "example": "bffa3b98-d968-11e0-b04f-57a43310b728",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/categoryUpdate"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "category-not-found",
                      "message": "Category with identificator\n\"5c499200-70ac-11e9-9208-08002774f818\" not found.",
                      "instance": "5c499200-70ac-11e9-9208-08002774f818"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "category-used-by-products",
                      "message": "Category \"5c499200-70ac-11e9-9208-08002774f818\" cannot\nbe deleted, because some products are assigned to it.",
                      "instance": "5c499200-70ac-11e9-9208-08002774f818"
                    },
                    {
                      "errorCode": "category-has-children",
                      "message": "Category \"5c499200-70ac-11e9-9208-08002774f818\" cannot\nbe deleted, because it is a parent category.",
                      "instance": "5c499200-70ac-11e9-9208-08002774f818"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Product category deletion",
        "operationId": "deleteProductCategory",
        "description": "Deletes product category as per entered `categoryGuid`. If successful,\nreturns the code 200.\n\nIf the category does not exist within the e-shop, a 404 code is\nreturned.\n\nIf the category cannot be deleted, because it is used by some product or\nhas children, a 409 code is returned.\n\nOptional parameter `deleteUsed` allows deleting categories used by\nproducts. The products are marked as changed.\n\nOptional parameter `deleteChildren` allows deleting categories with\nchild categories. The children are deleted too.",
        "tags": [
          "Categories"
        ],
        "parameters": [
          {
            "name": "categoryGuid",
            "in": "path",
            "description": "Category guid",
            "required": true,
            "example": "5c499200-70ac-11e9-9208-08002774f818",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deleteUsed",
            "in": "query",
            "description": "Allows deleting categories used by products if set to `true`",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "deleteChildren",
            "in": "query",
            "description": "Allows deleting categories with children if set to `true`",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/categories/batch": {
      "patch": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "file-not-found",
                      "message": "File \"https://jsonlines.org/categories.jsonl\" not found.",
                      "instance": "batchFileUrlPath"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "batch-job-already-running",
                      "message": "Concurrent job already running!",
                      "instance": "categories-batch-update"
                    },
                    {
                      "errorCode": "another-import-is-running",
                      "message": "Another import is running. Please try again later.",
                      "instance": "categories-batch-update"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Product category BATCH update",
        "operationId": "updateProductCategoryBatch",
        "description": "This endpoint allows you to update multiple categories at once. Batch\nupdate is processed asynchronously in same way as for example products\nsnapshot, but it does not have `resultUrl` with categories to download in\nresponse. Instead, you can check attribute `log` which contains\nsuccessfully updated categories and errors.\n\n\n\nSee how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\n\n\nFile with data for update must be in JSONL ([jsonlines](https://jsonlines.org/)) format. Each line must contain one\ncategory in JSON format. Maximum size of file is 100MB.\n\n\n\nStructure of JSON row is same as structure of JSON for single category\nupdate above. You can add one extra optional attribute \"language\" which defines language of updating category, so you are able\nto update multiple language attributes (i.e. \"name\", \"description\" etc.) of one category in one batch file.\n\n\n\nIf language is not defined, default language of shop is used. See [Category batch update schema](/shoptet-api/openapi/batch/categorybatchupdate) for more details.\n\n\n\nAsynchronous job process jsonl file row by row and try to validate and\nsave data. If there is any error, row is skipped and error is logged,\nbut it does not stop processing of other rows.\n\n\n\nIn Log, every product is identified by its position in file (starting from 1).",
        "tags": [
          "Categories"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "batchFileUrlPath"
                ],
                "properties": {
                  "batchFileUrlPath": {
                    "type": "string",
                    "description": "Url to batch file with products data. File must be in JSONL format.",
                    "examples": [
                      "https://cdn.myshoptet.com/batch-products-update.jsonl"
                    ]
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-async-endpoint": true
      }
    },
    "/api/categories/products-priority/batch": {
      "patch": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "file-not-found",
                      "message": "File \"https://jsonlines.org/category-product-priority.jsonl\" not found.",
                      "instance": "batchFileUrlPath"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "batch-job-already-running",
                      "message": "Concurrent job already running!",
                      "instance": "categories-batch-update"
                    },
                    {
                      "errorCode": "another-import-is-running",
                      "message": "Another import is running. Please try again later.",
                      "instance": "categories-batch-update"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Category products priority BATCH update",
        "operationId": "updateCategoryProductsPriorityBatch",
        "description": "This endpoint allows you to update multiple categories with product priorities at once. Batch\nupdate is processed asynchronously in same way as for example products\nsnapshot, but it does not have `resultUrl` in response. Instead, you can check attribute `log` which contains\nsuccessfully updated categories and errors.\n\n\n\nSee how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\n\n\nFile with data for update must be in JSONL ([jsonlines](https://jsonlines.org/)) format. Each line must contain one\ncategory with product priorities in JSON format. Maximum size of file is 100MB.\n\n\n\nStructure of JSON row is defined by [Category product priority batch update schema](/shoptet-api/openapi/batch/categoryproductprioritybatchupdate).\n\n\n\nAsynchronous job process jsonl file row by row and try to validate and\nsave data. If there is any error, row is skipped and error is logged,\nbut it does not stop processing of other rows.\n\n\n\nIn Log, every product is identified by its position in file (starting from 1).",
        "tags": [
          "Categories"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "batchFileUrlPath"
                ],
                "properties": {
                  "batchFileUrlPath": {
                    "type": "string",
                    "description": "Url to batch file with products data. File must be in JSONL format.",
                    "examples": [
                      "https://cdn.myshoptet.com/batch-products-update.jsonl"
                    ]
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-async-endpoint": true
      }
    },
    "/api/categories/{categoryGuid}/productsPriority": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "categoryProducts",
                        "paginator"
                      ],
                      "properties": {
                        "categoryProducts": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "productGuid",
                              "priority"
                            ],
                            "properties": {
                              "productGuid": {
                                "$ref": "#/components/schemas/typeGuid",
                                "description": "Global unique permanent product identifier.",
                                "examples": [
                                  "0198418d-acde-708e-9389-0c5113d9b5f3"
                                ]
                              },
                              "priority": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "Order in the list",
                                "examples": [
                                  100
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of products order in category",
        "operationId": "getListOfProductsOrderInCategory",
        "description": "Retrieves products and their priorities within a category.",
        "tags": [
          "Categories"
        ],
        "parameters": [
          {
            "name": "categoryGuid",
            "in": "path",
            "description": "Product category.",
            "required": true,
            "example": "5c498fb7-70ac-11e9-9208-08002774f818",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 500. Max value is 2000.",
            "example": 888,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "unknown-product",
                      "message": "Product \"19ee3c7c-92c7-11e9-9373-08002774f818\" does not\nexist. Skipped.",
                      "instance": "19ee3c7c-92c7-11e9-9373-08002774f818"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Update product order in category",
        "operationId": "updateProductOrderInCategory",
        "description": "Using this endpoint you can update product priority within a category.\n\nYou can request multiple updates at once; the maximum is 300 updates per\nrequest.\n\nIn case of a partial failure, the response code will be `200 OK` and the\nerrorneous items will be\n\nlisted in the `errors` array. In case of a complete failure, response\ncode will be `400 BAD REQUEST`.\n\nMinimum priority is 0, maximum priority is 65535.",
        "tags": [
          "Categories"
        ],
        "parameters": [
          {
            "name": "categoryGuid",
            "in": "path",
            "description": "Product category.",
            "required": true,
            "example": "5c498fb7-70ac-11e9-9208-08002774f818",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "productGuid",
                        "priority"
                      ],
                      "properties": {
                        "productGuid": {
                          "$ref": "#/components/schemas/typeGuidUnlimited",
                          "description": "GUID of the product",
                          "examples": [
                            "0198418d-acde-708e-9389-0c5113d9b5f3"
                          ]
                        },
                        "priority": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 0,
                          "maximum": 65535,
                          "description": "Priority of the product",
                          "examples": [
                            100
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/parametric-categories": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "parametricCategories"
                      ],
                      "properties": {
                        "parametricCategories": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "guid",
                              "name",
                              "indexName",
                              "url",
                              "description",
                              "secondDescription",
                              "image",
                              "title",
                              "metaTagDescription",
                              "originalCategoryGuid",
                              "showInList",
                              "showInDetail"
                            ],
                            "properties": {
                              "guid": {
                                "type": "string",
                                "description": "unique identifier of the category",
                                "examples": [
                                  "1b02cb8e-d7b5-11e0-9a5c-feab5ed617ed"
                                ]
                              },
                              "name": {
                                "type": "string",
                                "description": "category name",
                                "examples": [
                                  "Watches: Space grey"
                                ]
                              },
                              "indexName": {
                                "type": "string",
                                "description": "ending part of category URL",
                                "examples": [
                                  "watches-space-grey"
                                ]
                              },
                              "url": {
                                "type": "string",
                                "description": "category URL in the e-shop",
                                "examples": [
                                  "https://classic.shoptet.cz/watches-space-grey/"
                                ]
                              },
                              "description": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "top category description",
                                "examples": [
                                  "<p>Horní popis kategorie</p>"
                                ]
                              },
                              "secondDescription": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "bottom category description",
                                "examples": [
                                  "<p>Dolní popis kategorie</p>"
                                ]
                              },
                              "image": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "header image",
                                "examples": [
                                  "https://beta.shoptet.cz/user/categories/thumb/supreme-plush-santa-hat.jpg"
                                ]
                              },
                              "title": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "HTML title element in the HTML header of the category page",
                                "examples": [
                                  "Watches space grey nice ones"
                                ]
                              },
                              "metaTagDescription": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "HTML META header `Description` in category page",
                                "examples": [
                                  "Watches, space grey, nice, watch"
                                ]
                              },
                              "originalCategoryGuid": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "unique identifier of the original category (from which was the parametric category created)",
                                "examples": [
                                  "1b02cb8e-d7b5-11e0-9a5c-feab5ed617ed"
                                ]
                              },
                              "showInList": {
                                "type": "boolean",
                                "description": "flag, whether the category is visible in product list",
                                "examples": [
                                  true
                                ]
                              },
                              "showInDetail": {
                                "type": "boolean",
                                "description": "flag, whether the category is visible in product detail",
                                "examples": [
                                  true
                                ]
                              },
                              "parameters": {
                                "type": "array",
                                "description": "parameters of the parametric category (requires `parameters` include in the request url)",
                                "items": {
                                  "$ref": "#/components/schemas/parameterValueCombinations"
                                }
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Unable to process this request as \"advancedSeo\" module is not active.",
                      "instance": "advancedSeo"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "List of parametric categories",
        "operationId": "getListOfParametricCategories",
        "description": "Returns the list of product categories.",
        "tags": [
          "Parametric categories"
        ],
        "parameters": [
          {
            "name": "include",
            "in": "query",
            "description": "Include additional data in response. Possible values: `parameters`.",
            "example": "parameters",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 100.",
            "example": 90,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "parametricCategory"
                      ],
                      "properties": {
                        "parametricCategory": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "guid",
                            "name",
                            "indexName",
                            "url",
                            "description",
                            "secondDescription",
                            "image",
                            "title",
                            "metaTagDescription",
                            "originalCategoryGuid",
                            "showInList",
                            "showInDetail"
                          ],
                          "properties": {
                            "guid": {
                              "type": "string",
                              "description": "unique identifier of the category",
                              "examples": [
                                "1b02cb8e-d7b5-11e0-9a5c-feab5ed617ed"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "category name",
                              "examples": [
                                "Watches: Space grey"
                              ]
                            },
                            "indexName": {
                              "type": "string",
                              "description": "ending part of category URL",
                              "examples": [
                                "watches-space-grey"
                              ]
                            },
                            "url": {
                              "type": "string",
                              "description": "category URL in the e-shop",
                              "examples": [
                                "https://classic.shoptet.cz/watches-space-grey/"
                              ]
                            },
                            "description": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "top category description",
                              "examples": [
                                "<p>Horní popis kategorie</p>"
                              ]
                            },
                            "secondDescription": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "bottom category description",
                              "examples": [
                                "<p>Dolní popis kategorie</p>"
                              ]
                            },
                            "image": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "header image",
                              "examples": [
                                "https://beta.shoptet.cz/user/categories/thumb/supreme-plush-santa-hat.jpg"
                              ]
                            },
                            "title": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "HTML title element in the HTML header of the category page",
                              "examples": [
                                "Watches space grey nice ones"
                              ]
                            },
                            "metaTagDescription": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "HTML META header `Description` in category page",
                              "examples": [
                                "Watches, spacegrey, nice, watch"
                              ]
                            },
                            "originalCategoryGuid": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "unique identifier of the original category (from which was the parametric category created)",
                              "examples": [
                                "1b02cb8e-d7b5-11e0-9a5c-feab5ed617ed"
                              ]
                            },
                            "showInList": {
                              "type": "boolean",
                              "description": "flag, whether the category is visible in product list",
                              "examples": [
                                true
                              ]
                            },
                            "showInDetail": {
                              "type": "boolean",
                              "description": "flag, whether the category is visible in product detail",
                              "examples": [
                                true
                              ]
                            },
                            "parameters": {
                              "type": "array",
                              "description": "parameters of the parametric category (requires `parameters` include in the request url)",
                              "items": {
                                "$ref": "#/components/schemas/parameterValueCombinations"
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Unable to process this request as \"advancedSeo\" module is not active.",
                      "instance": "advancedSeo"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Category with given \\\"11f7d2f4-4c42-11e7-819d-002590dc5efc\\\" does not exist.",
                      "instance": "integration-call"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Combination of the parameterCodes does not exists for the specified category.",
                      "instance": "integration-call"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Parametric category with the same combination of valueCodes already exists.",
                      "instance": "integration-call"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "One or more valueCodes does not exist for the specified parameters.",
                      "instance": "integration-call"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "File image.png does not exist in temp upload storage.",
                      "instance": "data.sourceImageName"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Creation of parametric category",
        "operationId": "createParametricCategory",
        "description": "Creates a new combination for a parametric category.\n\nA parametric category for the selected parameter codes and the default category must exist.\nYou can create only one parametric category combination for each combination of parameterCode and valueCode.\n\nThe \"Advanced SEO\" module must be active to use this endpoint.",
        "tags": [
          "Parametric categories"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name",
                      "originalCategoryGuid",
                      "parameters"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Parametric category name",
                        "examples": [
                          "Green XL"
                        ]
                      },
                      "originalCategoryGuid": {
                        "$ref": "#/components/schemas/typeGuid",
                        "description": "Unique identifier of the original category from which the parametric category is created",
                        "examples": [
                          "1b02cb8e-d7b5-11e0-9a5c-feab5ed617ed"
                        ]
                      },
                      "parameters": {
                        "type": "array",
                        "description": "Parameters of the parametric category",
                        "items": {
                          "$ref": "#/components/schemas/parameterValueCombinationsCodes"
                        },
                        "minItems": 1,
                        "maxItems": 4
                      },
                      "indexName": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Last part of url. Optional, generated from `valueCodes` if not set.",
                        "examples": [
                          "green-xl"
                        ]
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Top parametric category description. Max length 65535 bytes. Optional.",
                        "examples": [
                          "<p>Top parametric category description</p>"
                        ]
                      },
                      "secondDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Bottom parametric category description. Max length 65535 bytes. Optional.",
                        "examples": [
                          "<p>Bottom parametric category description</p>"
                        ]
                      },
                      "sourceImageName": {
                        "$ref": "#/components/schemas/typeFilenameNullable",
                        "description": "Name of file in [Files upload](#section/basic-principles/files-upload) storage to be set as parametric category image.",
                        "examples": [
                          "image.png"
                        ]
                      },
                      "title": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Meta tag title. Optional.",
                        "examples": [
                          "Green XL t-shirt"
                        ]
                      },
                      "metaTagDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Meta tag description. Optional.",
                        "examples": [
                          "Green t-shirt, t-shirt xl, green, xl"
                        ]
                      },
                      "showInList": {
                        "type": [
                          "boolean",
                          "null"
                        ],
                        "description": "Flag, whether the parametric category is visible in category list. Default is `false`. Optional",
                        "examples": [
                          true
                        ]
                      },
                      "showInDetail": {
                        "type": [
                          "boolean",
                          "null"
                        ],
                        "description": "Flag, whether the parametric category is visible in product detail. Default is `true`. Optional",
                        "examples": [
                          true
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "include",
            "in": "query",
            "description": "Include additional data in response. Possible values: `parameters`.",
            "example": "parameters",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/parametric-categories/{categoryGuid}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "parametricCategory"
                      ],
                      "properties": {
                        "parametricCategory": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "guid",
                            "name",
                            "indexName",
                            "url",
                            "description",
                            "secondDescription",
                            "image",
                            "title",
                            "metaTagDescription",
                            "originalCategoryGuid",
                            "showInList",
                            "showInDetail"
                          ],
                          "properties": {
                            "guid": {
                              "type": "string",
                              "description": "unique identifier of the category",
                              "examples": [
                                "1b02cb8e-d7b5-11e0-9a5c-feab5ed617ed"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "category name",
                              "examples": [
                                "Watches: Space grey"
                              ]
                            },
                            "indexName": {
                              "type": "string",
                              "description": "ending part of category URL",
                              "examples": [
                                "watches-space-grey"
                              ]
                            },
                            "url": {
                              "type": "string",
                              "description": "category URL in the e-shop",
                              "examples": [
                                "https://classic.shoptet.cz/watches-space-grey/"
                              ]
                            },
                            "description": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "top category description",
                              "examples": [
                                "<p>Horní popis kategorie</p>"
                              ]
                            },
                            "secondDescription": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "bottom category description",
                              "examples": [
                                "<p>Dolní popis kategorie</p>"
                              ]
                            },
                            "image": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "header image",
                              "examples": [
                                "https://beta.shoptet.cz/user/categories/thumb/supreme-plush-santa-hat.jpg"
                              ]
                            },
                            "title": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "HTML title element in the HTML header of the category page",
                              "examples": [
                                "Watches space grey nice ones"
                              ]
                            },
                            "metaTagDescription": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "HTML META header `Description` in category page",
                              "examples": [
                                "Watches, spacegrey, nice, watch"
                              ]
                            },
                            "originalCategoryGuid": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "unique identifier of the original category (from which was the parametric category created)",
                              "examples": [
                                "1b02cb8e-d7b5-11e0-9a5c-feab5ed617ed"
                              ]
                            },
                            "showInList": {
                              "type": "boolean",
                              "description": "flag, whether the category is visible in product list",
                              "examples": [
                                true
                              ]
                            },
                            "showInDetail": {
                              "type": "boolean",
                              "description": "flag, whether the category is visible in product detail",
                              "examples": [
                                true
                              ]
                            },
                            "parameters": {
                              "type": "array",
                              "description": "parameters of the parametric category (requires `parameters` include in the request url)",
                              "items": {
                                "$ref": "#/components/schemas/parameterValueCombinations"
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Unable to process this request as \"advancedSeo\" module is not active.",
                      "instance": "advancedSeo"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "parametric-category-not-found",
                      "message": "Parametric category \"1e3f3f3f-3f3f-63ca-b93f-02423f1f0005\" was not found.",
                      "instance": "1e3f3f3f-3f3f-63ca-b93f-02423f1f0005"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Parametric category detail",
        "operationId": "getParametricCategoryDetail",
        "description": "Returns parametric category info.",
        "tags": [
          "Parametric categories"
        ],
        "parameters": [
          {
            "name": "categoryGuid",
            "in": "path",
            "description": "Guid of parametric category.",
            "required": true,
            "example": "5c498fb7-70ac-11e9-9208-08002774f818",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "parametricCategory"
                      ],
                      "properties": {
                        "parametricCategory": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "guid",
                            "name",
                            "indexName",
                            "url",
                            "description",
                            "secondDescription",
                            "image",
                            "title",
                            "metaTagDescription",
                            "originalCategoryGuid",
                            "showInList",
                            "showInDetail"
                          ],
                          "properties": {
                            "guid": {
                              "type": "string",
                              "description": "unique identifier of the category",
                              "examples": [
                                "1b02cb8e-d7b5-11e0-9a5c-feab5ed617ed"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "category name",
                              "examples": [
                                "Watches: Space grey"
                              ]
                            },
                            "indexName": {
                              "type": "string",
                              "description": "ending part of category URL",
                              "examples": [
                                "watches-space-grey"
                              ]
                            },
                            "url": {
                              "type": "string",
                              "description": "category URL in the e-shop",
                              "examples": [
                                "https://classic.shoptet.cz/watches-space-grey/"
                              ]
                            },
                            "description": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "top category description",
                              "examples": [
                                "<p>Horní popis kategorie</p>"
                              ]
                            },
                            "secondDescription": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "bottom category description",
                              "examples": [
                                "<p>Dolní popis kategorie</p>"
                              ]
                            },
                            "image": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "header image",
                              "examples": [
                                "https://beta.shoptet.cz/user/categories/thumb/supreme-plush-santa-hat.jpg"
                              ]
                            },
                            "title": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "HTML title element in the HTML header of the category page",
                              "examples": [
                                "Watches space grey nice ones"
                              ]
                            },
                            "metaTagDescription": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "HTML META header `Description` in category page",
                              "examples": [
                                "Watches, spacegrey, nice, watch"
                              ]
                            },
                            "originalCategoryGuid": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "unique identifier of the original category (from which was the parametric category created)",
                              "examples": [
                                "1b02cb8e-d7b5-11e0-9a5c-feab5ed617ed"
                              ]
                            },
                            "showInList": {
                              "type": "boolean",
                              "description": "flag, whether the category is visible in product list",
                              "examples": [
                                true
                              ]
                            },
                            "showInDetail": {
                              "type": "boolean",
                              "description": "flag, whether the category is visible in product detail",
                              "examples": [
                                true
                              ]
                            },
                            "parameters": {
                              "type": "array",
                              "description": "parameters of the parametric category (requires `parameters` include in the request url)",
                              "items": {
                                "$ref": "#/components/schemas/parameterValueCombinations"
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Unable to process this request as \"advancedSeo\" module is not active.",
                      "instance": "advancedSeo"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "parametric-category-not-found",
                      "message": "Parametric category \"1e3f3f3f-3f3f-63ca-b93f-02423f1f0005\" was not found.",
                      "instance": "1e3f3f3f-3f3f-63ca-b93f-02423f1f0005"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Update of parametric category",
        "operationId": "updateParametricCategory",
        "description": "Updates existing parametric category. \n\nThe \"Advanced SEO\" module must be active to use this endpoint.\n\nThis endpoint is language dependent. While active module \"Foreign languages\" \nyou can use language query parameter to specify the language of updated parametric category.",
        "tags": [
          "Parametric categories"
        ],
        "parameters": [
          {
            "name": "categoryGuid",
            "in": "path",
            "description": "Guid of parametric category.",
            "required": true,
            "example": "5c498fb7-70ac-11e9-9208-08002774f818",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Parametric category name",
                        "examples": [
                          "Green XL"
                        ]
                      },
                      "indexName": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Last part of url. Optional, generated from `valueCodes` if not set.",
                        "examples": [
                          "green-xl"
                        ]
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Top parametric category description. Max length 65535 bytes. Optional.",
                        "examples": [
                          "<p>Top parametric category description</p>"
                        ]
                      },
                      "secondDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Bottom parametric category description. Max length 65535 bytes. Optional.",
                        "examples": [
                          "<p>Bottom parametric category description</p>"
                        ]
                      },
                      "sourceImageName": {
                        "$ref": "#/components/schemas/typeFilenameNullable",
                        "description": "Name of file in [Files upload](#section/basic-principles/files-upload) storage to be set as parametric category image.",
                        "examples": [
                          "image.png"
                        ]
                      },
                      "title": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Meta tag title. Optional.",
                        "examples": [
                          "Green XL t-shirt"
                        ]
                      },
                      "metaTagDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Meta tag description. Optional.",
                        "examples": [
                          "Green t-shirt, t-shirt xl, green, xl"
                        ]
                      },
                      "showInList": {
                        "type": [
                          "boolean",
                          "null"
                        ],
                        "description": "Flag, whether the parametric category is visible in category list. Default is `false`. Optional",
                        "examples": [
                          true
                        ]
                      },
                      "showInDetail": {
                        "type": [
                          "boolean",
                          "null"
                        ],
                        "description": "Flag, whether the parametric category is visible in product detail. Default is `true`. Optional",
                        "examples": [
                          true
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Unable to process this request as \"advancedSeo\" module is not active.",
                      "instance": "advancedSeo"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "parametric-category-not-found",
                      "message": "Parametric category \"1e3f3f3f-3f3f-63ca-b93f-02423f1f0005\" was not found.",
                      "instance": "1e3f3f3f-3f3f-63ca-b93f-02423f1f0005"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Delete of parametric category",
        "operationId": "deleteParametricCategory",
        "description": "Delete existing parametric category. The \"Advanced SEO\" module must be active to use this endpoint.",
        "tags": [
          "Parametric categories"
        ],
        "parameters": [
          {
            "name": "categoryGuid",
            "in": "path",
            "description": "Guid of parametric category.",
            "required": true,
            "example": "5c498fb7-70ac-11e9-9208-08002774f818",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/flags": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "flags"
                      ],
                      "properties": {
                        "flags": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "title",
                              "system",
                              "color",
                              "showInDetail",
                              "showInCategory"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "Unique code of the flag",
                                "examples": [
                                  "action"
                                ]
                              },
                              "title": {
                                "type": "string",
                                "description": "flag name. This text is displayed to customers in the e-shop.",
                                "examples": [
                                  "Action"
                                ]
                              },
                              "system": {
                                "type": "boolean",
                                "description": "Is it a system flag common for all e-shops?",
                                "examples": [
                                  true
                                ]
                              },
                              "color": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "color of the product flag displayed in the e-shop.",
                                "examples": [
                                  "#ffc702"
                                ]
                              },
                              "showInDetail": {
                                "type": "boolean",
                                "description": "Should the flag be displayed in the product detail?",
                                "examples": [
                                  true
                                ]
                              },
                              "showInCategory": {
                                "type": "boolean",
                                "description": "Should the flag be displayed in the category product list?",
                                "examples": [
                                  true
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of products flags",
        "operationId": "getListOfProductsFlags",
        "description": "Returns the list of product flags within the e-shop.",
        "tags": [
          "Flags"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "flags"
                      ],
                      "properties": {
                        "flags": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "title",
                              "system",
                              "color",
                              "showInDetail",
                              "showInCategory"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "Unique code of the flag",
                                "examples": [
                                  "action"
                                ]
                              },
                              "title": {
                                "type": "string",
                                "description": "flag name. This text is displayed to customers in the e-shop.",
                                "examples": [
                                  "Action"
                                ]
                              },
                              "system": {
                                "type": "boolean",
                                "description": "Is it a system flag common for all e-shops?",
                                "examples": [
                                  true
                                ]
                              },
                              "color": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "color of the product flag displayed in the e-shop.",
                                "examples": [
                                  "#ffc702"
                                ]
                              },
                              "showInDetail": {
                                "type": "boolean",
                                "description": "Should the flag be displayed in the product detail?",
                                "examples": [
                                  true
                                ]
                              },
                              "showInCategory": {
                                "type": "boolean",
                                "description": "Should the flag be displayed in the category product list?",
                                "examples": [
                                  true
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Product flag insertion",
        "operationId": "createProductFlag",
        "description": "",
        "tags": [
          "Flags"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "title"
                    ],
                    "properties": {
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Name of flag.",
                        "examples": [
                          "Sale"
                        ]
                      },
                      "color": {
                        "$ref": "#/components/schemas/typeColor",
                        "description": "Color of the parameter in hex format. NULL forces default color."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/flags/{code}": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "flags"
                      ],
                      "properties": {
                        "flags": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "title",
                              "system",
                              "color",
                              "showInDetail",
                              "showInCategory"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "Unique code of the flag",
                                "examples": [
                                  "action"
                                ]
                              },
                              "title": {
                                "type": "string",
                                "description": "flag name. This text is displayed to customers in the e-shop.",
                                "examples": [
                                  "Action"
                                ]
                              },
                              "system": {
                                "type": "boolean",
                                "description": "Is it a system flag common for all e-shops?",
                                "examples": [
                                  true
                                ]
                              },
                              "color": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "color of the product flag displayed in the e-shop.",
                                "examples": [
                                  "#ffc702"
                                ]
                              },
                              "showInDetail": {
                                "type": "boolean",
                                "description": "Should the flag be displayed in the product detail?",
                                "examples": [
                                  true
                                ]
                              },
                              "showInCategory": {
                                "type": "boolean",
                                "description": "Should the flag be displayed in the category product list?",
                                "examples": [
                                  true
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Product flag update",
        "operationId": "updateProductFlag",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "action",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "description": "Updates the flag.",
        "tags": [
          "Flags"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Name of flag.",
                        "examples": [
                          "Sale"
                        ]
                      },
                      "color": {
                        "$ref": "#/components/schemas/typeColor",
                        "description": "Color of the parameter in hex format. NULL forces default color."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Product flag delete",
        "operationId": "deleteProductFlag",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "action",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "description": "Deletes the flag. System flags cannot be deleted.",
        "tags": [
          "Flags"
        ]
      }
    },
    "/api/products/measure-units": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "measureUnits"
                      ],
                      "properties": {
                        "measureUnits": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "id",
                              "unitName",
                              "priority",
                              "ratios"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Measure unit ID",
                                "examples": [
                                  -16
                                ]
                              },
                              "unitName": {
                                "type": "string",
                                "description": "Measure unit name",
                                "examples": [
                                  "kg"
                                ]
                              },
                              "priority": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "Unit priority specifies the order of measure units.",
                                "examples": [
                                  11
                                ]
                              },
                              "ratios": {
                                "type": "array",
                                "description": "List of other units which are convertible to this one.",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "required": [
                                    "unitId",
                                    "ratio"
                                  ],
                                  "properties": {
                                    "unitId": {
                                      "type": "integer",
                                      "description": "Unit ID",
                                      "examples": [
                                        5
                                      ]
                                    },
                                    "ratio": {
                                      "$ref": "#/components/schemas/typeUnitRatio"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of products measure units",
        "operationId": "getListOfProductsMeasureUnits",
        "description": "Returns the list of product measure units within the e-shop.",
        "tags": [
          "Measure units"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/availabilities": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "availabilities",
                        "defaultAvailabilities"
                      ],
                      "properties": {
                        "availabilities": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "id",
                              "name",
                              "description",
                              "color",
                              "system",
                              "onStockInHours",
                              "deliveryInHours",
                              "googleAvailability"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "ID of the availability",
                                "examples": [
                                  -5
                                ]
                              },
                              "name": {
                                "type": "string",
                                "description": "Name of the availability",
                                "examples": [
                                  "On request"
                                ]
                              },
                              "indexName": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Code name of the availability",
                                "examples": [
                                  "on-request"
                                ]
                              },
                              "description": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Description of the availability",
                                "examples": [
                                  "Ordered from an external partner, details on request."
                                ]
                              },
                              "color": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Color hex code of the availability",
                                "examples": [
                                  "#cb0000"
                                ]
                              },
                              "system": {
                                "type": "boolean",
                                "description": "Is availability default (system) and not user made?",
                                "examples": [
                                  true
                                ]
                              },
                              "onStockInHours": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "When will a product be on stock. (in hours)",
                                "examples": [
                                  48
                                ]
                              },
                              "deliveryInHours": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "When will a product be delivered. (in hours)",
                                "examples": [
                                  48
                                ]
                              },
                              "googleAvailability": {
                                "type": [
                                  "object",
                                  "null"
                                ],
                                "additionalProperties": false,
                                "description": "Google availability info",
                                "required": [
                                  "id",
                                  "name"
                                ],
                                "properties": {
                                  "id": {
                                    "type": "integer",
                                    "description": "ID of the google availability",
                                    "examples": [
                                      1
                                    ]
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "Name of the google availability",
                                    "examples": [
                                      "On stock"
                                    ]
                                  }
                                }
                              }
                            }
                          }
                        },
                        "defaultAvailabilities": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "onStock",
                            "soldOutNegativeStockAllowed",
                            "soldOutNegativeStockForbidden"
                          ],
                          "properties": {
                            "onStock": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "ID of default availability when product is on stock",
                              "examples": [
                                1
                              ]
                            },
                            "soldOutNegativeStockAllowed": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "ID of default availability when sold out and buying sold out products is allowed",
                              "examples": [
                                -4
                              ]
                            },
                            "soldOutNegativeStockForbidden": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "ID of default availability when sold out and buying sold out products is forbidden",
                              "examples": [
                                -2
                              ]
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of products availabilities",
        "operationId": "getListOfProductsAvailabilities",
        "description": "Returns the list of product availabilities within the e-shop and default availabilities ids.",
        "tags": [
          "Product availabilities"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "availability"
                      ],
                      "properties": {
                        "availability": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "id",
                            "name",
                            "description",
                            "color",
                            "system",
                            "onStockInHours",
                            "deliveryInHours",
                            "googleAvailability"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "ID of the availability",
                              "examples": [
                                -5
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "Name of the availability",
                              "examples": [
                                "On request"
                              ]
                            },
                            "indexName": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Code name of the availability",
                              "examples": [
                                "on-request"
                              ]
                            },
                            "description": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Description of the availability",
                              "examples": [
                                "Ordered from an external partner, details on request."
                              ]
                            },
                            "color": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Color hex code of the availability",
                              "examples": [
                                "#cb0000"
                              ]
                            },
                            "system": {
                              "type": "boolean",
                              "description": "Is availability default (system) and not user made?",
                              "examples": [
                                true
                              ]
                            },
                            "onStockInHours": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "When will a product be on stock. (in hours)",
                              "examples": [
                                48
                              ]
                            },
                            "deliveryInHours": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "When will a product be delivered. (in hours)",
                              "examples": [
                                48
                              ]
                            },
                            "googleAvailability": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "additionalProperties": false,
                              "description": "Google availability info",
                              "required": [
                                "id",
                                "name"
                              ],
                              "properties": {
                                "id": {
                                  "type": "integer",
                                  "description": "ID of the google availability",
                                  "examples": [
                                    1
                                  ]
                                },
                                "name": {
                                  "type": "string",
                                  "description": "Name of the google availability",
                                  "examples": [
                                    "On stock"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Google availability id \\\"2\\\" is not supported.",
                      "instance": "data.googleAvailabilityId"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Product availability name \\\"In stock\\\" already exists.",
                      "instance": "data.name"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Product availability index name \\\"in-stock\\\" already exists.",
                      "instance": "data.indexName"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Product availability creation",
        "operationId": "createProductAvailability",
        "description": "Creates a new product availability.",
        "tags": [
          "Product availabilities"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "Name of the availability",
                        "examples": [
                          "On request"
                        ],
                        "minLength": 1
                      },
                      "indexName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Code name of the availability",
                        "examples": [
                          "on-request"
                        ],
                        "maxLength": 16
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Description of the availability",
                        "examples": [
                          "Ordered from an external partner, details on request."
                        ]
                      },
                      "color": {
                        "$ref": "#/components/schemas/typeColor",
                        "description": "Color hex code of the availability",
                        "examples": [
                          "#cb0000"
                        ]
                      },
                      "onStockInHours": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "When will a product be on stock. (in hours)",
                        "examples": [
                          48
                        ],
                        "maximum": 2500
                      },
                      "deliveryInHours": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "When will a product be delivered. (in hours)",
                        "examples": [
                          48
                        ],
                        "maximum": 2500
                      },
                      "googleAvailabilityId": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "ID of the google availability. Possible values: `1` (in stock), `3` (out of stock), `4` (preorder), `5` (backorder).",
                        "examples": [
                          1,
                          3,
                          4,
                          5
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/availabilities/{id}": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "availability"
                      ],
                      "properties": {
                        "availability": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "id",
                            "name",
                            "description",
                            "color",
                            "system",
                            "onStockInHours",
                            "deliveryInHours",
                            "googleAvailability"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "ID of the availability",
                              "examples": [
                                -5
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "Name of the availability",
                              "examples": [
                                "On request"
                              ]
                            },
                            "indexName": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Code name of the availability",
                              "examples": [
                                "on-request"
                              ]
                            },
                            "description": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Description of the availability",
                              "examples": [
                                "Ordered from an external partner, details on request."
                              ]
                            },
                            "color": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Color hex code of the availability",
                              "examples": [
                                "#cb0000"
                              ]
                            },
                            "system": {
                              "type": "boolean",
                              "description": "Is availability default (system) and not user made?",
                              "examples": [
                                true
                              ]
                            },
                            "onStockInHours": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "When will a product be on stock. (in hours)",
                              "examples": [
                                48
                              ]
                            },
                            "deliveryInHours": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "When will a product be delivered. (in hours)",
                              "examples": [
                                48
                              ]
                            },
                            "googleAvailability": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "additionalProperties": false,
                              "description": "Google availability info",
                              "required": [
                                "id",
                                "name"
                              ],
                              "properties": {
                                "id": {
                                  "type": "integer",
                                  "description": "ID of the google availability",
                                  "examples": [
                                    1
                                  ]
                                },
                                "name": {
                                  "type": "string",
                                  "description": "Name of the google availability",
                                  "examples": [
                                    "On stock"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "product-availability-not-found",
                      "message": "Product availability with id \\\"100\\\" not found.",
                      "instance": "100"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Google availability id \\\"2\\\" is not supported.",
                      "instance": "data.googleAvailabilityId"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Product availability name \\\"In stock\\\" already exists.",
                      "instance": "data.name"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Product availability index name \\\"in-stock\\\" already exists.",
                      "instance": "data.indexName"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Update of product availability",
        "operationId": "updateProductAvailability",
        "description": "Updates a product availability.",
        "tags": [
          "Product availabilities"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "Name of the availability",
                        "examples": [
                          "On request"
                        ],
                        "minLength": 1
                      },
                      "indexName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Code name of the availability",
                        "examples": [
                          "on-request"
                        ],
                        "maxLength": 16
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Description of the availability",
                        "examples": [
                          "Ordered from an external partner, details on request."
                        ]
                      },
                      "color": {
                        "$ref": "#/components/schemas/typeColor",
                        "description": "Color hex code of the availability",
                        "examples": [
                          "#cb0000"
                        ]
                      },
                      "onStockInHours": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "When will a product be on stock. (in hours)",
                        "examples": [
                          48
                        ],
                        "maximum": 2500
                      },
                      "deliveryInHours": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "When will a product be delivered. (in hours)",
                        "examples": [
                          48
                        ],
                        "maximum": 2500
                      },
                      "googleAvailabilityId": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "ID of the google availability. Possible values: `1` (in stock), `3` (out of stock), `4` (preorder), `5` (backorder).",
                        "examples": [
                          1,
                          3,
                          4,
                          5
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "product availability ID",
            "required": true,
            "example": 123,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null",
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": null,
                  "errors": null
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "product-availability-not-found",
                      "message": "Product availability with id \\\"100\\\" not found.",
                      "instance": "100"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Unable to delete product availability with id \\\"1\\\". Availability is in use.",
                      "instance": "integration-call"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Unable to delete product availability with id \\\"-1\\\". System availability is not deletable.",
                      "instance": "integration-call"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Deletion of product availability",
        "operationId": "deleteProductAvailability",
        "description": "Deletes a product availability.",
        "tags": [
          "Product availabilities"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "product availability ID",
            "required": true,
            "example": 123,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/surcharge-parameters": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "surchargeParameters",
                        "paginator"
                      ],
                      "properties": {
                        "surchargeParameters": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "id",
                              "code",
                              "name",
                              "displayName",
                              "description",
                              "priority",
                              "required",
                              "currency",
                              "includingVat",
                              "values",
                              "googleMapping"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Id of surcharge parameter. This identifier is used on eshop frontend.",
                                "examples": [
                                  123
                                ]
                              },
                              "code": {
                                "type": "string",
                                "description": "Parameter code (identifier).",
                                "examples": [
                                  "potisk"
                                ]
                              },
                              "name": {
                                "type": "string",
                                "description": "Name of surcharge parameter.",
                                "examples": [
                                  "S potiskem"
                                ]
                              },
                              "displayName": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Parameter display name.",
                                "examples": [
                                  "Příplatek za potisk"
                                ]
                              },
                              "description": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Description of surcharge parameter.",
                                "examples": [
                                  "Ozdobný potisk"
                                ]
                              },
                              "priority": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "Priority of surcharge parameter.",
                                "examples": [
                                  1
                                ]
                              },
                              "required": {
                                "type": "boolean",
                                "description": "If surcharge parameter is required.",
                                "examples": [
                                  true
                                ]
                              },
                              "currency": {
                                "type": "string",
                                "description": "Currency of surcharge parameter.",
                                "examples": [
                                  "CZK"
                                ]
                              },
                              "includingVat": {
                                "type": "boolean",
                                "description": "Is price of parameter's values including VAT.",
                                "examples": [
                                  true
                                ]
                              },
                              "subscription": {
                                "type": [
                                  "boolean",
                                  "null"
                                ],
                                "description": "Indicates whether this surcharge parameter is a subscription (recurring payment)",
                                "examples": [
                                  true,
                                  false
                                ]
                              },
                              "googleMapping": {
                                "$ref": "#/components/schemas/googleMappingType",
                                "description": "Possible parameter mapping with google."
                              },
                              "values": {
                                "type": "array",
                                "description": "Possible parameter's values.",
                                "items": {
                                  "$ref": "#/components/schemas/surchargeParameterValue"
                                }
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of surcharge parameters",
        "operationId": "getListOfSurchargeParameters",
        "description": "Returns the list of available surcharge parameters with their available values within the e-shop.",
        "tags": [
          "Surcharge parameters"
        ],
        "parameters": [
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 500.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "surchargeParameter"
                      ],
                      "properties": {
                        "surchargeParameter": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "id",
                            "code",
                            "name",
                            "displayName",
                            "description",
                            "priority",
                            "required",
                            "currency",
                            "includingVat",
                            "values",
                            "googleMapping"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "Id of surcharge parameter. This identifier is used on eshop frontend.",
                              "examples": [
                                123
                              ]
                            },
                            "code": {
                              "type": "string",
                              "description": "Parameter code (identifier).",
                              "examples": [
                                "potisk"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "Name of surcharge parameter.",
                              "examples": [
                                "S potiskem"
                              ]
                            },
                            "displayName": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Parameter display name.",
                              "examples": [
                                "Příplatek za potisk"
                              ]
                            },
                            "description": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Description of surcharge parameter.",
                              "examples": [
                                "Ozdobný potisk"
                              ]
                            },
                            "priority": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Priority of surcharge parameter.",
                              "examples": [
                                1
                              ]
                            },
                            "required": {
                              "type": "boolean",
                              "description": "If surcharge parameter is required.",
                              "examples": [
                                true
                              ]
                            },
                            "currency": {
                              "type": "string",
                              "description": "Currency of surcharge parameter.",
                              "examples": [
                                "CZK"
                              ]
                            },
                            "includingVat": {
                              "type": "boolean",
                              "description": "Is price of parameter's values including VAT.",
                              "examples": [
                                true
                              ]
                            },
                            "subscription": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Indicates whether this surcharge parameter is a subscription (recurring payment)",
                              "examples": [
                                true,
                                false
                              ]
                            },
                            "googleMapping": {
                              "$ref": "#/components/schemas/googleMappingType",
                              "description": "Possible parameter mapping with google."
                            },
                            "values": {
                              "type": "array",
                              "description": "Possible parameter's values.",
                              "items": {
                                "$ref": "#/components/schemas/surchargeParameterValue"
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Creation of surcharge parameter",
        "operationId": "createSurchargeParameter",
        "description": "",
        "tags": [
          "Surcharge parameters"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name",
                      "values"
                    ],
                    "properties": {
                      "currency": {
                        "$ref": "#/components/schemas/typeCurrencyCodeNullable",
                        "description": "set currency value, if is not present, default currency is chosen.",
                        "examples": [
                          "CZK"
                        ]
                      },
                      "displayName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "Name of surcharge parameter.",
                        "examples": [
                          "Povinny"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Name of surcharge parameter.",
                        "examples": [
                          "Povinný"
                        ]
                      },
                      "code": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "pattern": "^[a-zA-Z0-9\\-]*$",
                        "description": "Url friendly name of parameter. If is not set, code is generated from name. When changed, you must use the new code in the next API calls.",
                        "examples": [
                          "povinny"
                        ]
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "Description of surcharge parameter.",
                        "examples": [
                          "Popisek"
                        ]
                      },
                      "required": {
                        "type": "boolean",
                        "description": "default value is false.",
                        "examples": [
                          true
                        ]
                      },
                      "includingVat": {
                        "type": "boolean",
                        "description": "default value is true.",
                        "examples": [
                          true
                        ]
                      },
                      "priority": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "minimum": 1,
                        "description": "Parameter priority",
                        "examples": [
                          1
                        ]
                      },
                      "googleMapping": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Mapping for google.",
                        "examples": [
                          "google:gender"
                        ]
                      },
                      "values": {
                        "minItems": 1,
                        "type": "array",
                        "description": "Values of parameter.",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "name",
                            "price"
                          ],
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128,
                              "description": "Name of parameter value",
                              "examples": [
                                "Modrý"
                              ]
                            },
                            "price": {
                              "$ref": "#/components/schemas/typePriceNullable",
                              "description": "Additional price of surcharge parameter."
                            },
                            "valueIndex": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "minLength": 1,
                              "maxLength": 255,
                              "pattern": "^[a-zA-Z0-9\\-]*$",
                              "description": "Url friendly name of parameter value. Maximal length of 255 characters. If is not set, code is generated from name.",
                              "examples": [
                                "modry"
                              ]
                            },
                            "priority": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "minimum": 1,
                              "description": "Priority of parameter value.",
                              "examples": [
                                1
                              ]
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/surcharge-parameters/{code}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "surchargeParameter"
                      ],
                      "properties": {
                        "surchargeParameter": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "id",
                            "code",
                            "name",
                            "displayName",
                            "description",
                            "priority",
                            "required",
                            "currency",
                            "includingVat",
                            "values",
                            "googleMapping"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "Id of surcharge parameter. This identifier is used on eshop frontend.",
                              "examples": [
                                123
                              ]
                            },
                            "code": {
                              "type": "string",
                              "description": "Parameter code (identifier).",
                              "examples": [
                                "potisk"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "Name of surcharge parameter.",
                              "examples": [
                                "S potiskem"
                              ]
                            },
                            "displayName": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Parameter display name.",
                              "examples": [
                                "Příplatek za potisk"
                              ]
                            },
                            "description": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Description of surcharge parameter.",
                              "examples": [
                                "Ozdobný potisk"
                              ]
                            },
                            "priority": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Priority of surcharge parameter.",
                              "examples": [
                                1
                              ]
                            },
                            "required": {
                              "type": "boolean",
                              "description": "If surcharge parameter is required.",
                              "examples": [
                                true
                              ]
                            },
                            "currency": {
                              "type": "string",
                              "description": "Currency of surcharge parameter.",
                              "examples": [
                                "CZK"
                              ]
                            },
                            "includingVat": {
                              "type": "boolean",
                              "description": "Is price of parameter's values including VAT.",
                              "examples": [
                                true
                              ]
                            },
                            "subscription": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Indicates whether this surcharge parameter is a subscription (recurring payment)",
                              "examples": [
                                true,
                                false
                              ]
                            },
                            "googleMapping": {
                              "$ref": "#/components/schemas/googleMappingType",
                              "description": "Possible parameter mapping with google."
                            },
                            "values": {
                              "type": "array",
                              "description": "Possible parameter's values.",
                              "items": {
                                "$ref": "#/components/schemas/surchargeParameterValue"
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Detail of surcharge parameter",
        "operationId": "getDetailOfSurchargeParameter",
        "description": "",
        "tags": [
          "Surcharge parameters"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "povinny",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "surchargeParameter"
                      ],
                      "properties": {
                        "surchargeParameter": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "id",
                            "code",
                            "name",
                            "displayName",
                            "description",
                            "priority",
                            "required",
                            "currency",
                            "includingVat",
                            "googleMapping"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "Id of surcharge parameter. This identifier is used on eshop frontend.",
                              "examples": [
                                123
                              ]
                            },
                            "code": {
                              "type": "string",
                              "description": "Parameter code (identifier).",
                              "examples": [
                                "potisk"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "Name of surcharge parameter.",
                              "examples": [
                                "S potiskem"
                              ]
                            },
                            "displayName": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Parameter display name.",
                              "examples": [
                                "Příplatek za potisk"
                              ]
                            },
                            "description": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Description of surcharge parameter.",
                              "examples": [
                                "Ozdobný potisk"
                              ]
                            },
                            "priority": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Priority of surcharge parameter.",
                              "examples": [
                                1
                              ]
                            },
                            "required": {
                              "type": "boolean",
                              "description": "If surcharge parameter is required.",
                              "examples": [
                                true
                              ]
                            },
                            "currency": {
                              "type": "string",
                              "description": "Currency of surcharge parameter.",
                              "examples": [
                                "CZK"
                              ]
                            },
                            "includingVat": {
                              "type": "boolean",
                              "description": "Is price of parameter's values including VAT.",
                              "examples": [
                                true
                              ]
                            },
                            "googleMapping": {
                              "$ref": "#/components/schemas/googleMappingType",
                              "description": "Possible parameter mapping with google."
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Update of surcharge parameter",
        "operationId": "updateSurchargeParameter",
        "description": "",
        "tags": [
          "Surcharge parameters"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "povinny",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "additionalProperties": false,
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Name of surcharge parameter.",
                        "examples": [
                          "Povinný"
                        ]
                      },
                      "code": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "pattern": "^[a-zA-Z0-9\\-]*$",
                        "description": "Url friendly name of parameter. If is not set, code is generated from name. When changed, you must use the new code in the next API calls.",
                        "examples": [
                          "povinny"
                        ]
                      },
                      "displayName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "Name of surcharge parameter.",
                        "examples": [
                          "Povinny"
                        ]
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "Description of surcharge parameter.",
                        "examples": [
                          "Popisek"
                        ]
                      },
                      "priority": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "minimum": 1,
                        "description": "Parameter priority",
                        "examples": [
                          1
                        ]
                      },
                      "googleMapping": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Mapping for google.",
                        "examples": [
                          "google:gender"
                        ]
                      },
                      "currency": {
                        "$ref": "#/components/schemas/typeCurrencyCodeNullable",
                        "description": "set currency value, if is not present, default currency is chosen.",
                        "examples": [
                          "CZK"
                        ]
                      },
                      "required": {
                        "type": "boolean",
                        "description": "default value is false.",
                        "examples": [
                          true
                        ]
                      },
                      "includingVat": {
                        "type": "boolean",
                        "description": "default value is true.",
                        "examples": [
                          true
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "surchargeParameter"
                      ],
                      "properties": {
                        "surchargeParameter": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "id",
                            "code",
                            "name",
                            "displayName",
                            "description",
                            "priority",
                            "required",
                            "currency",
                            "includingVat",
                            "values",
                            "googleMapping"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "Id of surcharge parameter. This identifier is used on eshop frontend.",
                              "examples": [
                                123
                              ]
                            },
                            "code": {
                              "type": "string",
                              "description": "Parameter code (identifier).",
                              "examples": [
                                "potisk"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "Name of surcharge parameter.",
                              "examples": [
                                "S potiskem"
                              ]
                            },
                            "displayName": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Parameter display name.",
                              "examples": [
                                "Příplatek za potisk"
                              ]
                            },
                            "description": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Description of surcharge parameter.",
                              "examples": [
                                "Ozdobný potisk"
                              ]
                            },
                            "priority": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Priority of surcharge parameter.",
                              "examples": [
                                1
                              ]
                            },
                            "required": {
                              "type": "boolean",
                              "description": "If surcharge parameter is required.",
                              "examples": [
                                true
                              ]
                            },
                            "currency": {
                              "type": "string",
                              "description": "Currency of surcharge parameter.",
                              "examples": [
                                "CZK"
                              ]
                            },
                            "includingVat": {
                              "type": "boolean",
                              "description": "Is price of parameter's values including VAT.",
                              "examples": [
                                true
                              ]
                            },
                            "subscription": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Indicates whether this surcharge parameter is a subscription (recurring payment)",
                              "examples": [
                                true,
                                false
                              ]
                            },
                            "googleMapping": {
                              "$ref": "#/components/schemas/googleMappingType",
                              "description": "Possible parameter mapping with google."
                            },
                            "values": {
                              "type": "array",
                              "description": "Possible parameter's values.",
                              "items": {
                                "$ref": "#/components/schemas/surchargeParameterValue"
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Creation of surcharge parameter value",
        "operationId": "createSurchargeParameterValue",
        "description": "",
        "tags": [
          "Surcharge parameters"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "povinny",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "paramValues"
                    ],
                    "properties": {
                      "paramValues": {
                        "minItems": 1,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "name",
                            "price"
                          ],
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128,
                              "description": "Name of parameter value.",
                              "examples": [
                                "Modrý"
                              ]
                            },
                            "price": {
                              "$ref": "#/components/schemas/typePriceNullable",
                              "description": "Additional price of surcharge parameter."
                            },
                            "valueIndex": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "minLength": 1,
                              "maxLength": 255,
                              "pattern": "^[a-zA-Z0-9\\-]*$",
                              "description": "Url friendly name of parameter value. Maximal length of 255 characters. If is not set, code is generated from name.",
                              "examples": [
                                "modry"
                              ]
                            },
                            "priority": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "minimum": 1,
                              "description": "Parameter value priority",
                              "examples": [
                                1
                              ]
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Removal of surcharge parameter",
        "operationId": "deleteSurchargeParameterByIndex",
        "description": "",
        "tags": [
          "Surcharge parameters"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "povinny",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/surcharge-parameters/{paramIndex}/{valueIndex}": {
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Removal of surcharge parameter value",
        "operationId": "deleteSurchargeParameterValue",
        "description": "",
        "tags": [
          "Surcharge parameters"
        ],
        "parameters": [
          {
            "name": "paramIndex",
            "in": "path",
            "description": "",
            "required": true,
            "example": "povinny",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "valueIndex",
            "in": "path",
            "description": "",
            "required": true,
            "example": "modry",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "surchargeParameter"
                      ],
                      "properties": {
                        "surchargeParameter": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "id",
                            "code",
                            "name",
                            "displayName",
                            "description",
                            "priority",
                            "required",
                            "currency",
                            "includingVat",
                            "values",
                            "googleMapping"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "Id of surcharge parameter. This identifier is used on eshop frontend.",
                              "examples": [
                                123
                              ]
                            },
                            "code": {
                              "type": "string",
                              "description": "Parameter code (identifier).",
                              "examples": [
                                "potisk"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "Name of surcharge parameter.",
                              "examples": [
                                "S potiskem"
                              ]
                            },
                            "displayName": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Parameter display name.",
                              "examples": [
                                "Příplatek za potisk"
                              ]
                            },
                            "description": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Description of surcharge parameter.",
                              "examples": [
                                "Ozdobný potisk"
                              ]
                            },
                            "priority": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Priority of surcharge parameter.",
                              "examples": [
                                1
                              ]
                            },
                            "required": {
                              "type": "boolean",
                              "description": "If surcharge parameter is required.",
                              "examples": [
                                true
                              ]
                            },
                            "currency": {
                              "type": "string",
                              "description": "Currency of surcharge parameter.",
                              "examples": [
                                "CZK"
                              ]
                            },
                            "includingVat": {
                              "type": "boolean",
                              "description": "Is price of parameter's values including VAT.",
                              "examples": [
                                true
                              ]
                            },
                            "subscription": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Indicates whether this surcharge parameter is a subscription (recurring payment)",
                              "examples": [
                                true,
                                false
                              ]
                            },
                            "googleMapping": {
                              "$ref": "#/components/schemas/googleMappingType",
                              "description": "Possible parameter mapping with google."
                            },
                            "values": {
                              "type": "array",
                              "description": "Possible parameter's values.",
                              "items": {
                                "$ref": "#/components/schemas/surchargeParameterValue"
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Update of surcharge parameter value",
        "operationId": "updateSurchargeParameterValue",
        "description": "",
        "tags": [
          "Surcharge parameters"
        ],
        "parameters": [
          {
            "name": "paramIndex",
            "in": "path",
            "description": "",
            "required": true,
            "example": "povinny",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "valueIndex",
            "in": "path",
            "description": "",
            "required": true,
            "example": "modry",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128,
                        "description": "Name of the parameter value",
                        "examples": [
                          "Modrý"
                        ]
                      },
                      "valueIndex": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "pattern": "^[a-zA-Z0-9\\-]*$",
                        "description": "Url friendly name of parameter value. If is not set, code is generated from name. When changed, you must use the new valueIndex in the next API calls.",
                        "examples": [
                          "modry"
                        ]
                      },
                      "priority": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "minimum": 1,
                        "description": "Parameter value priority.",
                        "examples": [
                          1
                        ]
                      },
                      "price": {
                        "$ref": "#/components/schemas/typePriceNullable",
                        "description": "Additional price of surcharge parameter."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/products/filtering-parameters": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "filteringParameters",
                        "paginator"
                      ],
                      "properties": {
                        "filteringParameters": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "id",
                              "code",
                              "name",
                              "displayName",
                              "description",
                              "priority",
                              "googleMapping",
                              "values"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Parameter id",
                                "examples": [
                                  1
                                ]
                              },
                              "code": {
                                "type": "string",
                                "description": "Parameter code",
                                "examples": [
                                  "material"
                                ]
                              },
                              "name": {
                                "type": "string",
                                "description": "Parameter name",
                                "examples": [
                                  "Material"
                                ]
                              },
                              "displayName": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Parameter display name",
                                "examples": [
                                  "Material of product"
                                ]
                              },
                              "description": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Parameter description",
                                "examples": [
                                  "Material of product"
                                ]
                              },
                              "priority": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "Parameter priority",
                                "examples": [
                                  1
                                ]
                              },
                              "googleMapping": {
                                "$ref": "#/components/schemas/googleMappingType"
                              },
                              "values": {
                                "type": "array",
                                "items": {
                                  "$ref": "#/components/schemas/productFilteringParameterValue"
                                }
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of filtering parameters",
        "operationId": "getListOfFilteringParameters",
        "description": "Returns the list of available filtering parameters with their available values within the e-shop.",
        "tags": [
          "Filtering parameters"
        ],
        "parameters": [
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 100.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "id",
                        "code",
                        "name",
                        "displayName",
                        "description",
                        "priority",
                        "googleMapping"
                      ],
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Parameter id",
                          "examples": [
                            1
                          ]
                        },
                        "code": {
                          "type": "string",
                          "description": "Parameter code",
                          "examples": [
                            "material"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "description": "Parameter name",
                          "examples": [
                            "Material"
                          ]
                        },
                        "displayName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Parameter display name",
                          "examples": [
                            "Material of product"
                          ]
                        },
                        "description": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Parameter description",
                          "examples": [
                            "Material of product"
                          ]
                        },
                        "priority": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Parameter priority",
                          "examples": [
                            1
                          ]
                        },
                        "googleMapping": {
                          "$ref": "#/components/schemas/googleMappingType"
                        },
                        "values": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/productFilteringParameterValue"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Creation of filtering parameter",
        "operationId": "createFilteringParameter",
        "description": "",
        "tags": [
          "Filtering parameters"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name",
                      "values"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Parameter name",
                        "examples": [
                          "Materiál"
                        ]
                      },
                      "code": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "pattern": "^[a-zA-Z0-9\\-]*$",
                        "description": "Url friendly name of parameter. When changed, in next API call you must use the new parameter code.",
                        "examples": [
                          "material"
                        ]
                      },
                      "displayName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Parameter display name",
                        "examples": [
                          "Materiál"
                        ]
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "Parameter description",
                        "examples": [
                          "Popisek"
                        ]
                      },
                      "priority": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "minimum": 1,
                        "description": "Parameter priority",
                        "examples": [
                          1
                        ]
                      },
                      "googleMapping": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Mapping for google.",
                        "examples": [
                          "google:color"
                        ]
                      },
                      "values": {
                        "minItems": 1,
                        "$ref": "#/components/schemas/productFilteringParameterValues"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/filtering-parameters/{code}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "id",
                        "code",
                        "name",
                        "displayName",
                        "description",
                        "priority",
                        "googleMapping"
                      ],
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Parameter id",
                          "examples": [
                            1
                          ]
                        },
                        "code": {
                          "type": "string",
                          "description": "Parameter code",
                          "examples": [
                            "material"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "description": "Parameter name",
                          "examples": [
                            "Material"
                          ]
                        },
                        "displayName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Parameter display name",
                          "examples": [
                            "Material of product"
                          ]
                        },
                        "description": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Parameter description",
                          "examples": [
                            "Material of product"
                          ]
                        },
                        "priority": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Parameter priority",
                          "examples": [
                            1
                          ]
                        },
                        "googleMapping": {
                          "$ref": "#/components/schemas/googleMappingType"
                        },
                        "values": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/productFilteringParameterValue"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Detail of filtering parameter",
        "operationId": "getDetailOfFilteringParameter",
        "description": "",
        "tags": [
          "Filtering parameters"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "material",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "id",
                        "code",
                        "name",
                        "displayName",
                        "description",
                        "priority",
                        "googleMapping"
                      ],
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Parameter id",
                          "examples": [
                            1
                          ]
                        },
                        "code": {
                          "type": "string",
                          "description": "Parameter code",
                          "examples": [
                            "material"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "description": "Parameter name",
                          "examples": [
                            "Material"
                          ]
                        },
                        "displayName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Parameter display name",
                          "examples": [
                            "Material of product"
                          ]
                        },
                        "description": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Parameter description",
                          "examples": [
                            "Material of product"
                          ]
                        },
                        "priority": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Parameter priority",
                          "examples": [
                            1
                          ]
                        },
                        "googleMapping": {
                          "$ref": "#/components/schemas/googleMappingType"
                        },
                        "values": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/productFilteringParameterValue"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Update of filtering parameter",
        "operationId": "updateFilteringParameter",
        "description": "",
        "tags": [
          "Filtering parameters"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "material",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Parameter name",
                        "examples": [
                          "Materiál"
                        ]
                      },
                      "code": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "pattern": "^[a-zA-Z0-9\\-]*$",
                        "description": "Url friendly name of parameter. When changed, in next API call you must use the new parameter code.",
                        "examples": [
                          "material"
                        ]
                      },
                      "displayName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Parameter display name",
                        "examples": [
                          "Materiál"
                        ]
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "Parameter description",
                        "examples": [
                          "Popisek"
                        ]
                      },
                      "priority": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "minimum": 1,
                        "description": "Parameter priority",
                        "examples": [
                          1
                        ]
                      },
                      "googleMapping": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Mapping for google.",
                        "examples": [
                          "google:color"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "id",
                        "code",
                        "name",
                        "displayName",
                        "description",
                        "priority",
                        "googleMapping"
                      ],
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Parameter id",
                          "examples": [
                            1
                          ]
                        },
                        "code": {
                          "type": "string",
                          "description": "Parameter code",
                          "examples": [
                            "material"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "description": "Parameter name",
                          "examples": [
                            "Material"
                          ]
                        },
                        "displayName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Parameter display name",
                          "examples": [
                            "Material of product"
                          ]
                        },
                        "description": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Parameter description",
                          "examples": [
                            "Material of product"
                          ]
                        },
                        "priority": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Parameter priority",
                          "examples": [
                            1
                          ]
                        },
                        "googleMapping": {
                          "$ref": "#/components/schemas/googleMappingType"
                        },
                        "values": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/productFilteringParameterValue"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Creation of filtering parameter value",
        "operationId": "createFilteringParameterValue",
        "description": "",
        "tags": [
          "Filtering parameters"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "material",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "paramValues"
                    ],
                    "properties": {
                      "paramValues": {
                        "minItems": 1,
                        "$ref": "#/components/schemas/productFilteringParameterValues"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Removal of filtering parameter",
        "operationId": "deleteFilteringParameter",
        "description": "",
        "tags": [
          "Filtering parameters"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "strih-2",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/filtering-parameters/{code}/{valueIndex}": {
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Removal of filtering parameter value",
        "operationId": "deleteFilteringParameterValue",
        "description": "",
        "tags": [
          "Filtering parameters"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "pohlavi",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "valueIndex",
            "in": "path",
            "description": "",
            "required": true,
            "example": "muz",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "id",
                        "code",
                        "name",
                        "displayName",
                        "description",
                        "priority",
                        "googleMapping"
                      ],
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Parameter id",
                          "examples": [
                            1
                          ]
                        },
                        "code": {
                          "type": "string",
                          "description": "Parameter code",
                          "examples": [
                            "material"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "description": "Parameter name",
                          "examples": [
                            "Material"
                          ]
                        },
                        "displayName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Parameter display name",
                          "examples": [
                            "Material of product"
                          ]
                        },
                        "description": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Parameter description",
                          "examples": [
                            "Material of product"
                          ]
                        },
                        "priority": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Parameter priority",
                          "examples": [
                            1
                          ]
                        },
                        "googleMapping": {
                          "$ref": "#/components/schemas/googleMappingType"
                        },
                        "values": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/productFilteringParameterValue"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Update of filtering parameter value",
        "operationId": "updateFilteringParameterValue",
        "description": "",
        "tags": [
          "Filtering parameters"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "material",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "valueIndex",
            "in": "path",
            "description": "",
            "required": true,
            "example": "bavlna",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128,
                        "description": "Name of parameter value.",
                        "examples": [
                          "Bavlna"
                        ]
                      },
                      "valueIndex": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "pattern": "^[a-zA-Z0-9\\-]*$",
                        "description": "Url friendly name of parameter value.",
                        "examples": [
                          "bavlna"
                        ]
                      },
                      "priority": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "minimum": 1,
                        "description": "Parameter value priority.",
                        "examples": [
                          1
                        ]
                      },
                      "color": {
                        "$ref": "#/components/schemas/typeColor",
                        "description": "Color hex code."
                      },
                      "image": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Image name. Image needs to exist in your file folder.",
                        "examples": [
                          "car-001.jpg"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/products/variant-parameters": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "parameters",
                        "paginator"
                      ],
                      "properties": {
                        "parameters": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "id",
                              "paramName",
                              "paramIndex",
                              "priority"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "ID of the parameter",
                                "examples": [
                                  1
                                ]
                              },
                              "paramName": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "name of the parameter",
                                "examples": [
                                  "Color"
                                ]
                              },
                              "paramIndex": {
                                "type": "string",
                                "description": "index of the parameter (identifier)",
                                "examples": [
                                  "color"
                                ]
                              },
                              "displayName": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Parameter display name",
                                "examples": [
                                  "Barva"
                                ]
                              },
                              "priority": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "priority of the parameter",
                                "examples": [
                                  1
                                ]
                              },
                              "values": {
                                "type": "array",
                                "description": "Possible parameter values",
                                "items": {
                                  "$ref": "#/components/schemas/productVariantParameterValue"
                                }
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of variant parameters",
        "operationId": "getListOfVariantParameters",
        "description": "Returns the list of available variant parameters with their available values within the e-shop.\n\n\nList of variant parameters endpoint has section, which is only sent when requested in the `include` parameter.\n\nValue | Section\n--------|------\n`values` | Variant parameter values",
        "tags": [
          "Variant parameters"
        ],
        "parameters": [
          {
            "name": "include",
            "in": "query",
            "description": "Optional parts of response",
            "example": "values",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 50. Max value is 100.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "id",
                        "paramName",
                        "paramIndex",
                        "priority"
                      ],
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID of the parameter",
                          "examples": [
                            1
                          ]
                        },
                        "paramName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "name of the parameter",
                          "examples": [
                            "Color"
                          ]
                        },
                        "paramIndex": {
                          "type": "string",
                          "description": "index of the parameter (identifier)",
                          "examples": [
                            "color"
                          ]
                        },
                        "displayName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Parameter display name",
                          "examples": [
                            "Barva"
                          ]
                        },
                        "priority": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "priority of the parameter",
                          "examples": [
                            1
                          ]
                        },
                        "values": {
                          "type": "array",
                          "description": "Possible parameter values",
                          "items": {
                            "$ref": "#/components/schemas/productVariantParameterValue"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Creation of variant parameter",
        "operationId": "createVariantParameter",
        "description": "",
        "tags": [
          "Variant parameters"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "paramName"
                    ],
                    "properties": {
                      "paramName": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Name of parameter. Maximal length of 255 characters",
                        "examples": [
                          "Barevné spektrum"
                        ]
                      },
                      "paramIndex": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "pattern": "^[a-zA-Z0-9\\-]*$",
                        "description": "Url friendly name of parameter. Maximal length of 255 characters.",
                        "examples": [
                          "barevne-spektrum"
                        ]
                      },
                      "displayName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Parameter display name",
                        "examples": [
                          "Barva"
                        ]
                      },
                      "priority": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "minimum": 1,
                        "description": "Priority of parameter",
                        "examples": [
                          20
                        ]
                      },
                      "values": {
                        "$ref": "#/components/schemas/productVariantParameterValues"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/variant-parameters/{paramIndex}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "id",
                        "paramName",
                        "paramIndex",
                        "priority"
                      ],
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID of the parameter",
                          "examples": [
                            1
                          ]
                        },
                        "paramName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "name of the parameter",
                          "examples": [
                            "Color"
                          ]
                        },
                        "paramIndex": {
                          "type": "string",
                          "description": "index of the parameter (identifier)",
                          "examples": [
                            "color"
                          ]
                        },
                        "displayName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Parameter display name",
                          "examples": [
                            "Barva"
                          ]
                        },
                        "priority": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "priority of the parameter",
                          "examples": [
                            1
                          ]
                        },
                        "values": {
                          "type": "array",
                          "description": "Possible parameter values",
                          "items": {
                            "$ref": "#/components/schemas/productVariantParameterValue"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Detail of variant parameter",
        "operationId": "getDetailOfVariantParameter",
        "description": "",
        "tags": [
          "Variant parameters"
        ],
        "parameters": [
          {
            "name": "paramIndex",
            "in": "path",
            "description": "",
            "required": true,
            "example": "barva",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "id",
                        "paramName",
                        "paramIndex",
                        "priority"
                      ],
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID of the parameter",
                          "examples": [
                            1
                          ]
                        },
                        "paramName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "name of the parameter",
                          "examples": [
                            "Color"
                          ]
                        },
                        "paramIndex": {
                          "type": "string",
                          "description": "index of the parameter (identifier)",
                          "examples": [
                            "color"
                          ]
                        },
                        "displayName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Parameter display name",
                          "examples": [
                            "Barva"
                          ]
                        },
                        "priority": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "priority of the parameter",
                          "examples": [
                            1
                          ]
                        },
                        "values": {
                          "type": "array",
                          "description": "Possible parameter values",
                          "items": {
                            "$ref": "#/components/schemas/productVariantParameterValue"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Update of variant parameter",
        "operationId": "updateVariantParameter",
        "description": "",
        "tags": [
          "Variant parameters"
        ],
        "parameters": [
          {
            "name": "paramIndex",
            "in": "path",
            "description": "",
            "required": true,
            "example": "barva",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "paramName": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Name of parameter value. Maximal length of 255 characters.",
                        "examples": [
                          "Color"
                        ]
                      },
                      "displayName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Parameter display name",
                        "examples": [
                          "Barva"
                        ]
                      },
                      "paramIndex": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "pattern": "^[a-zA-Z0-9\\-]*$",
                        "description": "Url friendly name of parameter value. Maximal length of 255 characters. When changed, you must use the new paramIndex in the next API calls.",
                        "examples": [
                          "color"
                        ]
                      },
                      "priority": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "Parameter value priority.",
                        "examples": [
                          1
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "id",
                        "paramName",
                        "paramIndex",
                        "priority"
                      ],
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID of the parameter",
                          "examples": [
                            1
                          ]
                        },
                        "paramName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "name of the parameter",
                          "examples": [
                            "Color"
                          ]
                        },
                        "paramIndex": {
                          "type": "string",
                          "description": "index of the parameter (identifier)",
                          "examples": [
                            "color"
                          ]
                        },
                        "displayName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Parameter display name",
                          "examples": [
                            "Barva"
                          ]
                        },
                        "priority": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "priority of the parameter",
                          "examples": [
                            1
                          ]
                        },
                        "values": {
                          "type": "array",
                          "description": "Possible parameter values",
                          "items": {
                            "$ref": "#/components/schemas/productVariantParameterValue"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Creation of variant parameter value",
        "operationId": "createVariantParameterValue",
        "description": "",
        "tags": [
          "Variant parameters"
        ],
        "parameters": [
          {
            "name": "paramIndex",
            "in": "path",
            "description": "",
            "required": true,
            "example": "barevne-spektrum",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "paramValues"
                    ],
                    "properties": {
                      "paramValues": {
                        "minItems": 1,
                        "$ref": "#/components/schemas/productVariantParameterValues"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Removal of variant parameter",
        "operationId": "deleteVariantParameter",
        "description": "",
        "tags": [
          "Variant parameters"
        ],
        "parameters": [
          {
            "name": "paramIndex",
            "in": "path",
            "description": "",
            "required": true,
            "example": "strih",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/variant-parameters/{paramIndex}/{rawValue}": {
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Removal of variant parameter value",
        "operationId": "deleteVariantParameterValue",
        "description": "",
        "tags": [
          "Variant parameters"
        ],
        "parameters": [
          {
            "name": "paramIndex",
            "in": "path",
            "description": "",
            "required": true,
            "example": "strih",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rawValue",
            "in": "path",
            "description": "",
            "required": true,
            "example": "raminka",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "id",
                        "paramName",
                        "paramIndex",
                        "priority"
                      ],
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID of the parameter",
                          "examples": [
                            1
                          ]
                        },
                        "paramName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "name of the parameter",
                          "examples": [
                            "Color"
                          ]
                        },
                        "paramIndex": {
                          "type": "string",
                          "description": "index of the parameter (identifier)",
                          "examples": [
                            "color"
                          ]
                        },
                        "displayName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Parameter display name",
                          "examples": [
                            "Barva"
                          ]
                        },
                        "priority": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "priority of the parameter",
                          "examples": [
                            1
                          ]
                        },
                        "values": {
                          "type": "array",
                          "description": "Possible parameter values",
                          "items": {
                            "$ref": "#/components/schemas/productVariantParameterValue"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Update of variant parameter value",
        "operationId": "updateVariantParameterValue",
        "description": "",
        "tags": [
          "Variant parameters"
        ],
        "parameters": [
          {
            "name": "paramIndex",
            "in": "path",
            "description": "",
            "required": true,
            "example": "barva",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rawValue",
            "in": "path",
            "description": "",
            "required": true,
            "example": "fialova",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "paramValue": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128,
                        "description": "Name of parameter value. Maximal length of 255 characters.",
                        "examples": [
                          "Červená"
                        ]
                      },
                      "rawValue": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "pattern": "^[a-zA-Z0-9\\-]*$",
                        "description": "Url friendly name of parameter value. Maximal length of 255 characters. When changed, you must use the new rawValue in the next API calls.",
                        "examples": [
                          "cervena"
                        ]
                      },
                      "color": {
                        "$ref": "#/components/schemas/typeColor",
                        "description": "Color hex code. Minimal length of 1 character. Maximal length of 8 characters."
                      },
                      "image": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Image name. Image needs to exist in your file folder.",
                        "examples": [
                          "car-001.jpg"
                        ]
                      },
                      "valuePriority": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "Parameter value priority.",
                        "examples": [
                          1
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/products/consumption-taxes": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "consumptionTaxes"
                      ],
                      "properties": {
                        "consumptionTaxes": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/consumptionTax"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Method requires active consumptionTax module in eshop.",
                      "instance": "consumptionTax"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "List of product consumption taxes",
        "operationId": "getListOfConsumptionTaxes",
        "description": "Returns the list of consumption taxes within the e-shop.\nIn order to list consuption taxes, you will need to have the Consumption tax module activated on the customer's e-shop.",
        "tags": [
          "Consumption taxes"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/consumptionTax"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "consumption-tax-already-exists",
                      "message": "Consumption tax \"ABC\" with price \"50.00\" and currency \"EUR\" already exists.",
                      "instance": "payload"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Currency \"CZE\" not found.",
                      "instance": "currency"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Creation of consumption tax",
        "operationId": "createConsumptionTax",
        "description": "",
        "tags": [
          "Consumption taxes"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name",
                      "price",
                      "currency"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Consumption tax name.",
                        "examples": [
                          "ABC"
                        ]
                      },
                      "price": {
                        "$ref": "#/components/schemas/typePrice",
                        "description": "Consumption tax amount.",
                        "examples": [
                          "50.00"
                        ]
                      },
                      "currency": {
                        "type": "string",
                        "description": "Consumption tax currency.",
                        "examples": [
                          "EUR"
                        ]
                      },
                      "isVisible": {
                        "type": "boolean",
                        "description": "Flag, whether the consumption tax is visible in documents or not. If not set, default value is `true`.",
                        "examples": [
                          false
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/consumption-taxes/{id}": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/consumptionTax"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "consumption-tax-not-found",
                      "message": "Consumption tax with ID \"8\" not found.",
                      "instance": "8"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "consumption-tax-already-exists",
                      "message": "Consumption tax \"ABC\" with price \"50.00\" and currency \"EUR\" already exists.",
                      "instance": "payload"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Currency \"CZE\" not found.",
                      "instance": "currency"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Update of consumption tax",
        "operationId": "updateConsumptionTax",
        "description": "",
        "tags": [
          "Consumption taxes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "consumption tax identifier",
            "required": true,
            "example": 8,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Consumption tax name.",
                        "examples": [
                          "ABC"
                        ]
                      },
                      "price": {
                        "$ref": "#/components/schemas/typePrice",
                        "description": "Consumption tax amount.",
                        "examples": [
                          "50.00"
                        ]
                      },
                      "currency": {
                        "type": "string",
                        "description": "Consumption tax currency.",
                        "examples": [
                          "EUR"
                        ]
                      },
                      "isVisible": {
                        "type": "boolean",
                        "description": "Flag, whether the consumption tax is visible in documents or not.",
                        "examples": [
                          false
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "consumption-tax-not-found",
                      "message": "Consumption tax with ID \"8\" not found.",
                      "instance": "8"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Deletion of consumption tax",
        "operationId": "deleteConsumptionTax",
        "description": "",
        "tags": [
          "Consumption taxes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "consumption tax identifier",
            "required": true,
            "example": 8,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/recycling-fee-categories": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "recyclingFeeCategories"
                      ],
                      "properties": {
                        "recyclingFeeCategories": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/recyclingFeeCategory"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of recycling fee categories",
        "operationId": "getListOfRecyclingFeeCategories",
        "description": "Returns the list of recycling fee categories within the e-shop.",
        "tags": [
          "Recycling fees"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/warranties": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "warranties"
                      ],
                      "properties": {
                        "warranties": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "id",
                              "inMonths",
                              "description",
                              "system"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Warranty id. Negative number indicates system warranties. Positive numbers are defined by customer.",
                                "examples": [
                                  -1
                                ]
                              },
                              "inMonths": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "Warranty length in months (can be `null`). Negative number (`-1`) means infinite (lifetime) warranty.",
                                "examples": [
                                  12
                                ]
                              },
                              "description": {
                                "type": "string",
                                "description": "Warranty description.",
                                "examples": [
                                  "One year warranty"
                                ]
                              },
                              "system": {
                                "type": "boolean",
                                "description": "true` - system warranties, `false` - custom warranties.",
                                "examples": [
                                  true
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of product warranties",
        "operationId": "getListOfProductWarranties",
        "description": "Returns list of product warranties.",
        "tags": [
          "Warranties"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/{guid}/alternativeProducts": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "items"
                      ],
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/relatedProduct"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of product alternative products",
        "operationId": "getListOfProductAlternativeProducts",
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "visible",
            "in": "query",
            "description": "If set to `true`, only visible products are returned (those, which does not have `visibility: hidden`)",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "description": "Returns list of alternative products related to product defined by\n`guid`, list is ordered by priority parameter.\n\nIf `Pair reciprocally` option (`Settings > Product > Related and\nAlternative products`) is enabled, list of\n\nitems will be enriched by items that has called product in own\nalternative table.",
        "tags": [
          "Alternative products"
        ]
      },
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "items"
                      ],
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/relatedProduct"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Add alternative product",
        "operationId": "addAlternativeProduct",
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "description": "This method add given product, defined with `guid` at the end of the\nalternative product list. After product\n\nis successfully saved, complete list of alternative product is returned\nin response.",
        "tags": [
          "Alternative products"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "alternativeProduct"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "alternativeProduct": {
                        "type": "object",
                        "additionalProperties": false,
                        "required": [
                          "guid"
                        ],
                        "properties": {
                          "guid": {
                            "$ref": "#/components/schemas/typeGuidUnlimited",
                            "description": "GUID of new the alternative product"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "items"
                      ],
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/relatedProduct"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Set alternative products",
        "operationId": "setAlternativeProducts",
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "description": "This method set given products (minimum 0, maximum 50), defined with\n`guid` to the alternative product list. After product\n\nis successfully saved, complete list of alternative product is returned\nin response.",
        "tags": [
          "Alternative products"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "alternativeProducts"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "alternativeProducts": {
                        "type": "array",
                        "description": "Array of new alternative products, minimum 0 item, maximum 50 items on request",
                        "minItems": 0,
                        "maxItems": 50,
                        "items": {
                          "type": "object",
                          "required": [
                            "guid"
                          ],
                          "additionalProperties": false,
                          "properties": {
                            "guid": {
                              "$ref": "#/components/schemas/typeGuidUnlimited"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/products/{guid}/relatedProducts": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "items"
                      ],
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/relatedProduct"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of product related products",
        "operationId": "getListOfProductRelatedProducts",
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "visible",
            "in": "query",
            "description": "If set to `true`, only visible products are returned (those, which does not have `visibility: hidden`)",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "description": "Returns list of related products related to product defined by `guid`,\nlist is ordered by priority parameter.\n\nIf `Pair reciprocally` option (`Settings > Product > Related and\nAlternative products`) is enabled, list of\n\nitems will be enriched by items that has called product in own related\ntable.",
        "tags": [
          "Related products"
        ]
      },
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "items"
                      ],
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/relatedProduct"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Add related product",
        "operationId": "addRelatedProduct",
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "description": "This method add given product, defined with `guid` at the end of the\nrelated product list. After product\n\nis successfully saved, complete list of related product is returned in\nresponse.",
        "tags": [
          "Related products"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "relatedProduct"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "relatedProduct": {
                        "type": "object",
                        "additionalProperties": false,
                        "required": [
                          "guid"
                        ],
                        "properties": {
                          "guid": {
                            "$ref": "#/components/schemas/typeGuidUnlimited",
                            "description": "Guid of new related product"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "items"
                      ],
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/relatedProduct"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Set related products",
        "operationId": "setRelatedProducts",
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "description": "This method set given products (minimum 0, maximum 50), defined with\n`guid` to the related product list. After product\n\nis successfully saved, complete list of related product is returned in\nresponse.",
        "tags": [
          "Related products"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "relatedProducts"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "relatedProducts": {
                        "type": "array",
                        "minItems": 0,
                        "maxItems": 50,
                        "description": "Array of new related products, minimum 0 item, maximum 50 items on request",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "guid"
                          ],
                          "properties": {
                            "guid": {
                              "$ref": "#/components/schemas/typeGuidUnlimited",
                              "description": "Guid of new related product"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/products/{guid}/set": {
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "items"
                      ],
                      "properties": {
                        "items": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "description": "information about items, products, in set",
                          "items": {
                            "$ref": "#/components/schemas/productSet"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "product-is-set-type",
                      "message": "Type of aggregate product is set. It is not possible to add another set into it.",
                      "instance": "payload"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Add item to product-set",
        "operationId": "addItemToProductSet",
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid - Must be `product-set` type.",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "This method adding product defined by product variant `code` to the bundle (product set). Product defined in url by `guid`, must be set as `type` : `product-set`.\nWhen successfully saved, complete list of products in the set is returned in response.\nIt is not allowed to add a product of the `product-set` type to an existing product set.",
        "tags": [
          "Product sets"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "setItem"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "setItem": {
                        "type": "object",
                        "additionalProperties": false,
                        "required": [
                          "code",
                          "amount"
                        ],
                        "properties": {
                          "code": {
                            "type": "string",
                            "description": "product variant identifier",
                            "examples": [
                              "0008"
                            ]
                          },
                          "amount": {
                            "$ref": "#/components/schemas/typePositiveAmount"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "items"
                      ],
                      "properties": {
                        "items": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "description": "information about items, products, in set",
                          "items": {
                            "$ref": "#/components/schemas/productSet"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Set product-set items",
        "operationId": "setProductSetItems",
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid - Must be `product-set` type.",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "This method set given products (minimum 0, maximum 50), defined by product variant `code` to the bundle of products (product-set).\nProduct defined in url by `guid`, must be set as `type` : `product-set`. When successfully saved, complete list of products in the set is returned in response.\nIt is not allowed to add a product of the `product-set` type to an existing product set.  ",
        "tags": [
          "Product sets"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "setItems"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "setItems": {
                        "type": "array",
                        "minItems": 0,
                        "maxItems": 50,
                        "description": "Array of new products assigned to set, minimum 0 item, maximum 50 items on request",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "code",
                            "amount"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "product variant identifier",
                              "examples": [
                                "0008"
                              ]
                            },
                            "amount": {
                              "$ref": "#/components/schemas/typePositiveAmount"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/products/units": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "units"
                      ],
                      "properties": {
                        "units": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "id",
                              "name",
                              "system"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Unit id. Negative number indicates system units. Positive numbers are defined by customer.",
                                "examples": [
                                  -1
                                ]
                              },
                              "name": {
                                "type": "string",
                                "description": "Unit name",
                                "examples": [
                                  "kg"
                                ]
                              },
                              "system": {
                                "type": "boolean",
                                "description": "`true` - system units, `false` - custom units.",
                                "examples": [
                                  true
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of product units",
        "operationId": "getListOfProductUnits",
        "description": "",
        "tags": [
          "Units"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/products/{guid}/gifts": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "items"
                      ],
                      "properties": {
                        "items": {
                          "$ref": "#/components/schemas/productGifts"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of product gifts",
        "operationId": "getListOfProductGifts",
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "description": "Returns list of gifts related (product variants) to product.",
        "tags": [
          "Product gifts"
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "items"
                      ],
                      "properties": {
                        "items": {
                          "$ref": "#/components/schemas/productGifts"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Insertion gift product",
        "operationId": "createProductGift",
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "description": "",
        "tags": [
          "Product gifts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "giftCode"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "giftCode": {
                        "type": "string",
                        "description": "Code of product variant.",
                        "examples": [
                          "0006"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "items"
                      ],
                      "properties": {
                        "items": {
                          "$ref": "#/components/schemas/productGifts"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Setting gifts to product",
        "operationId": "steGiftsToProduct",
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Product guid",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "description": "",
        "tags": [
          "Product gifts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "giftCodes"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "giftCodes": {
                        "type": "array",
                        "maxItems": 50,
                        "description": "array of gift codes.",
                        "items": {
                          "type": "object",
                          "required": [
                            "code"
                          ],
                          "additionalProperties": false,
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Code of product variant.",
                              "examples": [
                                "0006"
                              ]
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/products/reviews": {
      "get": {
        "deprecated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "reviews",
                        "paginator"
                      ],
                      "properties": {
                        "reviews": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "guid",
                              "date",
                              "orderCode",
                              "rating",
                              "productName",
                              "productGuid",
                              "description",
                              "fullName",
                              "email",
                              "customerGuid",
                              "authorized",
                              "visible",
                              "reaction",
                              "updated"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Review id.",
                                "examples": [
                                  1
                                ]
                              },
                              "guid": {
                                "$ref": "#/components/schemas/typeGuid"
                              },
                              "date": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "Review creation date."
                              },
                              "orderCode": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Order code related to review. Can be null.",
                                "examples": [
                                  "2011000002"
                                ]
                              },
                              "rating": {
                                "type": "integer",
                                "description": "Number from 1 to 5 representing starts of review's rating.",
                                "examples": [
                                  5
                                ]
                              },
                              "productName": {
                                "type": "string",
                                "description": "Product name related to review.",
                                "examples": [
                                  "Snack"
                                ]
                              },
                              "productGuid": {
                                "oneOf": [
                                  {
                                    "$ref": "#/components/schemas/typeGuidUnlimited"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "description": "Product guid related to review."
                              },
                              "description": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "examples": [
                                  "Snack was very good"
                                ]
                              },
                              "fullName": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Fullname of review's author. Can be null.",
                                "examples": [
                                  "John Doe"
                                ]
                              },
                              "email": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Email of the review author. If it's a registered customer and the review email is empty, it's filled with the customer's main account email. Can be null.",
                                "examples": [
                                  "johndoe@email.tld"
                                ]
                              },
                              "customerGuid": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Customer guid related to review. Can be null.",
                                "examples": [
                                  "443cad54-73bc-11e8-8216-002590dad85e"
                                ]
                              },
                              "authorized": {
                                "type": "boolean",
                                "examples": [
                                  true
                                ]
                              },
                              "visible": {
                                "type": "boolean",
                                "examples": [
                                  false
                                ]
                              },
                              "reaction": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "reactionCreated",
                                  "reactionFullName",
                                  "reactionEmail",
                                  "reactionText"
                                ],
                                "properties": {
                                  "reactionCreated": {
                                    "$ref": "#/components/schemas/typeDateTimeNullable",
                                    "description": "Date of creation of reaction. Can be null."
                                  },
                                  "reactionFullName": {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "examples": [
                                      "John Doe"
                                    ]
                                  },
                                  "reactionEmail": {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "examples": [
                                      "johndoe@email.tld"
                                    ]
                                  },
                                  "reactionText": {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "examples": [
                                      "Thank you for your review!"
                                    ]
                                  }
                                }
                              },
                              "updated": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "Timestamp whenever the rating is changed"
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of products reviews",
        "operationId": "getListOfProductsReviewsDeprecated",
        "description": "Returns list of product's reviews. Endpoint is deprecated. See new endpoint reviews/products replacing this.",
        "tags": [
          "Reviews"
        ],
        "parameters": [
          {
            "name": "dateFrom",
            "in": "query",
            "description": "Filter reviews with creation date after date",
            "required": true,
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "Filter reviews with creation date before date",
            "required": true,
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeFrom",
            "in": "query",
            "description": "Filter reviews changed after this date (included)",
            "required": true,
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productGuid",
            "in": "query",
            "description": "Product identifier to filter reviews by.",
            "required": true,
            "example": "91670fd3-5b3d-11e7-819d-002590dc5efc",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderCode",
            "in": "query",
            "description": "Order identifier to filter reviews by.",
            "required": true,
            "example": "2011000002",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultItemsPerPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/pricelists": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "pricelists"
                      ],
                      "properties": {
                        "pricelists": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/pricelist"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of price lists",
        "operationId": "getListOfPriceLists",
        "description": "Listing of all price lists set up in e-shop. Does not contain the\npaging, always lists all price lists.",
        "tags": [
          "Price lists"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/pricelist"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Pricelist insertion",
        "operationId": "createPricelist",
        "description": "",
        "tags": [
          "Price lists"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128,
                        "description": "Name of the pricelist",
                        "examples": [
                          "Hlavní ceník"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/pricelists/{id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "pricelist"
                      ],
                      "properties": {
                        "pricelist": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/pricelistDetail"
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Pricelist detail",
        "operationId": "getPricelistDetail",
        "description": "Price list detail with product prices (variants) and info on discounts and limitations of purchase (minimum and maximum price)",
        "tags": [
          "Price lists"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Price list ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "code",
            "in": "query",
            "description": "Product variant code",
            "example": "106/BIL",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "guid",
            "in": "query",
            "description": "Product GUID",
            "example": "94fe7ffc-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 100.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "pricelist-code-not-found",
                      "message": "Price list code '43/BILL' doesn't exist. Code skipped.",
                      "instance": "43/BILL"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Input data for code '43/BIL' doesn't correct. Code\nskipped.",
                      "instance": "43/BIL"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "examples": {
                  "buy-price-and-purchase-price": {
                    "value": {
                      "data": null,
                      "errors": [
                        {
                          "errorCode": "invalid-request-data",
                          "message": "Input data for code \"0001\" is not correct. Cannot set \"price.buyPrice\" and \"prices.purchasePrice\" at the same time. Please use \"prices.purchasePrice\" only as buy price is deprecated. Code skipped.",
                          "instance": "0001"
                        }
                      ]
                    }
                  },
                  "invalid-vat-rate": {
                    "value": {
                      "data": null,
                      "errors": [
                        {
                          "errorCode": "invalid-request-data",
                          "message": "Input data for code \"0001\" is not correct. Invalid \"vatRate\" value. Code skipped.",
                          "instance": "0001"
                        }
                      ]
                    }
                  },
                  "invalid-vat-rate-purchase-price": {
                    "value": {
                      "data": null,
                      "errors": [
                        {
                          "errorCode": "invalid-request-data",
                          "message": "Input data for code \"0001\" is not correct. Invalid \"purchasePriceVatRate\" value. Code skipped.",
                          "instance": "0001"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "pricelist-not-found",
                      "message": "Pricelist with id \"11\" not found.",
                      "instance": "11"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Update pricelist",
        "operationId": "updatePricelist",
        "description": "This endpoint allows updating price fields and other attributes from a\npricelist of a product (variant).\n\nYou can request multiple updates at once; the maximum is 300 updates per\nrequest.\n\nThe request must contain a product variant code `code` and at least one\nof the `price`,\n `priceWithVat`, `priceWithoutVat`, `orderableAmount` or `sales` objects.\n\nSend only fields you want to change, the others will stay untouched. Be\naware of the difference between\n\n\n- not providing a field: the field will not be changed\n\n\n- providing e. g. `data.price.buyPrice: null` will remove the price\n\n\nIn case the request will be properly formatted, but an error occurs for\none of the records, the correct records\n\nwill be updated, the response will be `200 OK` and there will be records\nin the `errors` array for each failed\n\nrecord. If all records are incorrect, the response code will be `400 BAD\nREQUEST` instead.\n\n\nIf you set `includingVat` or `vatRate` field, current data for product\n(or variant) will be recalculated. (even through untouched by your\nrequest)\n\nObject `price` directly sets price of product, without recalculating.\n\nObject `priceWithVat` sets price of product, respecting it is price\n**with** VAT and thus recalculating if needed.\n\nObject `priceWithoutVat` sets price of product, respecting it is price\n**without** VAT and thus recalculating if needed.\n\n\nNote, that you can change `buyPrice` only for default price list! For\nothers price lists, value stays `null`.\n\n\nFor non-vat payer e-shops, `vatRate` and `includingVat` fields are\nforbidden to use and fields `price`, `priceWithVat` and\n`priceWithoutVat`\n\nall works the same.\n\nIn order to change the currency of the prices, you will need to have the Currencies module (Cizí měny) activated on the customer's e-shop.\nNote that if you change the currency code of the price list, all prices will not be recalculated to the new currency; only the currency code will be changed.",
        "tags": [
          "Price lists"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Pricelist id",
            "required": true,
            "example": "1",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "code"
                      ],
                      "minProperties": 2,
                      "properties": {
                        "code": {
                          "type": "string",
                          "description": "Product variant code",
                          "examples": [
                            "106/BIL"
                          ]
                        },
                        "currencyCode": {
                          "type": "string",
                          "description": "Currency code. List of available currencies within the e-shop can be found in [Eshop info](#tag/eshop/geteshopinfo) endpoint.",
                          "examples": [
                            "CZK"
                          ]
                        },
                        "vatRate": {
                          "$ref": "#/components/schemas/typePriceNullable",
                          "description": "VatRate for prices",
                          "examples": [
                            "21.00"
                          ]
                        },
                        "includingVat": {
                          "type": "boolean",
                          "description": "Whether the product prices are saved with vat or without.",
                          "examples": [
                            true
                          ]
                        },
                        "orderableAmount": {
                          "type": "object",
                          "additionalProperties": false,
                          "description": "Orderable quantity",
                          "properties": {
                            "minimumAmount": {
                              "$ref": "#/components/schemas/typePositiveAmountNullable",
                              "description": "Minimum orderable quantity",
                              "examples": [
                                "1"
                              ]
                            },
                            "maximumAmount": {
                              "$ref": "#/components/schemas/typePositiveAmountNullable",
                              "description": "Maximum orderable quantity",
                              "examples": [
                                "10"
                              ]
                            }
                          }
                        },
                        "sales": {
                          "type": "object",
                          "additionalProperties": false,
                          "description": "Definition of discounts",
                          "properties": {
                            "minPriceRatio": {
                              "$ref": "#/components/schemas/typePriceRatio",
                              "description": "3 decimal places accuracy, (from `0.0000` to `1.0000`), maximum permitted discount.",
                              "examples": [
                                "0.880"
                              ]
                            },
                            "freeShipping": {
                              "type": "boolean",
                              "description": "flag, whether the product will have a free transport after it is placed in the cart.",
                              "examples": [
                                true
                              ]
                            },
                            "freeBilling": {
                              "type": "boolean",
                              "description": "flag, whether the product will have a free payment after it is placed in the cart.",
                              "examples": [
                                true
                              ]
                            },
                            "loyaltyDiscount": {
                              "type": "boolean",
                              "description": "flag, whether the loyalty discount should be used.",
                              "examples": [
                                true
                              ]
                            },
                            "volumeDiscount": {
                              "type": "boolean",
                              "description": "flag, whether the volume discount should be used.",
                              "examples": [
                                true
                              ]
                            },
                            "quantityDiscount": {
                              "type": "boolean",
                              "description": "flag, whether the volume/multibuy discount should be used.",
                              "examples": [
                                true
                              ]
                            },
                            "discountCoupon": {
                              "type": "boolean",
                              "description": "flag, whether a discount coupon can be applied.",
                              "examples": [
                                true
                              ]
                            }
                          }
                        },
                        "price": {
                          "type": "object",
                          "additionalProperties": false,
                          "description": "Prices",
                          "properties": {
                            "price": {
                              "$ref": "#/components/schemas/typePriceNullable",
                              "description": "Price, at which the customer can purchase the product. It can be loaded by the special discounted price and influenced by the price ratio. (can be `null`)",
                              "examples": [
                                "650.00"
                              ]
                            },
                            "commonPrice": {
                              "$ref": "#/components/schemas/typePriceNullable",
                              "description": "standard price, use for information and comparison to competitors (can be `null`)",
                              "examples": [
                                "750.00"
                              ]
                            },
                            "buyPrice": {
                              "$ref": "#/components/schemas/typePriceNullable",
                              "description": "purchase price. Deprecated, use `prices.purchasePrice` instead.",
                              "examples": [
                                "500.00"
                              ],
                              "deprecated": true
                            },
                            "priceRatio": {
                              "$ref": "#/components/schemas/typePriceRatio",
                              "description": "price ratio. The price of the product shall be calculated by multiplying the price and this coefficient. The price ratio affects only the price (`price`), the special discounted price (`actionPrice`) is not affected by the ratio. This ratio has 3 decimal places and can be greater than 1,000",
                              "examples": [
                                "1.000"
                              ]
                            },
                            "actionPrice": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "additionalProperties": false,
                              "description": "Special discounted price",
                              "properties": {
                                "price": {
                                  "$ref": "#/components/schemas/typePriceNullable",
                                  "description": "special discounted price. It is only used if set and if the validity date is set too, form (`fromDate`) to (`toData`).",
                                  "examples": [
                                    "600.00"
                                  ]
                                },
                                "fromDate": {
                                  "$ref": "#/components/schemas/typeDateNullable",
                                  "description": "special discounted price effective date - from",
                                  "examples": [
                                    "2018-02-19"
                                  ]
                                },
                                "toDate": {
                                  "$ref": "#/components/schemas/typeDateNullable",
                                  "description": "special discounted price effective date - up to",
                                  "examples": [
                                    "2018-02-25"
                                  ]
                                }
                              }
                            }
                          }
                        },
                        "priceWithVat": {
                          "type": "object",
                          "additionalProperties": false,
                          "description": "Prices with VAT",
                          "properties": {
                            "price": {
                              "$ref": "#/components/schemas/typePriceNullable",
                              "description": "Price, at which the customer can purchase the product. It can be loaded by the special discounted price and influenced by the price ratio. (can be `null`)",
                              "examples": [
                                "650.00"
                              ]
                            },
                            "commonPrice": {
                              "$ref": "#/components/schemas/typePriceNullable",
                              "description": "standard price, use for information and comparison to competitors (can be `null`)",
                              "examples": [
                                "750.00"
                              ]
                            },
                            "buyPrice": {
                              "$ref": "#/components/schemas/typePriceNullable",
                              "description": "purchase price. Deprecated, use `prices.purchasePrice` instead.",
                              "examples": [
                                "500.00"
                              ],
                              "deprecated": true
                            },
                            "priceRatio": {
                              "$ref": "#/components/schemas/typePriceRatio",
                              "description": "price ratio. The price of the product shall be calculated by multiplying the price and this coefficient. The price ratio affects only the price (`price`), the special discounted price (`actionPrice`) is not affected by the ratio. This ratio has 3 decimal places and can be greater than 1,000",
                              "examples": [
                                "1.000"
                              ]
                            },
                            "actionPrice": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "additionalProperties": false,
                              "description": "Special discounted price",
                              "properties": {
                                "price": {
                                  "$ref": "#/components/schemas/typePriceNullable",
                                  "description": "special discounted price. It is only used if set and if the validity date is set too, form (`fromDate`) to (`toData`).",
                                  "examples": [
                                    "600.00"
                                  ]
                                },
                                "fromDate": {
                                  "$ref": "#/components/schemas/typeDateNullable",
                                  "description": "special discounted price effective date - from",
                                  "examples": [
                                    "2018-02-19"
                                  ]
                                },
                                "toDate": {
                                  "$ref": "#/components/schemas/typeDateNullable",
                                  "description": "special discounted price effective date - up to",
                                  "examples": [
                                    "2018-02-25"
                                  ]
                                }
                              }
                            }
                          }
                        },
                        "priceWithoutVat": {
                          "type": "object",
                          "additionalProperties": false,
                          "description": "Prices without VAT",
                          "properties": {
                            "price": {
                              "$ref": "#/components/schemas/typePriceNullable",
                              "description": "Price, at which the customer can purchase the product. It can be loaded by the special discounted price and influenced by the price ratio. (can be `null`)",
                              "examples": [
                                "650.00"
                              ]
                            },
                            "commonPrice": {
                              "$ref": "#/components/schemas/typePriceNullable",
                              "description": "standard price, use for information and comparison to competitors (can be `null`)",
                              "examples": [
                                "750.00"
                              ]
                            },
                            "buyPrice": {
                              "$ref": "#/components/schemas/typePriceNullable",
                              "description": "purchase price. Deprecated, use `prices.purchasePrice` instead.",
                              "examples": [
                                "500.00"
                              ],
                              "deprecated": true
                            },
                            "priceRatio": {
                              "$ref": "#/components/schemas/typePriceRatio",
                              "description": "price ratio. The price of the product shall be calculated by multiplying the price and this coefficient. The price ratio affects only the price (`price`), the special discounted price (`actionPrice`) is not affected by the ratio. This ratio has 3 decimal places and can be greater than 1,000",
                              "examples": [
                                "1.000"
                              ]
                            },
                            "actionPrice": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "additionalProperties": false,
                              "description": "Special discounted price",
                              "properties": {
                                "price": {
                                  "$ref": "#/components/schemas/typePriceNullable",
                                  "description": "special discounted price. It is only used if set and if the validity date is set too, form (`fromDate`) to (`toData`).",
                                  "examples": [
                                    "600.00"
                                  ]
                                },
                                "fromDate": {
                                  "$ref": "#/components/schemas/typeDateNullable",
                                  "description": "special discounted price effective date - from",
                                  "examples": [
                                    "2018-02-19"
                                  ]
                                },
                                "toDate": {
                                  "$ref": "#/components/schemas/typeDateNullable",
                                  "description": "special discounted price effective date - up to",
                                  "examples": [
                                    "2018-02-25"
                                  ]
                                }
                              }
                            }
                          }
                        },
                        "prices": {
                          "type": [
                            "object"
                          ],
                          "additionalProperties": false,
                          "properties": {
                            "purchasePrice": {
                              "type": "object",
                              "additionalProperties": false,
                              "description": "Purchase price. Currently for preview only! Will be used as replace for buy price. Please watch API news.",
                              "properties": {
                                "price": {
                                  "$ref": "#/components/schemas/typePriceNullable",
                                  "description": "purchase price.",
                                  "examples": [
                                    "500.00"
                                  ]
                                },
                                "vatRate": {
                                  "$ref": "#/components/schemas/typePriceNullable",
                                  "description": "VatRate for prices",
                                  "examples": [
                                    "21.00"
                                  ]
                                },
                                "includingVat": {
                                  "type": "boolean",
                                  "description": "flag, whether the purchase price is including VAT",
                                  "examples": [
                                    true
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "It is not possible to delete default pricelist.",
                      "instance": "integration-call"
                    }
                  ]
                }
              }
            }
          },
          "423": {
            "description": "Locked",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "pricelist-blocked",
                      "message": "Product import is running now. Removing pricelists has\nbeen temporarily prohibited.",
                      "instance": "integration-call"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Pricelist delete",
        "operationId": "deletePricelist",
        "description": "Deletion of pricelist can fail with error `423` in case of running\nimport.",
        "tags": [
          "Price lists"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "pricelist ID (number)",
            "required": true,
            "example": "1",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/pricelists/{id}/snapshot": {
      "get": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "List of all price list details",
        "operationId": "getListOfAllPricelistDetails",
        "description": "Using this endpoint, you can get list of all price list details with information on each price (like in Price list Detail endpoint) asynchronously. See how  [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer’s portal.\n\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each price list taking one line of output file.\n\n\nOne price list in response has the same format as price list detail response. See [Price list snapshot schema](/shoptet-api/openapi/snapshot/pricelistsnapshot) for more details.\n\n\nResult file is compressed using GZIP.",
        "tags": [
          "Price lists"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Price list ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "codeFrom",
            "in": "query",
            "description": "Export price list items with code after given value",
            "example": "0000000006",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codeTo",
            "in": "query",
            "description": "Export price list items with code before given value",
            "example": "0000000006",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "actionPriceDateFrom",
            "in": "query",
            "description": "Export price list items with active action price date after date",
            "example": "2019-09-05",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "actionPriceDateTo",
            "in": "query",
            "description": "Export price list items with active action price before date",
            "example": "2019-09-05",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vatRate",
            "in": "query",
            "description": "Export price list items with given vat rate",
            "example": "21.0",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "currencyCode",
            "in": "query",
            "description": "Export price list items with given currency code",
            "example": "CZK",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderableMinAmount",
            "in": "query",
            "description": "Export price list items with orderable minimal amount",
            "example": "10",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "orderableMinAmountFrom",
            "in": "query",
            "description": "Export price list items with orderable minimal amount amount after\ngiven value",
            "example": "10",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "orderableMinAmountTo",
            "in": "query",
            "description": "Export price list items with orderable minimal amount before given\nvalue",
            "example": "100",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "orderableMaxAmount",
            "in": "query",
            "description": "Export price list items with orderable maximal amount",
            "example": "20",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "orderableMaxAmountFrom",
            "in": "query",
            "description": "Export price list items with orderable maximal amount after given\nvalue",
            "example": "20",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "orderableMaxAmountTo",
            "in": "query",
            "description": "Export price list items with orderable maximal amount before given\nvalue",
            "example": "200",
            "schema": {
              "type": "number"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-snapshot-endpoint": true,
        "x-shoptet-response-ref": "#/definitions/pricelistSnapshot"
      }
    },
    "/api/sales-channels": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "salesChannels"
                      ],
                      "properties": {
                        "salesChannels": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "guid",
                              "name",
                              "type",
                              "currencies",
                              "languages",
                              "createdAt",
                              "updatedAt"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Sales channel ID.",
                                "examples": [
                                  1
                                ]
                              },
                              "guid": {
                                "$ref": "#/components/schemas/typeGuid",
                                "description": "Sales channel GUID."
                              },
                              "name": {
                                "type": "string",
                                "description": "Sales channel name.",
                                "examples": [
                                  "My sales channel"
                                ]
                              },
                              "type": {
                                "enum": [
                                  "in_store",
                                  "online_store",
                                  "marketplace",
                                  "system"
                                ],
                                "description": "Type of sales channel.",
                                "examples": [
                                  "in_store"
                                ]
                              },
                              "currencies": {
                                "type": "array",
                                "items": {
                                  "$ref": "#/components/schemas/typeCurrency"
                                },
                                "description": "Currencies collection."
                              },
                              "languages": {
                                "type": "array",
                                "items": {
                                  "$ref": "#/components/schemas/typeLanguage"
                                },
                                "description": "Languages collection."
                              },
                              "createdAt": {
                                "$ref": "#/components/schemas/typeDateTime"
                              },
                              "updatedAt": {
                                "$ref": "#/components/schemas/typeDateTimeNullable"
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of all sales channels",
        "operationId": "getSalesChannels",
        "description": "Provides a list of all sales channels.",
        "tags": [
          "Sales channels"
        ],
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "description": "supported values: `in_store`, `online_store`, `marketplace`",
            "example": "in_store",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/orders": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "orders",
                        "paginator"
                      ],
                      "properties": {
                        "orders": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "guid",
                              "creationTime",
                              "changeTime",
                              "fullName",
                              "company",
                              "email",
                              "remark",
                              "customerGuid",
                              "cashDeskOrder",
                              "adminUrl",
                              "status",
                              "shipping",
                              "paymentMethod",
                              "price",
                              "paid"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "order number. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
                                "examples": [
                                  "2017000092"
                                ]
                              },
                              "guid": {
                                "type": "string",
                                "description": "global unique permanent order identifier (can be `null` for old orders)",
                                "examples": [
                                  "c5012051-d7ca-11e0-9a5c-feab5ed617ed"
                                ]
                              },
                              "creationTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time, when the order was created. ISO 8601 format."
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time of the order's last change. ISO 8601 format."
                              },
                              "fullName": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "customer full name (can be `null`)",
                                "examples": [
                                  "John Doe"
                                ]
                              },
                              "company": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "company name (can be `null`)",
                                "examples": [
                                  "Shoptet s.r.o."
                                ]
                              },
                              "email": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "purchaser e-mail (can be `null`)",
                                "examples": [
                                  "customer@someemail.com"
                                ]
                              },
                              "phone": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "purchaser phone number (can be `null`)",
                                "examples": [
                                  "+420604600444"
                                ]
                              },
                              "remark": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "customer remark  (can be `null`).",
                                "examples": [
                                  "Please deliver the goods to the back door."
                                ]
                              },
                              "customerGuid": {
                                "oneOf": [
                                  {
                                    "$ref": "#/components/schemas/typeGuidUnlimited"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "description": "customer identifier, if the customer is registered in the e-shop (can be `null`)"
                              },
                              "cashDeskOrder": {
                                "type": "boolean",
                                "description": "flag, whether the order is from the cash desk (as opposed to the e-shop)",
                                "examples": [
                                  true
                                ]
                              },
                              "adminUrl": {
                                "type": "string",
                                "description": "URL to administration leading to order detail. URL keeps the administration language settings.",
                                "examples": [
                                  "https://www.domena-eshopu.cz/admin/objednavky-detail?id=2"
                                ]
                              },
                              "status": {
                                "type": [
                                  "object",
                                  "null"
                                ],
                                "additionalProperties": false,
                                "required": [
                                  "name",
                                  "id"
                                ],
                                "properties": {
                                  "name": {
                                    "type": [
                                      "string",
                                      "null"
                                    ],
                                    "description": "status name",
                                    "examples": [
                                      "Processing"
                                    ]
                                  },
                                  "id": {
                                    "type": "integer",
                                    "description": "status identifier",
                                    "examples": [
                                      -1
                                    ]
                                  }
                                }
                              },
                              "source": {
                                "type": [
                                  "object",
                                  "null"
                                ],
                                "additionalProperties": false,
                                "required": [
                                  "name",
                                  "id"
                                ],
                                "properties": {
                                  "name": {
                                    "type": [
                                      "string",
                                      "null"
                                    ],
                                    "description": "source name",
                                    "examples": [
                                      "E-Shop"
                                    ]
                                  },
                                  "id": {
                                    "type": "integer",
                                    "description": "source identifier",
                                    "examples": [
                                      -1
                                    ]
                                  }
                                }
                              },
                              "shipping": {
                                "$ref": "#/components/schemas/shipping"
                              },
                              "paymentMethod": {
                                "oneOf": [
                                  {
                                    "$ref": "#/components/schemas/paymentMethod"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "price": {
                                "$ref": "#/components/schemas/price",
                                "description": "price of the order"
                              },
                              "paid": {
                                "type": [
                                  "boolean",
                                  "null"
                                ],
                                "description": "flag, whether the order was paid. In addition to `true` a `false`, can also be `null`, if the payment status is unknown.",
                                "examples": [
                                  true
                                ]
                              },
                              "preAuthorization": {
                                "$ref": "#/components/schemas/orderPreAuthorization"
                              },
                              "salesChannelGuid": {
                                "$ref": "#/components/schemas/typeGuidNullable",
                                "description": "sales channel guid"
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-parameter",
                      "message": "Invalid \"orderCodes\" parameter. Expected max. 50 elements, but 55 given.",
                      "instance": "orderCodes"
                    },
                    {
                      "errorCode": "missing-parameter",
                      "message": "Missing value for parameter \"orderCodes\".",
                      "instance": "orderCodes"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "List of orders",
        "operationId": "getListOfOrders",
        "description": "List of orders in e-shop and cash desks. Endpoint supports  [Paging](#section/basic-principles/paging). For default calls, it returns 50 orders,\n\nusing the parameter `?itemsPerPage=100`, you can request up to 100\norders at a time. Temporarily disabled, only 50 orders per page is\nsupported. We apologize for the inconvenience.\n\n\nThe list can be filtered according to status, transport, payment, date\nof creation, order number and customer number.\n\n\nThe code (`code`) is the order identifier. Although this is usually a\nnumber, it is necessary to take into account that this might also\ninclude letters, dash, etc.\n\nUse `orderCodes` request parameter to get the list of specific orders. Order codes are separated by a comma. If you use this query parameter, other filters are not applied, and the set of particular orders is returned. Please note that this parameter **accepts max. 50 order codes in request parameter**.",
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "statusId",
            "in": "query",
            "description": "Purchase order filtering, according to order status id.",
            "schema": {
              "type": "integer"
            },
            "example": -1
          },
          {
            "name": "shippingGuid",
            "in": "query",
            "description": "Purchase order filtering, according to forwarder GUID.",
            "schema": {
              "type": "string"
            },
            "example": "ecb3e399-2f57-11eb-8853-0800275177b9"
          },
          {
            "name": "shippingCompanyCode",
            "in": "query",
            "description": "Purchase order filtering, according to forwarder [company\ncode](#tag/shipping-methods/getlistofshippingmethods).",
            "schema": {
              "type": "string"
            },
            "example": "zasilkovna"
          },
          {
            "name": "paymentMethodGuid",
            "in": "query",
            "description": "Purchase order filtering, according to payment method.",
            "schema": {
              "type": "string"
            },
            "example": "b57f91bb-e920-11e0-baa3-7dc668b75ca8"
          },
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "Purchase order filtering, according to date of creation. ISO 8601\nformat (\"2017-12-12T22:08:01+0100\").",
            "schema": {
              "type": "string"
            },
            "example": "2014-09-05T00:00:00%2B0000"
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "Purchase order filtering, according to date of creation. ISO 8601\nformat (\"2017-12-12T22:08:01+0100\").",
            "schema": {
              "type": "string"
            },
            "example": "2014-09-05T00:00:00%2B0000"
          },
          {
            "name": "codeFrom",
            "in": "query",
            "description": "Purchase order filtering, according to order code.",
            "schema": {
              "type": "string"
            },
            "example": 6
          },
          {
            "name": "codeTo",
            "in": "query",
            "description": "Purchase order filtering, according to order code.",
            "schema": {
              "type": "string"
            },
            "example": 6
          },
          {
            "name": "customerGuid",
            "in": "query",
            "description": "Purchase order filtering, according to customer number.",
            "schema": {
              "type": "string"
            },
            "example": "443cad54-73bc-11e8-8216-002590dad85e"
          },
          {
            "name": "email",
            "in": "query",
            "description": "Purchase order filtering, according to customer e-mail. The accurate\nmatch is searched for, regardless of capitalization.",
            "schema": {
              "type": "string"
            },
            "example": "john.doe@example.com"
          },
          {
            "name": "phone",
            "in": "query",
            "description": "Purchase order filtering, according to customer phone. International\nformat only (+420123456789)",
            "schema": {
              "type": "string",
              "example": 420123456789
            }
          },
          {
            "name": "productCode",
            "in": "query",
            "description": "Order filter by product's code that is in order.",
            "schema": {
              "type": "string",
              "example": "15/ZLU"
            }
          },
          {
            "name": "changeTimeFrom",
            "in": "query",
            "description": "Purchase order filtering, according to date of last update. ISO 8601\nformat (\"2017-12-12T22:08:01+0100\").",
            "schema": {
              "type": "string"
            },
            "example": "2014-09-05T00:00:00%2B0000"
          },
          {
            "name": "changeTimeTo",
            "in": "query",
            "description": "Purchase order filtering, according to date of last update. ISO 8601\nformat (\"2017-12-12T22:08:01+0100\").",
            "schema": {
              "type": "string"
            },
            "example": "2014-09-05T00:00:00%2B0000"
          },
          {
            "name": "sourceId",
            "in": "query",
            "description": "Order source filtering according to source id. For more information,\nsee List of order sources endpoint.",
            "schema": {
              "type": "integer"
            },
            "example": -1
          },
          {
            "name": "orderCodes",
            "in": "query",
            "description": "Define the output set of orders. Use max. 50 order codes separated by a comma. No additional filters take\neffect.",
            "example": "2025000004,2025000002,2017000038,2017000025,2015000248",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 50.",
            "example": 44,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "order"
                      ],
                      "properties": {
                        "order": {
                          "$ref": "#/components/schemas/order"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Consumption tax module is not enabled",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "It requires active consumptionTax module in eshop when \"consumptionTax\" is present in order items data.",
                      "instance": "consumptionTax"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Consumption tax id not exists / not visible",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Consumption tax with id \"4\" not found.",
                      "instance": "payload"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Consumption tax with id \"2\" is not visible.",
                      "instance": "payload"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Order insertion",
        "operationId": "createOrder",
        "description": "This endpoint enables insert the order into Shoptet, which was created\nin other system. You can use it for an import\n\nfrom an older e-shop solution, or to transfer orders from external sales\nchannels.\n\nA large amount of info can be set, but for regular usage only a few\nattributes are needed. Values of other\n\nattributes are added as per their default values. The detailed\ninformation can be found in the right pane, after\n\nclicking on title \"Order insertion\" above (search for \"Request\" and\n\"Attributes” sections).\n\n\nRequest is sent in JSON format in its body. Simple example (detailed\nexample can be found in call example in right pane):\n\n\n```\n\n{\n    \"data\": {\n        \"email\": \"foo@bar.cz\",\n        \"externalCode\": \"123\",\n        \"paymentMethodGuid\": \"6f2c8e36-3faf-11e2-a723-705ab6a2ba75\",\n        \"shippingGuid\": \"8921cdc1-051b-11e5-a8d3-ac162d8a2454\",\n        \"billingAddress\": {\n            \"fullName\": \"Jan Novák\",\n            \"street\": \"Rovná\",\n            \"city\": \"Rovina\",\n            \"zip\": \"12300\"\n        },\n        \"currency\": {\n            \"code\": \"CZK\"\n        },\n        \"items\": [\n            {\n                \"itemType\": \"product\",\n                \"code\": \"32/ZEL\",\n                \"vatRate\": \"21.00\",\n                \"itemPriceWithVat\": \"121.00\"\n            },\n            {\n                \"itemType\": \"billing\",\n                \"name\": \"Platba převodem\",\n                \"vatRate\": \"21.00\",\n                \"itemPriceWithVat\": \"0\"\n            },\n            {\n                \"itemType\": \"shipping\",\n                \"name\": \"PPL\",\n                \"vatRate\": \"21.00\",\n                \"itemPriceWithVat\": \"59.00\"\n            }\n        ]\n    }\n}\n\n```\n\n\nWhether the field is mandatory, apart from the basic definition, also\ndepends on whether the order was created via the cash desk\n\n(`cashDeskOrder: true`) or via e-shop. Some fields from invoicing,\ndelivery and contact data\n\nare mandatory or optional, as per e-shop settings (see also e-shop\nadministration `Settings > Customers > Mandatory fields`).\n\n\nWhen the order is created, it is checked, whether the e-shop includes\nproducts with the respective code (can be suppressed with\n\nGET parameter `suppressProductChecking=true`),\n\nthe products from the order are deducted from the stock (can be\nsuppressed with the GET parameter `suppressStockMovements=true`),\n documentation is created for the order (can be suppressed with the GET parameter `suppressDocumentGeneration=true`),\na confirmation e-mail is sent (can be suppressed with the GET parameter\n`suppressEmailSending=true`) and a webhook is executed for the new\norder.\n\n**Parameters `suppressProductChecking=true` and\n`suppressStockMovements=true` are to be used only for orders that will\nnot be changed or deleted in the future.\n\nEditing or deleting such an order can damage the consistency of\nwarehousing.**\n\n\nParameter `suppressHistoricalMandatoryFields=true` can be used to\ndisable mandatory fields checks, but only for \"historical\"\n\norders (`creationTime` is older than 24 hours). Keep in mind even\nhistorical orders should be kept consistent and complete\n\nas much as possible to allow their processing for statistics, volume\ncalculations etc.\n\n\nSetting the mandatory items for invoicing and the delivery address can\nbe different between individual e-shops. The mandatory items corresponds\nto the settings\n\nfor ordering from the basket.\n\n\nParameters `suppressHistoricalPaymentChecking` and\n`suppressHistoricalShippingChecking` allow corresponding field\n(`paymentMethodGuid` and/or `shippingGuid`)\n\nto be `null`. In that case, if an billing/shipping item is provided in\n`items` list, `name` field must be filled in that item.\n\n\nTo remove products from the stock, the shop (or product) setting as to\nwhether the inventory can be negative or not is respected.\n\nIf a negative value is not permitted for shopping and the order cannot\nbe covered from the current inventory, the order is not created and the\nAPI\n\nreturns an error message in the `errors` field.\n\n\nThe order's minimum size or maximum number of items as per the settings\nof e-shop are not checked.\n\n\nThe endpoint only checks the same parameters as the order detail.\n\n\nThe order can be inserted while using currencies setup in the eshop (see\n`/api/eshop`). The exchange rate related to the\n\neshop default currency is optional. If not provided, the current eshop\nexchange rate will be used.\n\nFor historical orders the exchange rate should be provided using the\nhistorical value of the order's creation date.\n\nShoptet eshops do not store historical exchange rates.\n\nWarning: for SK and CZ different exchange rate format is used. You\nshould use the same form as you get from the endpoint\n\n`/api/eshop`. We will internally convert it to the correct format to be\ncompatible with eshop statistics calculations.\n\nBecause of the conversion, the value of `exchangeRate` in the response\nwill be different (inverse) to the one you had sent.\n\n\nWhen entering the order, the initial welcome e-mail is always sent. Even\nthough the order status is set differently to the initial value,\n\nthe e-mail associated with a status change is not sent, but the system\nwelcome e-mail is (to e-shop operator and customer).\n\n\nWhen creating the receipt (invoice, proforma invoice, delivery note) the\nreceipt is created with the current date and the 14 days due date, even\nthough\n\n`creationTime` is given from the past.\n\n\nExamples of how to work with the order and items statuses, and how to\nensure the correct insertion of a discount, can be found in a\n\nseparate [article at\ndevelopers.shoptet.com](https://developers.shoptet.com/api/documentation/creating-order/)\n\n\nAfter the order is successfully created, you will receive a response\nwith a 201 code and a response structure matching the order detail,\n\nwhich is returned by `/api/orders/<code>` endpoint.\n\n\n**Please note following rules**\n\n\n- `code` .. maxLength 10 characters\n\n\n- `email` .. maxLength 100 characters\n\n\n- `phone` .. maxLength 32 characters\n\n\n- `externalCode` .. maxLength 255 characters\n\n\n- `billingAddress.company` .. maxLength 255 characters\n\n\n- `billingAddress.fullName` .. maxLength 255 characters\n\n\n- `billingAddress.street` .. maxLength 255 characters\n\n\n- `billingAddress.houseNumber` .. maxLength 255 characters\n\n\n- `billingAddress.city` .. maxLength 255 characters\n\n\n- `billingAddress.district` .. maxLength 255 characters\n\n\n- `billingAddress.additional` .. maxLength 255 characters\n\n\n- `billingAddress.zip` .. maxLength 255 characters\n\n\n- `billingAddress.regionName` .. maxLength 255 characters\n\n\n- `billingAddress.regionShortcut` .. maxLength 255 characters\n\n\n- `billingAddress.companyId` .. maxLength 18 characters\n\n\n- `billingAddress.vatId` .. maxLength 16 characters\n\n\n- `billingAddress.taxId` .. maxLength 16 characters\n\n\n- `deliveryAddress.company` .. maxLength 255 characters\n\n\n- `deliveryAddress.fullName` .. maxLength 255 characters\n\n\n- `deliveryAddress.street` .. maxLength 255 characters\n\n\n- `deliveryAddress.houseNumber` .. maxLength 255 characters\n\n\n- `deliveryAddress.city` .. maxLength 255 characters\n\n\n- `deliveryAddress.district` .. maxLength 255 characters\n\n\n- `deliveryAddress.additional` .. maxLength 255 characters\n\n\n- `deliveryAddress.zip` .. maxLength 255 characters\n\n\n- `deliveryAddress.regionName` .. maxLength 255 characters\n\n\n- `deliveryAddress.regionShortcut` .. maxLength 255 characters\n\n\n- `notes.trackingNumber` .. maxLength 32 characters\n\n\n- `items.name` .. maxLength 250 characters\n\n\n- `items.variantName` .. maxLength 128 characters\n\n\n- `items.brand` .. maxLength 64 characters\n\n\n- `items.supplierName` .. maxLength 255 characters\n\n\n- `items.code` .. maxLength 64 characters\n\n\n- `items.additionalField` .. maxLength 255 characters\n\n\n- `items.amountUnit` .. maxLength 16 characters",
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "suppressDocumentGeneration",
            "in": "query",
            "description": "suppress the generation of linked documents.",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "suppressEmailSending",
            "in": "query",
            "description": "suppress sending the linked information e-mails.",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "suppressProductChecking",
            "in": "query",
            "description": "suppress the product existence check as per `code` and GUID",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "suppressStockMovements",
            "in": "query",
            "description": "suppress deduction of the products from stock",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "suppressHistoricalMandatoryFields",
            "in": "query",
            "description": "set the flag that disables mandatory fields checking",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "suppressHistoricalPaymentChecking",
            "in": "query",
            "description": "set the flag that `paymentMethodGuid` can be `null`",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "suppressHistoricalShippingChecking",
            "in": "query",
            "description": "set the flag that `shippingGuid` can be `null`",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/orderCreate"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/history/snapshot": {
      "get": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json; charset=utf-8": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "List of all remarks",
        "operationId": "getListOfAllRemarks",
        "description": "Using this endpoint, you can get list of all remarks with detailed info of each remark asynchronously.\n\nSee how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each remark taking one line of output file.\n\nOne remark in response has the same format as an item in [List of remarks for order](#tag/order-history/getlistofremarksfororder) and is extended with `orderCode` field, which identifies the relation to the order. See [Order history snapshot schema](/shoptet-api/openapi/snapshot/orderhistorysnapshot) for more details.\n\n\nUse `orderCodes` request parameter to get the list of specific orders remarks. Order codes are separated by a comma. Please note that this parameter **accepts max. 50 order codes in request parameter**.\n\n\nResult file is compressed using GZIP.",
        "tags": [
          "Order history"
        ],
        "parameters": [
          {
            "name": "orderCodes",
            "in": "query",
            "description": "Define the output set of orders remarks. Use max. 50 order codes separated by a comma.",
            "example": "2025000004,2025000002,2017000038,2017000025,2015000248",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "date and time of remark creation - lower limit",
            "example": "2025-06-23T14:17:00+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "date and time of remark creation - upper limit",
            "example": "2025-07-01T14:17:00+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "identification of change originator, either user’s e-mail, or system process identifier",
            "examples": {
              "User email": {
                "value": "john.doe@example.com"
              },
              "Process identifier": {
                "value": "api.service-21@fenix.myshoptet.com"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-snapshot-endpoint": true,
        "x-shoptet-response-ref": "#/definitions/orderHistorySnapshot"
      }
    },
    "/api/orders/snapshot": {
      "get": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-parameter",
                      "message": "Invalid \"orderCodes\" parameter. Expected max. 50 elements, but 55 given.",
                      "instance": "orderCodes"
                    },
                    {
                      "errorCode": "missing-parameter",
                      "message": "Missing value for parameter \"orderCodes\".",
                      "instance": "orderCodes"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "List of all orders",
        "operationId": "getListOfAllOrders",
        "description": "Using this endpoint, you can get list of all orders with detailed info of each order (like in Order Detail endpoint) asynchronously. See how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\n\nThe list may be filtered by date of creation and order code. The code is the order identifier. Although this is usually\na number, it is necessary to take into account that this might also include letters, dash, etc.\n\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each order taking one line of output file.\n\n\nOne order in response has the same format as order detail response. See [Order snapshot schema](/shoptet-api/openapi/snapshot/ordersnapshot) for more details.\n\n\nThis endpoint has several sections, which are exported only when requested in the `include` parameter (see [Section on demand](#section/basic-principles/section-on-demand)).\n\n\nInclude parameter     | Meaning\n---                   | ---\n`notes`               | Order remarks, including up to six additional fields, which can be freely used by e-shop for its individual needs. The field names can be defined in administration and this section returns their names.\n`images`              | Order images\n`shippingDetails`     | Transport details\n`stockLocation`       | Position in the stock\n`surchargeParameters` | Item surcharge parameters\n`productFlags`        | Item product flags\n\nUse `orderCodes` request parameter to get the list of specific orders. Order codes are separated by a comma. If you use this query parameter, other filters are not applied, and the set of particular orders is returned. Please note that this parameter **accepts max. 50 order codes in request parameter**.\n\nResult file is compressed using GZIP.",
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "include",
            "in": "query",
            "description": "Optional parts of response. Available values are\n`notes,images,shippingDetails,stockLocation,surchargeParameters`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderCodes",
            "in": "query",
            "description": "Define the output set of orders. Use max. 50 order codes separated by a comma. No additional filters take\neffect.",
            "example": "2025000004,2025000002,2017000038,2017000025,2015000248",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "statusId",
            "in": "query",
            "description": "Purchase order filtering, according to order status id.",
            "schema": {
              "type": "integer"
            },
            "example": -1
          },
          {
            "name": "shippingGuid",
            "in": "query",
            "description": "Purchase order filtering, according to forwarder GUID.",
            "schema": {
              "type": "string"
            },
            "example": "ecb3e399-2f57-11eb-8853-0800275177b9"
          },
          {
            "name": "shippingCompanyCode",
            "in": "query",
            "description": "Purchase order filtering, according to forwarder [company\ncode](#tag/shipping-methods/getlistofshippingmethods).",
            "schema": {
              "type": "string"
            },
            "example": "zasilkovna"
          },
          {
            "name": "paymentMethodGuid",
            "in": "query",
            "description": "Purchase order filtering, according to payment method.",
            "schema": {
              "type": "string"
            },
            "example": "b57f91bb-e920-11e0-baa3-7dc668b75ca8"
          },
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "Purchase order filtering, according to date of creation. ISO 8601\nformat (\"2017-12-12T22:08:01+0100\").",
            "schema": {
              "type": "string"
            },
            "example": "2014-09-05T00:00:00%2B0000"
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "Purchase order filtering, according to date of creation. ISO 8601\nformat (\"2017-12-12T22:08:01+0100\").",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codeFrom",
            "in": "query",
            "description": "Purchase order filtering, according to order code.",
            "schema": {
              "type": "string"
            },
            "example": 6
          },
          {
            "name": "codeTo",
            "in": "query",
            "description": "Purchase order filtering, according to order code.",
            "schema": {
              "type": "string"
            },
            "example": 6
          },
          {
            "name": "customerGuid",
            "in": "query",
            "description": "Purchase order filtering, according to customer number.",
            "schema": {
              "type": "string"
            },
            "example": "443cad54-73bc-11e8-8216-002590dad85e"
          },
          {
            "name": "email",
            "in": "query",
            "description": "Purchase order filtering, according to customer e-mail. The accurate\nmatch is searched for, regardless of capitalization.",
            "schema": {
              "type": "string"
            },
            "example": "john.doe@example.com"
          },
          {
            "name": "phone",
            "in": "query",
            "description": "Purchase order filtering, according to customer phone. International\nformat only (+420123456789)",
            "schema": {
              "type": "string"
            },
            "example": 420123456789
          },
          {
            "name": "productCode",
            "in": "query",
            "description": "Order filter by product's code that is in order.",
            "schema": {
              "type": "string"
            },
            "example": "15/ZLU"
          },
          {
            "name": "changeTimeFrom",
            "in": "query",
            "description": "Purchase order filtering, according to date of last update. ISO 8601\nformat (\"2017-12-12T22:08:01+0100\").",
            "schema": {
              "type": "string"
            },
            "example": "2014-09-05T00:00:00%2B0000"
          },
          {
            "name": "changeTimeTo",
            "in": "query",
            "description": "Purchase order filtering, according to date of last update. ISO 8601\nformat (\"2017-12-12T22:08:01+0100\").",
            "schema": {
              "type": "string"
            },
            "example": "2014-09-05T00:00:00%2B0000"
          },
          {
            "name": "sourceId",
            "in": "query",
            "description": "Order source filtering according to source id. For more information,\nsee List of order sources endpoint.",
            "schema": {
              "type": "integer"
            },
            "example": -1
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-snapshot-endpoint": true,
        "x-shoptet-response-ref": "#/definitions/orderSnapshot"
      }
    },
    "/api/orders/status-change": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Orders with codes 2017000040, 2017000041, 2017000042, 2017000043, 2017000044, 2017000045 do not exist. Skipped.",
                      "instance": "data.orderCodes"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "errorCode": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          },
                          "instance": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Invalid statusId \"2026\".",
                      "instance": "data.statusId"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "There must be a maximum of 100 items in the array",
                      "instance": "data.orderCodes"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Bulk order status change",
        "operationId": "bulkOrderStatusChange",
        "description": "The endpoint allows you to change the status for multiple order codes simultaneously.\n\n\n\nNon-existing order codes are skipped and summarized in response errors. The request process continues even if some \norder codes are skipped.\n\n\n\nIf you try to set the status that the order already has, no change is done and the request process continues.\n\n\n\nIf at least one order code is processed successfully, the response code is `200`. If all the order codes are \nskipped, the response code is `400`. If basic validation of data fails, the response code is `422` and the request \nis not processed.\n\n\n\nStatus definition can include an e-mail/SMS sending, or document generation. To suppress these types of consequences\nyou can use following query parameters: `suppressEmailSending=true`, `suppressSmsSending=true`,\n`suppressDocumentGeneration=true`.",
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "suppressDocumentGeneration",
            "in": "query",
            "description": "Suppress the generation of linked documents.",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "suppressEmailSending",
            "in": "query",
            "description": "Suppress sending the linked information e-mails.",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "suppressSmsSending",
            "in": "query",
            "description": "Suppress sending the linked information SMS messages.",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "orderCodes",
                      "statusId"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "orderCodes": {
                        "type": "array",
                        "minItems": 1,
                        "maxItems": 100,
                        "description": "order codes",
                        "items": {
                          "type": "string",
                          "examples": [
                            "2017000052"
                          ]
                        }
                      },
                      "statusId": {
                        "type": "number",
                        "description": "order status identifier",
                        "examples": [
                          -1
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{code}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "order"
                      ],
                      "properties": {
                        "order": {
                          "$ref": "#/components/schemas/order"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Order detail",
        "operationId": "getOrderDetail",
        "description": "This endpoint has several sections, which are only sent when requested\nin the `include` parameter (see [Section on demand](#section/basic-principles/section-on-demand)).\n\n\nValue | Section\n--------|------\n`notes` | Order remarks, including up to six additional fields, which can be freely used by e-shop for its individual needs. The field names can be defined in administration and this section returns their names.\n`images`| Order images\n`shippingDetails`| Transport details\n`stockLocation`| Position in the stock\n`surchargeParameters`| Item surcharge parameters\n`paymentTransactions`| Payment transactions within the order\n`productFlags`| Item product flags\n\nReturns the detail for one order. In the `items` field, the individual\nitems of the order, including transport and payment methods.\n\n\nThe product name and variants, weight, manufacturer and similar items\nare copied into the order items when the order is made.\n Even though the products are changed later in the shop, the orders are not affected. `productGuid` item contains\nGUID of purchased product. If this is changed or deleted, the order is\nnot affected. You have to take into account that\n\n\n`productGuid` does not have to refer to an existing product. The same\ngoes for the `code` item, containing the identification of a purchased\n\n\nvariant or product. You have to take into account that when deleting the\nproduct or changing the `code` of the product, the reference from the\norder\n\n\nis lost. In other words, you have to take into account the fact that the\n`code` or `productGuid` do not have to refer to one of the currently\nexisting\n\n\nproducts (variant). They may also be `null`.\n\n\nIn most cases the items in the response are the same as you can see in\nthe administration of PDF printout of an order.\n\n\nThere are however some advanced cases (in case of coupon discount with\nabsolute value or in case of\n\n\na volume discount and products with multiple VAT rates in the order), in\nwhich case they are different:\n\n\n- Administration and PDF will show multiple rows for the discount – for\neach VAT rate one row and the price field split evenly.\n\n\n- The API response will return only one row indicating the total price\nof the discount.\n\n\nThe difference is based on how data is internally stored and presented.\nThe API is bases more on internal storage principle,\n\n\nthere is however also an array `displayPrices`, which contains the\npresentation (printout) version of each item.\n\n\nIf you state the `include=images` parameter within the URL, the\ninformation about the main image for all products in the order\n will also be part of the response. For more information about access to images go to [Product images](#section/Product-images).\n\n\nIn the `shippingDetails` section, there is an information about shipping\nthe order. `branchId` is used for the identification of the carrier's\nbranch and\n\n\nnext fields are used for the detail of the branch (name, address, etc.).\n`carrierId` is used for the numeral identification of the carrier.\nNowadays this field\n\n\nis used for Zasilkovna only and the value can be `null` for Czech\nZasilkovna or integer for Zasilkovna in the other countries.",
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2018000012",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "optional parts of response",
            "example": "notes,images,shippingDetails,stockLocation,productFlags",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "order-not-found",
                      "message": "Order with code \"0000000001\" not found.",
                      "instance": "0000000001"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Order deletion",
        "operationId": "deleteOrder",
        "description": "",
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "0000000001",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/orders/{code}/head": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "order"
                      ],
                      "properties": {
                        "order": {
                          "$ref": "#/components/schemas/order"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Order head change",
        "operationId": "updateOrderHead",
        "description": "You can change basic info (head) of order with this method.\n\n**Please note following rules**\n\n- `email` .. maxLength 100 characters\n\n- `phone` .. maxLength 32 characters\n\n- `billingAddress.company` .. maxLength 255 characters\n\n- `billingAddress.fullName` .. maxLength 255 characters\n\n- `billingAddress.street` .. maxLength 255 characters\n\n- `billingAddress.houseNumber` .. maxLength 255 characters\n\n- `billingAddress.city` .. maxLength 255 characters\n\n- `billingAddress.district` .. maxLength 255 characters\n\n- `billingAddress.additional` .. maxLength 255 characters\n\n- `billingAddress.zip` .. maxLength 255 characters\n\n- `billingAddress.regionName` .. maxLength 255 characters\n\n- `billingAddress.regionShortcut` .. maxLength 255 characters\n\n- `billingAddress.companyId` .. maxLength 18 characters\n\n- `billingAddress.vatId` .. maxLength 16 characters\n\n- `billingAddress.taxId` .. maxLength 16 characters\n\n- `deliveryAddress.company` .. maxLength 255 characters\n\n- `deliveryAddress.fullName` .. maxLength 255 characters\n\n- `deliveryAddress.street` .. maxLength 255 characters\n\n- `deliveryAddress.houseNumber` .. maxLength 255 characters\n\n- `deliveryAddress.city` .. maxLength 255 characters\n\n- `deliveryAddress.district` .. maxLength 255 characters\n\n- `deliveryAddress.additional` .. maxLength 255 characters\n\n- `deliveryAddress.zip` .. maxLength 255 characters\n\n- `deliveryAddress.regionName` .. maxLength 255 characters\n\n- `deliveryAddress.regionShortcut` .. maxLength 255 characters",
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "order code (number)",
            "required": true,
            "example": "2018000012",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "minProperties": 1,
                    "additionalProperties": false,
                    "properties": {
                      "creationTime": {
                        "type": "string",
                        "description": "time of order creation. Optional, current time is the default value.",
                        "examples": [
                          "2018-01-21T14:15:47+0100"
                        ]
                      },
                      "email": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 100,
                        "description": "customer e-mail (can be omitted only when ordering via cash desk).",
                        "examples": [
                          "foo@bar.cz"
                        ]
                      },
                      "phone": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 32,
                        "description": "phone number of the customer. Optional, if not set as mandatory item in shop settings.",
                        "examples": [
                          "+420123456789"
                        ]
                      },
                      "birthDate": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "customer birth date (optional, if not made mandatory by the e-shop settings).",
                        "examples": [
                          "1990-01-01"
                        ]
                      },
                      "customerGuid": {
                        "$ref": "#/components/schemas/typeGuidUnlimited",
                        "minLength": 1,
                        "description": "Customer GUID, if not done under known registered customer (optional)."
                      },
                      "addressesEqual": {
                        "type": [
                          "boolean",
                          "null"
                        ],
                        "description": "flag, whether the billing and delivery addresses are the same",
                        "examples": [
                          true
                        ]
                      },
                      "billingAddress": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "company": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "company name. Optional, if not set as mandatory item in shop settings.",
                            "examples": [
                              "Smith & Smith"
                            ]
                          },
                          "fullName": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "customer name. Optional, if not set as mandatory item in shop settings.",
                            "examples": [
                              "John Doe"
                            ]
                          },
                          "street": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "(string, optional) - street of the customer. Optional, if not set as mandatory item in shop settings.",
                            "examples": [
                              "Main Street"
                            ]
                          },
                          "houseNumber": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "street number. Optional, if not set as mandatory item in shop settings.",
                            "examples": [
                              "123"
                            ]
                          },
                          "city": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "City/Town. Optional, if not set as mandatory item in shop settings.",
                            "examples": [
                              "Flat Country"
                            ]
                          },
                          "district": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "County. Optional, if not set as mandatory item in shop settings.",
                            "examples": [
                              "Bohemia"
                            ]
                          },
                          "additional": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "Additional information for the address. Optional.",
                            "examples": [
                              "3rd floor"
                            ]
                          },
                          "zip": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "ZIP or postal code. Optional, if not set as mandatory item in shop settings.",
                            "examples": [
                              "123 00"
                            ]
                          },
                          "countryCode": {
                            "type": "string",
                            "minLength": 1,
                            "description": "(string, optional) - country of the customer. Optional, the default delivery country is used as the default value, taken from eshop settings.",
                            "examples": [
                              "CZ"
                            ]
                          },
                          "regionName": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 255,
                            "description": "region. Optional.",
                            "examples": [
                              "Central Bohemia"
                            ]
                          },
                          "regionShortcut": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 255,
                            "description": "region abbreviation. Optional.",
                            "examples": [
                              "SC"
                            ]
                          },
                          "companyId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 18,
                            "description": "Company registration number of the customer, if purchasing as a company. Optional.",
                            "examples": [
                              "123456"
                            ]
                          },
                          "vatId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 16,
                            "description": "VAT identification number of the customer, if purchasing on the company.",
                            "examples": [
                              "CZ123456"
                            ]
                          },
                          "taxId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 16,
                            "description": "TAX identification number of the customer, if purchasing on the company. For Czech address, taxId must be the same as vatId, or left empty. Optional.",
                            "examples": [
                              "CZ123456"
                            ]
                          }
                        }
                      },
                      "deliveryAddress": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "additionalProperties": false,
                        "properties": {
                          "company": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "company name. Optional, if not set as mandatory item in shop settings.",
                            "examples": [
                              "Smith & Smith"
                            ]
                          },
                          "fullName": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "customer name. Optional, if not set as mandatory item in shop settings.",
                            "examples": [
                              "John Doe"
                            ]
                          },
                          "street": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "(string, optional) - street for delivery. Optional, if not set as mandatory item in shop settings.",
                            "examples": [
                              "Main Street"
                            ]
                          },
                          "houseNumber": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "street number. Optional, if not set as mandatory item in shop settings.",
                            "examples": [
                              "123"
                            ]
                          },
                          "city": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "City/Town. Optional, if not set as mandatory item in shop settings.",
                            "examples": [
                              "Flat Country"
                            ]
                          },
                          "district": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "County. Optional, if not set as mandatory item in shop settings.",
                            "examples": [
                              "Bohemia"
                            ]
                          },
                          "additional": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "Additional information for the address. Optional.",
                            "examples": [
                              "3rd floor"
                            ]
                          },
                          "zip": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "ZIP or postal code. Optional, if not set as mandatory item in shop settings.",
                            "examples": [
                              "123 00"
                            ]
                          },
                          "countryCode": {
                            "type": "string",
                            "minLength": 1,
                            "description": "country of the customer. Optional, the default delivery country is used as the default value, taken from eshop settings.",
                            "examples": [
                              "CZ"
                            ]
                          },
                          "regionName": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "region. Optional.",
                            "examples": [
                              "Central Bohemia"
                            ]
                          },
                          "regionShortcut": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "region abbreviation. Optional.",
                            "examples": [
                              "SC"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{code}/item": {
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "order"
                      ],
                      "properties": {
                        "order": {
                          "$ref": "#/components/schemas/order"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Consumption tax module is not enabled",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "It requires active consumptionTax module in eshop when \"consumptionTax\" is present in order items data.",
                      "instance": "consumptionTax"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Consumption tax id not exists / not visible",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Consumption tax with id \"4\" not found.",
                      "instance": "payload"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Consumption tax with id \"2\" is not visible.",
                      "instance": "payload"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Order item add",
        "operationId": "createOrderItem",
        "description": "",
        "tags": [
          "Order items"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "order code",
            "required": true,
            "example": "2018000012",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "suppressProductChecking",
            "in": "query",
            "description": "suppress the product existence check as per `code` and GUID",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "suppressStockMovements",
            "in": "query",
            "description": "suppress deduction of the products from stock",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "minProperties": 1,
                    "additionalProperties": false,
                    "required": [
                      "itemType"
                    ],
                    "properties": {
                      "itemType": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Item type. Mandatory field. See also [Types of order items](#section/code-lists/types-of-order-items) code list. Only `product`, `product-set`, `service`, `bazar` or `discount-coupon` item type is allowed.",
                        "examples": [
                          "product"
                        ]
                      },
                      "code": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64,
                        "description": "Item code. For transportation, payment and discounts the (`discount-coupon` and `volume-discount`) must remain `null`, for the other types of items, this is mandatory.",
                        "examples": [
                          "179/B"
                        ]
                      },
                      "vatRate": {
                        "type": "string",
                        "description": "VAT rate (`0.00` for VAT non-payers). Mandatory.",
                        "examples": [
                          "21.00"
                        ]
                      },
                      "itemPriceWithVat": {
                        "type": "string",
                        "description": "Deprecated: use `unitPriceWithVat` instead. Item price including VAT. Optional. Only one of the items `itemPriceWithVat` or `itemPriceWithoutVat` must be entered.",
                        "examples": [
                          "121.00"
                        ],
                        "deprecated": true
                      },
                      "itemPriceWithoutVat": {
                        "type": "string",
                        "description": "Deprecated: use `unitPriceWithoutVat` instead. Item price excluding VAT. Optional. Only one of the items `itemPriceWithVat` or `itemPriceWithoutVat` must be entered.",
                        "examples": [
                          "100.00"
                        ],
                        "deprecated": true
                      },
                      "unitPriceWithVat": {
                        "type": "string",
                        "description": "Unit price including VAT. Optional. Only one of the items `unitPriceWithVat` or `unitPriceWithoutVat` must be entered.",
                        "examples": [
                          "121.00"
                        ]
                      },
                      "unitPriceWithoutVat": {
                        "type": "string",
                        "description": "Unit price excluding VAT. Optional. Only one of the items `unitPriceWithVat` or `unitPriceWithoutVat` must be entered.",
                        "examples": [
                          "100.00"
                        ]
                      },
                      "buyPriceWithVat": {
                        "type": "string",
                        "description": "Purchase price, including VAT. Optional. Price including tax and price excluding tax cannot be combined. This is used for profit margin calculation and statistics.",
                        "examples": [
                          "121.00"
                        ]
                      },
                      "buyPriceWithoutVat": {
                        "type": "string",
                        "description": "Purchase price, excluding VAT. Optional. Price including tax and price excluding tax cannot be combined. This is used for profit margin calculation and statistics.",
                        "examples": [
                          "100.00"
                        ]
                      },
                      "buyPriceVatRate": {
                        "type": "string",
                        "description": "VAT rate for purchase price. Optional.",
                        "examples": [
                          "21.00"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 250,
                        "description": "Product name (optional, but usually filled in). Mandatory only for discount-coupon, transport and payment, for other items, it is loaded according to `code`.",
                        "examples": [
                          "Large chocolate"
                        ]
                      },
                      "variantName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 128,
                        "description": "Variant name. Optional.",
                        "examples": [
                          "Type: walnut"
                        ]
                      },
                      "brand": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 64,
                        "description": "brand (manufacturer). Optional.",
                        "examples": [
                          "Willy Wonka"
                        ]
                      },
                      "supplierName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "supplier. Optional.",
                        "examples": [
                          "Dodavatel s.r.o."
                        ]
                      },
                      "productGuid": {
                        "$ref": "#/components/schemas/typeGuidNullable",
                        "minLength": 1,
                        "description": "Product GUID in item. When used with the `?suppressProductChecking=true` parameter, this field has no influence."
                      },
                      "remark": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "With cubicles",
                        "examples": [
                          "This is a gift for my friend."
                        ]
                      },
                      "warrantyDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "textual description of warranty length (can be `null`)",
                        "examples": [
                          "2 years"
                        ]
                      },
                      "amountCompleted": {
                        "$ref": "#/components/schemas/typePositiveAmountNullable",
                        "description": "quantity of completed product"
                      },
                      "additionalField": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "additional information. Used for transport to specify the branch.",
                        "examples": [
                          "TO BALÍKOVNA, Karlínské náměstí 145/1, Karlín, 18600, Prague"
                        ]
                      },
                      "amount": {
                        "type": "string",
                        "pattern": "^[0-9]+\\.?[0-9]{0,3}$",
                        "description": "amount, 3 decimal places accuracy, optional, default value `1.000`.",
                        "examples": [
                          "1.000"
                        ]
                      },
                      "amountUnit": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16,
                        "description": "unit of quantity (optional)",
                        "examples": [
                          "ks"
                        ]
                      },
                      "weight": {
                        "type": "string",
                        "description": "product weight in kilograms. Maximum 3 decimal places, and maximum value of 99999.",
                        "examples": [
                          "100"
                        ]
                      },
                      "priceRatio": {
                        "type": "string",
                        "description": "discount in the form of coefficient (0.7 = 70 % of the original price, i.e. 30 % discount). Optional, default value is `1.0000`",
                        "examples": [
                          "0.7000"
                        ]
                      },
                      "recyclingFeeId": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Product recycling fee id, replacement for `recyclingFee`",
                        "examples": [
                          1
                        ]
                      },
                      "statusId": {
                        "type": "integer",
                        "description": "Order item status. Optional, if not indicated, default value is guided by the order status. If the order status was indicated and this status has the `Change status of items in the order` flag set, then the item will have this status. Otherwise the default status of the e-shop is used.",
                        "examples": [
                          -1
                        ]
                      },
                      "surchargeParameters": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "parameterCode",
                            "valueIndex"
                          ],
                          "properties": {
                            "parameterCode": {
                              "type": "string",
                              "minLength": 1,
                              "examples": [
                                "pp-1"
                              ]
                            },
                            "valueIndex": {
                              "type": "string",
                              "minLength": 1,
                              "examples": [
                                "hodnota-01"
                              ]
                            },
                            "price": {
                              "$ref": "#/components/schemas/typePrice",
                              "description": "custom price for surcharge parameter, price is in currency of order. Optional. If attribute price is not present, then price from surcharge parameter itself is used.",
                              "examples": [
                                "123.43"
                              ]
                            }
                          }
                        }
                      },
                      "consumptionTaxId": {
                        "$ref": "#/components/schemas/consumptionTaxId"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{code}/item/{id}": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "orderItem"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "orderItem": {
                          "$ref": "#/components/schemas/orderItem"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Consumption tax module is not enabled",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "It requires active consumptionTax module in eshop when \"consumptionTax\" is present in order items data.",
                      "instance": "consumptionTax"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Currency not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "currency-not-found",
                      "message": "Currency code \"BHJ\" not found.",
                      "instance": "data.currency"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "You can send consumptionTaxId or consumptionTax, but not both!",
                      "instance": "integration-call"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Consumption tax with id \"4\" not found.",
                      "instance": "payload"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Consumption tax with id \"2\" is not visible.",
                      "instance": "payload"
                    },
                    {
                      "errorCode": "invalid-order-item-type-change",
                      "message": "The item type cannot be changed. Changing the type from \"product\" to \"discount-coupon\" is not allowed.",
                      "instance": "data.itemType"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Order item change",
        "operationId": "updateOrderItem",
        "description": "",
        "tags": [
          "Order items"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "order code (number)",
            "required": true,
            "example": "2018000012",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "order item id. Can be found in field `data.order.items.itemId` in\nOrder detail.  (number)",
            "required": true,
            "example": "198",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "suppressProductGuidCheck",
            "in": "query",
            "description": "suppress the product existence check per GUID",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "minProperties": 1,
                    "additionalProperties": false,
                    "required": [
                      "itemType"
                    ],
                    "properties": {
                      "itemType": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Item type. Mandatory field; see also [Types of order items](#section/code-lists/types-of-order-items) code list. Only `product`, `product-set`, `service`, `bazar` or `discount-coupon` item type is allowed.",
                        "examples": [
                          "product"
                        ]
                      },
                      "code": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64,
                        "description": "Item code. For transportation, payment and discounts the (`discount-coupon` and `volume-discount`) must remain `null`, for the other types of items, this is mandatory.",
                        "examples": [
                          "179/B"
                        ]
                      },
                      "vatRate": {
                        "type": "string",
                        "description": "VAT rate (`0.00` for VAT non-payers). Mandatory.",
                        "examples": [
                          "21.00"
                        ]
                      },
                      "itemPriceWithVat": {
                        "type": "string",
                        "description": "Deprecated: use `unitPriceWithVat` instead. Item price including VAT. Optional. Only one of the items `itemPriceWithVat` or `itemPriceWithoutVat` must be entered.",
                        "examples": [
                          "121.00"
                        ],
                        "deprecated": true
                      },
                      "itemPriceWithoutVat": {
                        "type": "string",
                        "description": "Deprecated: use `unitPriceWithoutVat` instead. Item price excluding VAT. Optional. Only one of the items `itemPriceWithVat` or `itemPriceWithoutVat` must be entered.",
                        "examples": [
                          "100.00"
                        ],
                        "deprecated": true
                      },
                      "unitPriceWithVat": {
                        "type": "string",
                        "description": "Unit price including VAT. Optional. Only one of the items `unitPriceWithVat` or `unitPriceWithoutVat` must be entered.",
                        "examples": [
                          "121.00"
                        ]
                      },
                      "unitPriceWithoutVat": {
                        "type": "string",
                        "description": "Unit price excluding VAT. Optional. Only one of the items `unitPriceWithVat` or `unitPriceWithoutVat` must be entered.",
                        "examples": [
                          "100.00"
                        ]
                      },
                      "buyPriceWithVat": {
                        "type": "string",
                        "description": "Purchase price, including VAT. Optional. Price including tax and price excluding tax cannot be combined. This is used for profit margin calculation and statistics.",
                        "examples": [
                          "121.00"
                        ]
                      },
                      "buyPriceWithoutVat": {
                        "type": "string",
                        "description": "Purchase price, excluding VAT. Optional. Price including tax and price excluding tax cannot be combined. This is used for profit margin calculation and statistics.",
                        "examples": [
                          "100.00"
                        ]
                      },
                      "buyPriceVatRate": {
                        "type": "string",
                        "description": "VAT rate for purchase price. Optional.",
                        "examples": [
                          "21.00"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 250,
                        "description": "Product name (optional, but usually filled in). Mandatory only for transport and payment, for other items, it is loaded according to `code`.",
                        "examples": [
                          "Large chocolate"
                        ]
                      },
                      "variantName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 128,
                        "description": "Variant name. Optional.",
                        "examples": [
                          "Type: walnut"
                        ]
                      },
                      "brand": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 64,
                        "description": "brand (manufacturer). Optional.",
                        "examples": [
                          "Willy Wonka"
                        ]
                      },
                      "supplierName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "supplier. Optional.",
                        "examples": [
                          "Dodavatel s.r.o."
                        ]
                      },
                      "productGuid": {
                        "$ref": "#/components/schemas/typeGuidNullable",
                        "minLength": 1,
                        "description": "Product GUID in item. When used with the `?suppressProductChecking=true` parameter, this field has no influence."
                      },
                      "remark": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "With cubicles",
                        "examples": [
                          "This is a gift for my friend."
                        ]
                      },
                      "warrantyDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "textual description of warranty length (can be `null`)",
                        "examples": [
                          "2 years"
                        ]
                      },
                      "amountCompleted": {
                        "$ref": "#/components/schemas/typePositiveAmountNullable",
                        "description": "quantity of completed product"
                      },
                      "additionalField": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "additional information. Used for transport to specify the branch.",
                        "examples": [
                          "TO BALÍKOVNA, Karlínské náměstí 145/1, Karlín, 18600, Prague"
                        ]
                      },
                      "amount": {
                        "type": "string",
                        "pattern": "^[0-9]+\\.?[0-9]{0,3}$",
                        "description": "amount, 3 decimal places accuracy, optional, default value `1.000`.",
                        "examples": [
                          "1.000"
                        ]
                      },
                      "amountUnit": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16,
                        "description": "unit of quantity (optional)",
                        "examples": [
                          "ks"
                        ]
                      },
                      "weight": {
                        "type": "string",
                        "description": "product weight in kilograms. Maximum 3 decimal places, and maximum value of 99999.",
                        "examples": [
                          "100"
                        ]
                      },
                      "priceRatio": {
                        "type": "string",
                        "description": "discount in the form of coefficient (0.7 = 70 % of the original price, i.e. 30 % discount). Optional, default value is `1.0000`",
                        "examples": [
                          "0.7000"
                        ]
                      },
                      "recyclingFeeId": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Product recycling fee id, replacement for `recyclingFee`",
                        "examples": [
                          1
                        ]
                      },
                      "statusId": {
                        "type": "integer",
                        "description": "Order item status. Optional, if not indicated, default value is guided by the order status. If the order status was indicated and this status has the `Change status of items in the order` flag set, then the item will have this status. Otherwise the default status of the e-shop is used.",
                        "examples": [
                          -1
                        ]
                      },
                      "consumptionTaxId": {
                        "description": "consumption tax, cannot be used together with `consumptionTax`. You can send this parameter, only if consumption tax module is enabled.",
                        "$ref": "#/components/schemas/consumptionTaxId"
                      },
                      "consumptionTax": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "consumption tax with custom value, cannot be used together with `consumptionTaxId`. You can send this parameter, only if consumption tax module is enabled.",
                        "additionalProperties": false,
                        "required": [
                          "currency",
                          "price"
                        ],
                        "properties": {
                          "currency": {
                            "$ref": "#/components/schemas/typeCurrencyCode"
                          },
                          "price": {
                            "$ref": "#/components/schemas/typePriceNullable",
                            "description": "consumption tax value"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Order item delete",
        "operationId": "deleteOrderItem",
        "description": "",
        "tags": [
          "Order items"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "order code (number)",
            "required": true,
            "example": "2018000012",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "order item id. Can be found in field `data.order.items.itemId` in\nOrder detail. (number)",
            "required": true,
            "example": "198",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/orders/{code}/item/{id}/surcharge-parameters": {
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "order"
                      ],
                      "properties": {
                        "order": {
                          "$ref": "#/components/schemas/order"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Order item surcharge parameters insertion",
        "operationId": "createOrderItemSurchargeParameters",
        "description": "There is possibility to edit surcharge parameters related to order item. For that purpose, there is in\nget order item detail endpoint attribute `specificSurchargeParameters` which returned adjusted surcharge \nparameters data (see order item detail [endpoint](#tag/orders/getorderdetail))\n\n\nThis mean that `surchargeParameters` attribute in order detail is persistent and any adjustment in \nsurcharge parameters appears in `specificSurchargeParameters`\n\n\nThis endpoint purpose is to add surcharge parameter in relation within\norder item.\n\nYou have to send one of attributes `parameterCode` with `valueIndex` or\n`name`. Cant send this attributes together.\n\nIf you post `parameterCode` and `valueIndex`, there will be validation,\nif surcharge parameter exits and if can be related\n\nto order item's product and price (if not send) will be added from\nsurcharge parameter itself.\n\n\nOtherwise you can send attribute `name` instead, which could have any\nform, but has to be unique. If price is not send,\n\nthan it will be set to `0.00`.",
        "tags": [
          "Order items"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "order code",
            "required": true,
            "example": "2018000012",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "order item id",
            "required": true,
            "example": 3120,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "required": [
                          "parameterCode",
                          "valueIndex"
                        ],
                        "properties": {
                          "parameterCode": {
                            "type": "string",
                            "description": "Code of the parameter",
                            "examples": [
                              "pp-1"
                            ]
                          },
                          "valueIndex": {
                            "type": "string",
                            "description": "Index of the value",
                            "examples": [
                              "hodnota-01"
                            ]
                          },
                          "price": {
                            "$ref": "#/components/schemas/typePrice",
                            "description": "custom price for surcharge parameter, price is in currency of order. Optional. If attribute price is not present, then price from surcharge parameter itself is used."
                          }
                        }
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "required": [
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "examples": [
                              "special parameter 1"
                            ]
                          },
                          "price": {
                            "$ref": "#/components/schemas/typePrice",
                            "description": "custom price for surcharge parameter, price is in currency of order. Optional. If attribute price is not present, then price from surcharge parameter itself is used."
                          }
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{code}/item/{id}/surcharge-parameters/{relationId}": {
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Order item surcharge parameters deletion",
        "operationId": "deleteOrderItemSurchargeParameters",
        "description": "You have to provide dynamically generated `relationId` which identify\nwhich surcharge parameter related to order item you want to delete.",
        "tags": [
          "Order items"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "order code",
            "required": true,
            "example": "2018000012",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "order item id",
            "required": true,
            "example": 3120,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "relationId",
            "in": "path",
            "description": "key to identify, which surcharge parameter in relation to order\nitem, should be delete",
            "required": true,
            "example": "04e876",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/orders/{code}/payment": {
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "order"
                      ],
                      "properties": {
                        "order": {
                          "$ref": "#/components/schemas/order"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Order payment add",
        "operationId": "createOrderPayment",
        "description": "",
        "tags": [
          "Order payment"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "order code",
            "required": true,
            "example": "2018000079",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "guid",
                      "vatRate"
                    ],
                    "properties": {
                      "guid": {
                        "$ref": "#/components/schemas/typeGuid",
                        "description": "Guid of payment method."
                      },
                      "vatRate": {
                        "$ref": "#/components/schemas/typeVatRate",
                        "description": "VAT rate (`0.00` for VAT non-payers).",
                        "examples": [
                          "21.00"
                        ]
                      },
                      "itemPriceWithVat": {
                        "type": "string",
                        "description": "Deprecated: use `unitPriceWithVat` instead. Item price including VAT. Optional. Only one of the items `itemPriceWithVat` or `itemPriceWithoutVat` must be entered.",
                        "examples": [
                          "121.00"
                        ],
                        "deprecated": true
                      },
                      "itemPriceWithoutVat": {
                        "type": "string",
                        "description": "Deprecated: use `unitPriceWithoutVat` instead. Item price excluding VAT. Optional. Only one of the items `itemPriceWithVat` or `itemPriceWithoutVat` must be entered.",
                        "examples": [
                          "100.00"
                        ],
                        "deprecated": true
                      },
                      "unitPriceWithVat": {
                        "type": "string",
                        "description": "Unit price including VAT. Optional. Only one of the items `unitPriceWithVat` or `unitPriceWithoutVat` must be entered.",
                        "examples": [
                          "121.00"
                        ]
                      },
                      "unitPriceWithoutVat": {
                        "type": "string",
                        "description": "Unit price excluding VAT. Optional. Only one of the items `unitPriceWithVat` or `unitPriceWithoutVat` must be entered.",
                        "examples": [
                          "100.00"
                        ]
                      },
                      "buyPriceWithVat": {
                        "type": "string",
                        "description": "Purchase price, including VAT. Optional. Price including tax and price excluding tax cannot be combined. This is used for profit margin calculation and statistics.",
                        "examples": [
                          "121.00"
                        ]
                      },
                      "additionalField": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "additional information.",
                        "examples": [
                          "Payment information"
                        ]
                      },
                      "statusId": {
                        "type": "integer",
                        "description": "Order item status. Optional, if not indicated, default value is guided by the order status. If the order status was indicated and this status has the `Change status of items in the order` flag set, then the item will have this status. Otherwise the default status of the e-shop is used.",
                        "examples": [
                          -1
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{code}/payment/{id}": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "orderItem"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "orderItem": {
                          "$ref": "#/components/schemas/orderItem"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Order payment update",
        "operationId": "updateOrderPayment",
        "description": "",
        "tags": [
          "Order payment"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "order code",
            "required": true,
            "example": "2018000079",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "id of order item",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "guid": {
                        "$ref": "#/components/schemas/typeGuid",
                        "description": "Guid of payment method."
                      },
                      "vatRate": {
                        "type": "string",
                        "description": "VAT rate (`0.00` for VAT non-payers).",
                        "examples": [
                          "21.00"
                        ]
                      },
                      "itemPriceWithVat": {
                        "type": "string",
                        "description": "Deprecated: use `unitPriceWithVat` instead. Item price including VAT. Optional. Only one of the items `itemPriceWithVat` or `itemPriceWithoutVat` must be entered.",
                        "examples": [
                          "121.00"
                        ],
                        "deprecated": true
                      },
                      "itemPriceWithoutVat": {
                        "type": "string",
                        "description": "Deprecated: use `unitPriceWithoutVat` instead. Item price excluding VAT. Optional. Only one of the items `itemPriceWithVat` or `itemPriceWithoutVat` must be entered.",
                        "examples": [
                          "100.00"
                        ],
                        "deprecated": true
                      },
                      "unitPriceWithVat": {
                        "type": "string",
                        "description": "Unit price including VAT. Optional. Only one of the items `unitPriceWithVat` or `unitPriceWithoutVat` must be entered.",
                        "examples": [
                          "121.00"
                        ]
                      },
                      "unitPriceWithoutVat": {
                        "type": "string",
                        "description": "Unit price excluding VAT. Optional. Only one of the items `unitPriceWithVat` or `unitPriceWithoutVat` must be entered.",
                        "examples": [
                          "100.00"
                        ]
                      },
                      "additionalField": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "additional information.",
                        "examples": [
                          "Payment information"
                        ]
                      },
                      "statusId": {
                        "type": "integer",
                        "description": "Order item status. Optional, if not indicated, default value is guided by the order status. If the order status was indicated and this status has the `Change status of items in the order` flag set, then the item will have this status. Otherwise the default status of the e-shop is used.",
                        "examples": [
                          -1
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{code}/shipping": {
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "order"
                      ],
                      "properties": {
                        "order": {
                          "$ref": "#/components/schemas/order"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Order shipping add",
        "operationId": "addOrderShipping",
        "description": "",
        "tags": [
          "Order shipping"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "order code",
            "required": true,
            "example": "2018000079",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "guid",
                      "vatRate"
                    ],
                    "properties": {
                      "guid": {
                        "$ref": "#/components/schemas/typeGuid",
                        "description": "Guid of shipping method."
                      },
                      "vatRate": {
                        "type": "string",
                        "description": "VAT rate (`0.00` for VAT non-payers).",
                        "examples": [
                          "21.00"
                        ]
                      },
                      "itemPriceWithVat": {
                        "type": "string",
                        "description": "Deprecated: use `unitPriceWithVat` instead. Item price including VAT. Optional. Only one of the items `itemPriceWithVat` or `itemPriceWithoutVat` must be entered.",
                        "examples": [
                          "121.00"
                        ],
                        "deprecated": true
                      },
                      "itemPriceWithoutVat": {
                        "type": "string",
                        "description": "Deprecated: use `unitPriceWithoutVat` instead. Item price excluding VAT. Optional. Only one of the items `itemPriceWithVat` or `itemPriceWithoutVat` must be entered.",
                        "examples": [
                          "100.00"
                        ],
                        "deprecated": true
                      },
                      "unitPriceWithVat": {
                        "type": "string",
                        "description": "Unit price including VAT. Optional. Only one of the items `unitPriceWithVat` or `unitPriceWithoutVat` must be entered.",
                        "examples": [
                          "121.00"
                        ]
                      },
                      "unitPriceWithoutVat": {
                        "type": "string",
                        "description": "Unit price excluding VAT. Optional. Only one of the items `unitPriceWithVat` or `unitPriceWithoutVat` must be entered.",
                        "examples": [
                          "100.00"
                        ]
                      },
                      "additionalField": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "In case of pickup, given value must be a unique identificator of pickup place. You can find these identificators on website of delivery company. In case of other delivery type (e.g. home delivery) it works as a note.",
                        "examples": [
                          "Home delivery"
                        ]
                      },
                      "statusId": {
                        "type": "integer",
                        "description": "Order item status. Optional, if not indicated, default value is guided by the order status. If the order status was indicated and this status has the `Change status of items in the order` flag set, then the item will have this status. Otherwise the default status of the e-shop is used.",
                        "examples": [
                          -1
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{code}/shipping/{id}": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "orderItem"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "orderItem": {
                          "$ref": "#/components/schemas/orderItem"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Order shipping update",
        "operationId": "updateOrderShipping",
        "description": "",
        "tags": [
          "Order shipping"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "order code",
            "required": true,
            "example": "2018000079",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "id of order item",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "guid": {
                        "$ref": "#/components/schemas/typeGuid",
                        "description": "Guid of shipping method."
                      },
                      "vatRate": {
                        "type": "string",
                        "description": "VAT rate (`0.00` for VAT non-payers).",
                        "examples": [
                          "21.00"
                        ]
                      },
                      "itemPriceWithVat": {
                        "type": "string",
                        "description": "Deprecated: use `unitPriceWithVat` instead. Item price including VAT. Optional. Only one of the items `itemPriceWithVat` or `itemPriceWithoutVat` must be entered.",
                        "examples": [
                          "121.00"
                        ],
                        "deprecated": true
                      },
                      "itemPriceWithoutVat": {
                        "type": "string",
                        "description": "Deprecated: use `unitPriceWithoutVat` instead. Item price excluding VAT. Optional. Only one of the items `itemPriceWithVat` or `itemPriceWithoutVat` must be entered.",
                        "examples": [
                          "100.00"
                        ],
                        "deprecated": true
                      },
                      "unitPriceWithVat": {
                        "type": "string",
                        "description": "Unit price including VAT. Optional. Only one of the items `unitPriceWithVat` or `unitPriceWithoutVat` must be entered.",
                        "examples": [
                          "121.00"
                        ]
                      },
                      "unitPriceWithoutVat": {
                        "type": "string",
                        "description": "Unit price excluding VAT. Optional. Only one of the items `unitPriceWithVat` or `unitPriceWithoutVat` must be entered.",
                        "examples": [
                          "100.00"
                        ]
                      },
                      "additionalField": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "In case of pickup, given value must be a unique identificator of pickup place. You can find these identificators on website of delivery company. In case of other delivery type (e.g. home delivery) it works as a note.",
                        "examples": [
                          "Home delivery"
                        ]
                      },
                      "statusId": {
                        "type": "integer",
                        "description": "Order item status. Optional, if not indicated, default value is guided by the order status. If the order status was indicated and this status has the `Change status of items in the order` flag set, then the item will have this status. Otherwise the default status of the e-shop is used.",
                        "examples": [
                          -1
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{code}/pdf": {
      "get": {
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "order-not-found",
                      "message": "Order \"2018000004\" not found.",
                      "instance": "2018000004"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "document-not-generated",
                      "message": "Error while getting document type \"order\" with code\n\"2018000004\".",
                      "instance": "2018000004"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Download order as PDF",
        "operationId": "downloadOrderAsPdf",
        "description": "You can request the order as PDF file, response will be as\napplication/octet-stream. You can download pdf documents\n\nonly one-by-one for every e-shop. Parallel requests end with `423\nLocked` error.",
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2018000004",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/orders/{code}/history": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "orderHistory"
                      ],
                      "properties": {
                        "orderHistory": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/orderHistory"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of remarks for the order",
        "operationId": "getListOfRemarksForOrder",
        "description": "The endpoint shows the order history which is displayed in Shoptet\nadministration in the\n\n“History” tab, in the order detail. Thus they are the most important\nsystem actions that have affected the order (they cannot be\n\nchanged by the user) and then the notes added by the e-shop, primarily\nintended as messages between several employees,\n\nwhich may be needed to coordinate the order processing (these can be\nentered and deleted by the user).",
        "tags": [
          "Order history"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "Order code",
            "required": true,
            "example": "2018000067",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "system",
            "in": "query",
            "description": "allows filtering only system/non-system remarks",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "order-history-item-exceeded-limit",
                      "message": "Order history item count limit exceeded (100) for order \"2018000012\".",
                      "instance": "2018000012"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "order-not-found",
                      "message": "Order \"2018000012\" not found.",
                      "instance": "2018000012"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Does not have a value in the enumeration [\"comment\",\"system\"]",
                      "instance": "data.type"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Insertion of remark to order",
        "operationId": "createOrderRemark",
        "description": "This endpoint may be used to add the user remark into the order history.\n\nFor example the payment gateway may give the payment identification at\nits side, or\n\nadd the remarks during the process of payment or order processing. The\nremarks\n\nare displayed in administration, in the “History” tab, in the order\ndetail,\n\ntogether with main system changes of the order.",
        "tags": [
          "Order history"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2018000012",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "text"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "text": {
                        "type": "string",
                        "examples": [
                          "Transported from Jičín, will be here on Wednesday"
                        ]
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "comment",
                          "system"
                        ],
                        "minLength": 1,
                        "description": "Record type",
                        "examples": [
                          "comment",
                          "system"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{code}/history/{id}": {
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Order history item deletion failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "order-history-deletion-failed",
                      "message": "Cannot delete order history item \"2073\".",
                      "instance": "2073"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Delete order history item",
        "operationId": "deleteOrderHistoryItem",
        "description": "Delete order history item by primary key.",
        "tags": [
          "Order history"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "Order code",
            "required": true,
            "example": "2018000067",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID of history item",
            "required": true,
            "example": 4,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/orders/{code}/notes": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "order-not-found",
                      "message": "Order \"2018000012\" not found.",
                      "instance": "2018000012"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Update remarks for the order",
        "operationId": "updateRemarksForOrder",
        "description": "The endpoint enables the remarks and additional fields (index 1 - 6) to\nbe updated for the order. Within a call, the update\n\nof more data can be called for.\n\n\nThe individual data object keys are not optional. Only the key values,\nwhich are included in the data object, will be updated.\n\n\nIf \"customerRemark\", \"trackingNumber\", \"eshopRemark\" have a value of\nNULL, the originally saved value will be deleted.\n\n\nFor additional fields (\"additionalFields” key) only the fields included\nin this field are updated.\n\n\nIf the key value is \"text\" for NULL additional field, the originally\nsaved text in this field will be deleted.\n\n\nIf the non-existing key is entered, or the call is erroneous in another\nway, no item is updated.\n\n\n**Please note that `trackingNumber` cannot be longer than 32\ncharacters.**\n\n**Please note that `additionalField` with index 1, 2 & 3 cannot be\nlonger than 255 characters.**",
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2018000012",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "minProperties": 1,
                    "additionalProperties": false,
                    "properties": {
                      "customerRemark": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "trackingNumber": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "maxLength": 32
                      },
                      "additionalFields": {
                        "type": "array",
                        "minItems": 1,
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "index",
                            "text"
                          ],
                          "properties": {
                            "index": {
                              "type": "integer",
                              "enum": [
                                1,
                                2,
                                3,
                                4,
                                5,
                                6
                              ]
                            },
                            "text": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          }
                        }
                      },
                      "eshopRemark": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    }
                  }
                }
              },
              "example": {
                "data": {
                  "customerRemark": "Deliver to mailing addres",
                  "trackingNumber": "DR1234567890E",
                  "additionalFields": [
                    {
                      "index": 1,
                      "text": "Text of additional field no. 1"
                    },
                    {
                      "index": 2,
                      "text": "Text of additional field no. 2"
                    },
                    {
                      "index": 3,
                      "text": "Text of additional field no. 3"
                    },
                    {
                      "index": 4,
                      "text": "Text of additional field no. 4"
                    },
                    {
                      "index": 5,
                      "text": "Text of additional field no. 5"
                    },
                    {
                      "index": 6,
                      "text": "Text of additional field no. 6"
                    }
                  ],
                  "eshopRemark": "In stock from 20.1. 2019"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{code}/status": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "order"
                      ],
                      "properties": {
                        "order": {
                          "$ref": "#/components/schemas/order"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "order-not-found",
                      "message": "Order \"2018000012\" not found.",
                      "instance": "2018000012"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Update of order status",
        "operationId": "updateOrderStatus",
        "description": "The endpoint enables the order status, “paid” flag and payment method to\nbe updated. This data must be set during a call.\n\nAll the fields to be updated are optional, but at least one has to be\nspecified.\n\n\nIf the key value is \"text\" for NULL additional field, the originally\nsaved text in this field will be deleted.\n\n\nIf a non-existing key is entered, or the call is erroneous in another\nway, no item is updated.\n\n\nIf you call the status setting within your request, which has \"set the\norder as paid\" in the definition, and at the same time you required\n\na change of `paid` to `false`, the order status will be carried out and\nthe `paid` value set to `false`.\n\n\nIf the status definition includes sending an e-mail, such an e-mail will\nbe sent. If not required, sending an e-mail can be suppressed with the\n\n`?suppressEmailSending=true` parameter. Similarly, sending information\nSMS messages when the order is changed (if set) can be suppressed\n with the `?suppressSmsSending=true` parameter. In analogy, if the status includes document generation (for example a proforma invoice),\nthe document will be generated (if not existent). The generation can be\nsuppressed with the `?suppressDocumentGeneration=true` parameter.\n\n\nThis endpoint tries not to unnecessarily change the order status. If you\ntry to set the status that the order already has, no change is done and\nno document is generated.\n\nWhen calling the same requests in parallel, there is the risk that there\nmay be concurrence and related actions may be executed twice. Therefore\nwe recommend calling this request from one source only, in a serial\nmanner.\n\n\nOrder status change might imply automatic documents (e. g. invoice)\ngeneration. In exceptional cases the generation might fail,\n\nalthough the order status itself gets actually changed. In such case the\nAPI return status code 200 (OK), but in the `data` field\n\nyou can find the order details and in the `errors` array eventually\ndetails about the failed documents generation. The error\n\ncode is `document-not-generated`. Example of an error message:\n\n\n```\n\n\"errors\": [\n    {\n        \"errorCode\": \"document-not-generated\",\n        \"message\": \"Delivery note belonging to order \\\"2020000149\\\" was not created. Generating document code failed.\",\n        \"instance\": \"2020000149\"\n    }\n]\n\n```",
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2018000012",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "suppressDocumentGeneration",
            "in": "query",
            "description": "suppress the generation of linked documents.",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "suppressEmailSending",
            "in": "query",
            "description": "suppress sending the linked information e-mails.",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "suppressSmsSending",
            "in": "query",
            "description": "suppress sending the linked information SMS messages.",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "minProperties": 1,
                    "additionalProperties": false,
                    "properties": {
                      "statusId": {
                        "type": "integer",
                        "description": "New order status. The order statuses are specific for each e-shop and it is possible to gain these from the endpoint [Eshop info](#tag/eshop/geteshopinfo) with the `include=orderStatuses` parameter",
                        "examples": [
                          -1
                        ]
                      },
                      "paid": {
                        "type": [
                          "boolean",
                          "null"
                        ],
                        "description": "paid flag",
                        "examples": [
                          true
                        ]
                      },
                      "billingMethodId": {
                        "type": "integer",
                        "description": "billing method identifier - see also [Invoice billing methods](#section/code-lists/invoice-billing-methods) code list",
                        "examples": [
                          1
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{code}/copy": {
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "order"
                      ],
                      "properties": {
                        "order": {
                          "$ref": "#/components/schemas/order"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "order-not-found",
                      "message": "Order \"2018000012\" not found.",
                      "instance": "2018000012"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "unknown-error",
                      "message": "Unknown error occurred during order duplication.",
                      "instance": "payload"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Order copy",
        "operationId": "orderCopy",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2018000012",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "optional parts of response",
            "example": "notes,images,shippingDetails,stockLocation,productFlags",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "description": "This endpoint allows you to copy a order identified by its code.\n\nYou can choose scope in which will be the order copied. The scope can be\n- `all` - copy the order with all its items\n- `no-billing-shipping` - copy the order without billing and shipping items\n- `contact-only` - copy the order without any items\n\nPlease note, that copy order creates stock demand  (if stock module is active and negative stock amount is not allowed) and if this demand  overflows the stock, the order will be fully created with error `order-duplication-stock-overflow`. \n\nYou can use `include` parameter to include additional parts of response, same as in `GET` order detail, to retrieve more information about the copied order in copy response.",
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "scope"
                    ],
                    "properties": {
                      "scope": {
                        "type": "string",
                        "enum": [
                          "all",
                          "no-billing-shipping",
                          "contact-only"
                        ],
                        "examples": [
                          "all"
                        ],
                        "description": "Scope of the order copy. Check endpoint description for more information."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{code}/delivery-notes": {
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "deliveryNote"
                      ],
                      "properties": {
                        "deliveryNote": {
                          "$ref": "#/components/schemas/deliveryNote"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "order-not-found",
                      "message": "Order \"2018000012\" not found.",
                      "instance": "2018000012"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "delivery-note-already-exist",
                      "message": "Delivery note code must be unique.",
                      "instance": "2018000012"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Unable to create a delivery note. The order 2015000205 is in the Cancel status.",
                      "instance": "payload"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Delivery note from Order creation",
        "operationId": "deliveryNoteFromOrder",
        "description": "Creating delivery note from existing order.",
        "tags": [
          "Delivery notes"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "Order code",
            "required": true,
            "example": "2018000053",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "code"
                    ],
                    "properties": {
                      "code": {
                        "type": "string",
                        "description": "Delivery note code.",
                        "examples": [
                          "2021000021"
                        ]
                      },
                      "date": {
                        "$ref": "#/components/schemas/typeDate",
                        "description": "Document creation date."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/statuses": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "statuses",
                        "defaultStatus"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "defaultStatus": {
                          "type": "integer"
                        },
                        "statuses": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "name",
                              "system",
                              "order",
                              "markAsPaid",
                              "changeOrderItems",
                              "stockClaimResolved",
                              "documents"
                            ],
                            "additionalProperties": false,
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "order status id",
                                "examples": [
                                  1
                                ]
                              },
                              "name": {
                                "type": "string",
                                "description": "order status name",
                                "examples": [
                                  "Pending"
                                ]
                              },
                              "system": {
                                "type": "boolean",
                                "description": "Is this the system status?",
                                "examples": [
                                  true
                                ]
                              },
                              "order": {
                                "type": "integer",
                                "description": "status order sequence in the administration",
                                "examples": [
                                  1
                                ]
                              },
                              "markAsPaid": {
                                "type": "boolean",
                                "description": "Should the order be marked as paid in this status?",
                                "examples": [
                                  false
                                ]
                              },
                              "color": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "color of orders in this status",
                                "examples": [
                                  "#bada55"
                                ]
                              },
                              "backgroundColor": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "background of order in this status",
                                "examples": [
                                  "#bada55"
                                ]
                              },
                              "changeOrderItems": {
                                "type": "boolean",
                                "description": "change status of the items in the order",
                                "examples": [
                                  false
                                ]
                              },
                              "stockClaimResolved": {
                                "type": "boolean",
                                "description": "stock demand resolved",
                                "examples": [
                                  false
                                ]
                              },
                              "documents": {
                                "type": "object",
                                "required": [
                                  "generateProformaInvoice",
                                  "generateInvoice",
                                  "generateDeliveryNote",
                                  "generateProofPayment"
                                ],
                                "additionalProperties": false,
                                "properties": {
                                  "generateProformaInvoice": {
                                    "type": "boolean",
                                    "description": "proforma invoice is generated in this status.",
                                    "examples": [
                                      true
                                    ]
                                  },
                                  "generateInvoice": {
                                    "type": "boolean",
                                    "description": "tax document is generated in this status.",
                                    "examples": [
                                      true
                                    ]
                                  },
                                  "generateDeliveryNote": {
                                    "type": "boolean",
                                    "description": "delivery note is generated in this status.",
                                    "examples": [
                                      true
                                    ]
                                  },
                                  "generateProofPayment": {
                                    "type": [
                                      "boolean",
                                      "null"
                                    ],
                                    "description": "proof of payment is generated in this status.",
                                    "examples": [
                                      true
                                    ]
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of order statuses",
        "operationId": "getListOfOrderStatuses",
        "description": "Detailed information on order status within the e-shop.",
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/orders/sources": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "sources"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "name"
                            ],
                            "additionalProperties": false,
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "order source ID, it can also be negative",
                                "examples": [
                                  -1
                                ]
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the order source.",
                                "examples": [
                                  "E-shop"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of order sources",
        "operationId": "getListOfOrderSources",
        "description": "Detailed information on current possible order sources within the e-shop.",
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/orders/changes": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "changes",
                        "paginator"
                      ],
                      "properties": {
                        "changes": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "changeTime",
                              "changeType"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "identifier (number) of the order, which can be used to query about the details.",
                                "examples": [
                                  "201800001"
                                ]
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time when the event happened. ISO 8601 format (`2017-12-12T22:08:01+0100`)."
                              },
                              "changeType": {
                                "type": "string",
                                "description": "type of event that happened with the entity. Possible values are following: `add`, `edit`, `delete`.",
                                "examples": [
                                  "edit"
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Last order changes",
        "operationId": "getLastOrderChanges",
        "description": "The Endpoint is intended to determine the changes after you have loaded the complete list of orders and you need to know,\nif any of these has been changed (or deleted). Guaranteed history is 30 days, the older data are deleted progressively.\n\n\nEach order in the log is only mentioned with its last change. For example, if the order was modified and then deleted,\nthe log will only show information about its deletion.\n\n\nCan be filtered by changeType = edit/delete parameter.\n\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\n\nEndpoint supports [Paging](#section/basic-principles/paging).",
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "DateTime from which up to the present we are interested in the changes. + in the time zone",
            "required": true,
            "example": "2018-01-01T01:01:01+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeType",
            "in": "query",
            "description": "Returning only edit or delete type changed records",
            "required": false,
            "example": "edit",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 20. Max value is 1000.",
            "example": 888,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/orders/claims": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "orders",
                        "paginator"
                      ],
                      "properties": {
                        "orders": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "orderCode",
                              "statusId",
                              "productCode",
                              "amount",
                              "amountCompleted"
                            ],
                            "properties": {
                              "orderCode": {
                                "type": "string",
                                "description": "identifier (number) of the order, which can be used to query about the details.",
                                "examples": [
                                  "201800001"
                                ]
                              },
                              "statusId": {
                                "type": "integer",
                                "description": "Order status.",
                                "examples": [
                                  -1
                                ]
                              },
                              "productCode": {
                                "type": "string",
                                "description": "unique identification of the product variant.",
                                "examples": [
                                  "26/BIL"
                                ]
                              },
                              "amount": {
                                "$ref": "#/components/schemas/typeAmountNullable",
                                "description": "amount ordered",
                                "examples": [
                                  "50"
                                ]
                              },
                              "amountCompleted": {
                                "$ref": "#/components/schemas/typePositiveAmountNullable",
                                "description": "amount of completed product",
                                "examples": [
                                  1
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Orders with product claims",
        "operationId": "getOrderClaims",
        "description": "Endpoint listing all ordered products with unfulfilled claims.\n\nEndpoint supports [Paging](#section/basic-principles/paging).",
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "includeClosedAndCancelledOrders",
            "in": "query",
            "description": "Include orders in final state - such as closed and cancelled orders. Default `false`.\nDEPRECATED due to misleading name and actual irrelevance. To be removed in the future.",
            "example": true,
            "deprecated": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "productCode",
            "in": "query",
            "description": "Filter order claims by product code",
            "example": "DS53437473",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderCode",
            "in": "query",
            "description": "Filter order claims by order code",
            "example": "2017000066",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 100. Max value is 250.",
            "example": 110,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/orders/batch": {
      "post": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "file-not-found",
                      "message": "File \"https://jsonlines.org/orders.jsonl\" not found.",
                      "instance": "batchFileUrlPath"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "batch-job-already-running",
                      "message": "Concurrent job already running!",
                      "instance": "orders-batch-insert"
                    },
                    {
                      "errorCode": "another-import-is-running",
                      "message": "Another import is running. Please try again later.",
                      "instance": "orders-batch-insert"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Order BATCH insertion",
        "operationId": "orderBatchInsertion",
        "description": "**Beta/Experimental feature: This endpoint is currently in beta and may exhibit unexpected behavior.**    \nThis endpoint allows you to create multiple orders at once. Batch insertion is processed asynchronously in the same way as, for example, [List of all orders](#Orders/list-of-all-orders), but it does not have `resultUrl` in the response. Instead, you can check the attribute `log` which contains successfully created orders and errors.\n\nSee how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\nFile with data for insert must be in JSONL ([jsonlines](https://jsonlines.org/)) format. Each line must contain one order in JSON format. Maximum size of file is 100MB. The base structure of a JSON row contains 2 main parameters `settings` and `data`.\n\n**The `settings` parameter:**\n\nDefault suppress params for each row can be defined in URL params same as in [Order insertion](#tag/orders/createorder) endpoint. In the `settings` parameter, you can modify suppress parameters for specific row/record.\n\n**All params in `settings` can be in 3 states:**\n\n- `true` - _true_ value is applied.\n\n- `false` - _false_ value is applied.\n\n- _parameter is missing_ - The value from corresponding request parameter is used, if corresponding request parameter is not defined the value is set to `false`.\n\n**The `data` parameter:**\n\nStructure of the `data` parameter is the same as the structure of JSON for single [Order insertion](#tag/orders/createorder) endpoint. See [Order batch create schema](/shoptet-api/openapi/batch/orderbatchcreate) for more details.\n\n\nThe asynchronous job processes the JSONL file row by row and tries to validate and save the data. If there is any error, the row is skipped and the error is logged, but it does not stop the processing of other rows. In the log, every order is identified by its position in the file (starting from 1).",
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "batchFileUrlPath"
                ],
                "properties": {
                  "batchFileUrlPath": {
                    "type": "string",
                    "description": "Url to batch file with products data. File must be in JSONL format.",
                    "examples": [
                      "https://cdn.myshoptet.com/batch-products-update.jsonl"
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/gifts": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "items"
                      ],
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/orderGift"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Get order gifts list",
        "operationId": "getOrderGiftsList",
        "description": "This endpoint allow get, add or delete order related gifts. Gifts is relation to product variant by its\n`code` identifier and is ordered by `priority` field",
        "tags": [
          "Order gifts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "items"
                      ],
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/orderGift"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Add order gift at the end of the list",
        "operationId": "addOrderGift",
        "description": "Add order gift (product variant) at the end of the order gift list. Gift\nis defined by `code`.\n\n`code`, `orderPrice` and `currencyCode` is required.",
        "tags": [
          "Order gifts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "code",
                      "orderPrice",
                      "currencyCode"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "code": {
                        "type": "string",
                        "description": "code od product variant",
                        "examples": [
                          "0005"
                        ]
                      },
                      "currencyCode": {
                        "$ref": "#/components/schemas/typeCurrencyCode"
                      },
                      "orderPrice": {
                        "$ref": "#/components/schemas/typePriceNullable",
                        "description": "price which order total price should overcome. to add this gift"
                      },
                      "includingVat": {
                        "type": "boolean",
                        "description": "if true, orderPrice is including VAT",
                        "examples": [
                          true
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/orders/gifts/{id}": {
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "example-error-code",
                      "message": "Example error message",
                      "instance": "instance"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Delete order gift",
        "operationId": "deleteOrderGift",
        "description": "Delete order gift item by primary key.",
        "tags": [
          "Order gifts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of gift",
            "required": true,
            "example": 4,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/orders/gifts/settings": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "stockDependent",
                        "wholesaleGiftsEnabled",
                        "productGifts"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "stockDependent": {
                          "type": "boolean",
                          "description": "define if gifts are dependent on each product or whole order, stock dependent/independent",
                          "examples": [
                            false
                          ]
                        },
                        "wholesaleGiftsEnabled": {
                          "type": "boolean",
                          "description": "define if customer with wholesale module have gifts offer available",
                          "examples": [
                            true
                          ]
                        },
                        "productGifts": {
                          "type": "string",
                          "description": "set if gifts are dependent on each product or whole order, possible values are `per-amount` and `per-order",
                          "examples": [
                            "per-amount"
                          ]
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Get order gift settings",
        "operationId": "getOrderGiftSettings",
        "description": "There are order gift setting, which influence general behaviour.\n\n- The behavior of the gifts - set if gifts are dependent on each product or whole order (stock dependent/independent)\n- Offer to wholesale customers - define if customer with wholesale module have gifts offer available\n- Gift to whole order or each product",
        "tags": [
          "Gifts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "stockDependent",
                        "wholesaleGiftsEnabled",
                        "productGifts"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "stockDependent": {
                          "type": "boolean",
                          "description": "define if gifts are dependent on each product or whole order, stock dependent/independent",
                          "examples": [
                            false
                          ]
                        },
                        "wholesaleGiftsEnabled": {
                          "type": "boolean",
                          "description": "define if customer with wholesale module have gifts offer available",
                          "examples": [
                            true
                          ]
                        },
                        "productGifts": {
                          "type": "string",
                          "description": "set if gifts are dependent on each product or whole order, possible values are `per-amount` and `per-order",
                          "examples": [
                            "per-amount"
                          ]
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Update order gift settings",
        "operationId": "updateOrderGiftSettings",
        "description": "Method updates order gift settings. Every item in request body is\noptional, but at least one setting is required.",
        "tags": [
          "Gifts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "stockDependent": {
                        "type": "boolean",
                        "description": "define if gifts are dependent on each product or whole order, stock dependent/independent",
                        "examples": [
                          false
                        ]
                      },
                      "wholesaleGiftsEnabled": {
                        "type": "boolean",
                        "description": "define if customer with wholesale module have gifts offer available",
                        "examples": [
                          true
                        ]
                      },
                      "productGifts": {
                        "type": "string",
                        "enum": [
                          "per-amount",
                          "per-order"
                        ],
                        "description": "set if gifts are dependent on each product or whole order, possible values are `per-amount` and `per-order",
                        "examples": [
                          "per-amount"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/in-stores": {
      "get": {
        "deprecated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "inStores"
                      ],
                      "properties": {
                        "inStores": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "guid",
                              "address",
                              "contact",
                              "categoryId"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "In-store identifier.",
                                "examples": [
                                  1
                                ]
                              },
                              "guid": {
                                "type": "string",
                                "description": "In-store GUID.",
                                "examples": [
                                  "550e8400-e29b-41d4-a716-446655440000"
                                ]
                              },
                              "address": {
                                "oneOf": [
                                  {
                                    "$ref": "#/components/schemas/inStoreAddress"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "description": "In-store address (can be null)."
                              },
                              "contact": {
                                "$ref": "#/components/schemas/inStoreContact",
                                "description": "In-store contact information."
                              },
                              "categoryId": {
                                "type": "integer",
                                "description": "Project category identifier.",
                                "examples": [
                                  2
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Module \"In-store sales channel\" is not active.",
                      "instance": "inStoreSalesChannel"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "List of all in-stores",
        "operationId": "getListOfInStores",
        "description": "This endpoint is deprecated. \nUse the sales channels endpoint (/api/sales-channels) instead.\n\nProvides a list of in-stores.\nThis endpoint is available only when the 'In-store sales channel' module is active. It is currently considered beta/experimental, and its structure may change in the future.\n",
        "tags": [
          "In-stores"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/in-stores/{id}": {
      "get": {
        "deprecated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "inStore"
                      ],
                      "properties": {
                        "inStore": {
                          "type": "object",
                          "required": [
                            "id",
                            "guid",
                            "address",
                            "contact",
                            "categoryId"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "In-store identifier.",
                              "examples": [
                                1
                              ]
                            },
                            "guid": {
                              "type": "string",
                              "description": "In-store GUID.",
                              "examples": [
                                "550e8400-e29b-41d4-a716-446655440000"
                              ]
                            },
                            "address": {
                              "oneOf": [
                                {
                                  "$ref": "#/components/schemas/inStoreAddress"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "In-store address (can be null)."
                            },
                            "contact": {
                              "$ref": "#/components/schemas/inStoreContact",
                              "description": "In store contact information."
                            },
                            "categoryId": {
                              "type": "integer",
                              "description": "Project category identifier.",
                              "examples": [
                                2
                              ]
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Module \"In-store sales channel\" is not active.",
                      "instance": "inStoreSalesChannel"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "example": {
                    "data": null,
                    "errors": [
                      {
                        "errorCode": "in-store-not-found",
                        "message": "In-store with id \"1\" not found.",
                        "instance": "1"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "summary": "In-store detail",
        "operationId": "getInStoreDetail",
        "description": "This endpoint is deprecated. \nUse the general sales channels endpoint (/api/sales-channels/{guid}) instead.\n\nProvides detailed information about the in-store.\nThis endpoint is available only when the 'In-store sales channel' module is active. It is currently considered beta/experimental, and its structure may change in the future.\n",
        "tags": [
          "In-stores"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "In-store ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/invoices": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "invoices",
                        "paginator"
                      ],
                      "properties": {
                        "invoices": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "varSymbol",
                              "isValid",
                              "proformaInvoiceCodes",
                              "orderCode",
                              "creationTime",
                              "billCompany",
                              "billFullName",
                              "price"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "variant code (product)",
                                "examples": [
                                  "2015000001"
                                ]
                              },
                              "varSymbol": {
                                "type": [
                                  "number",
                                  "null"
                                ],
                                "description": "variable symbol",
                                "examples": [
                                  "666"
                                ]
                              },
                              "isValid": {
                                "type": "boolean",
                                "description": "is the invoice valid?",
                                "examples": [
                                  true
                                ]
                              },
                              "proformaInvoiceCodes": {
                                "$ref": "#/components/schemas/proformaInvoiceCodes",
                                "description": "List of linked proforma invoices"
                              },
                              "orderCode": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "purchase order number. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
                                "examples": [
                                  "2017000017"
                                ]
                              },
                              "creationTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date of issue, in ISO 8601 format"
                              },
                              "billCompany": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "company name",
                                "examples": [
                                  "Company s.r.o."
                                ]
                              },
                              "billFullName": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "full name",
                                "examples": [
                                  "John Doe"
                                ]
                              },
                              "price": {
                                "$ref": "#/components/schemas/price"
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date of change, in ISO 8601 format"
                              },
                              "dueDate": {
                                "$ref": "#/components/schemas/typeDateNullable",
                                "description": "due date in ISO 8601 format"
                              },
                              "taxDate": {
                                "$ref": "#/components/schemas/typeDateNullable",
                                "description": "taxation date in ISO 8601 format"
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of invoices",
        "operationId": "getListOfInvoices",
        "description": "Returns the list of invoices with basic information. \nThe list of invoices supports [Paging](#section/basic-principles/paging)\n\n\nThe code (`code`) is the invoice identifier. Although this is usually a number, \nit is necessary to take into account that this might also include\nletters, a dash, etc. Filtering uses string comparison with >=, <= operators.",
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "isValid",
            "in": "query",
            "description": "filtering according to document validity",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "proformaInvoiceCode",
            "in": "query",
            "description": "filtering according to number of proforma invoice",
            "example": 2017000017,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "filtering according to date of invoice issue",
            "example": "2017-02-28T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "filtering according to date of invoice issue",
            "example": "2028-02-28T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taxDateFrom",
            "in": "query",
            "description": "filtering according to tax date of invoice",
            "example": "2017-02-28T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderCode",
            "in": "query",
            "description": "filtering according to order code of invoice",
            "example": 2018000012,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codeFrom",
            "in": "query",
            "description": "filtering according to code of invoice",
            "example": 2018000001,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codeTo",
            "in": "query",
            "description": "filtering according to code of invoice",
            "example": 2018000012,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "varSymbol",
            "in": "query",
            "description": "filtering according to variable symbol of invoice",
            "example": 666,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 20. Max value is 1000.",
            "example": 888,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/invoices/snapshot": {
      "get": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "List of all invoices",
        "operationId": "getListOfAllInvoices",
        "description": "Using this endpoint, you can get list of all invoices with detailed info of each invoice (like in Invoice Detail endpoint) asynchronously. \n\n\nSee how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each invoice taking one line of output file.\n\n\nOne invoice in response has the same format as invoice detail response. See [Invoice snapshot schema](/shoptet-api/openapi/snapshot/invoicesnapshot) for more details.\n\n\nResult file is compressed using GZIP.\n\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Section on demand](#section/basic-principles/section-on-demand)).\n\n\nValue                 | Section\n---                   | ---\n`surchargeParameters` | Item surcharge parameters",
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "include",
            "in": "query",
            "description": "Sections to include",
            "example": "surchargeParameters",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "Export invoices created after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "Export invoices created before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeFrom",
            "in": "query",
            "description": "Export invoices updated after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeTo",
            "in": "query",
            "description": "Export invoices updated before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codeFrom",
            "in": "query",
            "description": "Export invoices with code after given value",
            "example": "0000000006",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codeTo",
            "in": "query",
            "description": "Export invoices with code before given value",
            "example": "0000000006",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "proformaInvoiceCodeFrom",
            "in": "query",
            "description": "Export invoices with proforma invoice code after given value",
            "example": "2017000010",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "proformaInvoiceCodeTo",
            "in": "query",
            "description": "Export invoices with proforma invoice code befor given value",
            "example": "2017000010",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dueDateFrom",
            "in": "query",
            "description": "Export invoices with due date after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dueDateTo",
            "in": "query",
            "description": "Export invoices with due date before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taxDateFrom",
            "in": "query",
            "description": "Export invoices with tax date after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taxDateTo",
            "in": "query",
            "description": "Export invoices with tax date before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderCodeFrom",
            "in": "query",
            "description": "Export invoices with order code after given value",
            "example": "2017000010",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderCodeTo",
            "in": "query",
            "description": "Export invoices with order code before given value",
            "example": "2017000010",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerGuid",
            "in": "query",
            "description": "Export invoices with given customer",
            "example": "443cad54-73bc-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "varSymbol",
            "in": "query",
            "description": "Export invoices with given variable symbol",
            "example": "2010001",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isValid",
            "in": "query",
            "description": "Filtering according to document validity",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "hasTaxId",
            "in": "query",
            "description": "Filtering according to the presence of a TAX identification number",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "hasVatId",
            "in": "query",
            "description": "Filtering according to the presence of a VAT identification number",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "hasCompanyId",
            "in": "query",
            "description": "Filtering according to the presence of a company registration number",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-snapshot-endpoint": true,
        "x-shoptet-response-ref": "#/definitions/invoiceSnapshot"
      }
    },
    "/api/invoices/{code}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "invoice"
                      ],
                      "properties": {
                        "invoice": {
                          "$ref": "#/components/schemas/invoice"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invoice-not-found",
                      "message": "Invoice with code \"000000000633\" not found.",
                      "instance": "000000000633"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Invoice detail",
        "operationId": "getInvoiceDetail",
        "description": "Detailed information about one invoice.\n\n\nIn most cases the items in the response are the same as you can see in the administration of PDF printout of an invoice.\nThere are however some advanced cases (in case of coupon discount with absolute value or in case of\na volume discount and products with multiple VAT rates in the invoice), in which case they are different:\n\n\n- Administration and PDF will show multiple rows for the discount – for each VAT rate one row and the price field split evenly.\n- API response will return only one row indication the total discount price.\n\n\nThe difference is based on how data is internally stored and presented. The API is bases more on internal storage principle,\nthere is however also an array `displayPrices`, which contains the presentation (printout) form of each item.\n\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see\n[Section on demand](#section/basic-principles/section-on-demand)).\n\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters",
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2018000004",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/orders/{code}/invoice": {
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "invoice"
                      ],
                      "properties": {
                        "invoice": {
                          "$ref": "#/components/schemas/invoice"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Unable to create invoice. Order 2017000045 is in the cancelled state.",
                      "instance": "integration-call"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Invoice from order creation",
        "operationId": "createInvoiceFromOrder",
        "description": "Creating invoice from existing order.",
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "Code of order",
            "required": true,
            "example": "2018000053",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "suppressExistenceCheck",
            "in": "query",
            "description": "suppress checking of existing invoices per order (allows multiple\ninvoices per order)",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "invoiceCode": {
                        "type": "string",
                        "description": "Invoice code. Optional, generated by eshop settings if not set.",
                        "examples": [
                          "2021000021"
                        ]
                      },
                      "varSymbol": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 9999999999,
                        "description": "Variable symbol. Optional, generated by eshop settings if not set.",
                        "examples": [
                          2021000021
                        ]
                      },
                      "dueDate": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "Due date. Optional, generated by eshop settings if not set."
                      },
                      "taxDate": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "Date of taxation. Default is today."
                      },
                      "constSymbol": {
                        "$ref": "#/components/schemas/typeConstSymbol",
                        "description": "Const symbol. Only numbers are allowed (max length 4)."
                      },
                      "specSymbol": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 9999999999,
                        "description": "Spec symbol.",
                        "examples": [
                          201323134
                        ]
                      },
                      "billingMethodId": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Billing method identifier - see also [Invoice billing methods](#section/code-lists/invoice-billing-methods) code list. Defaults to order's.",
                        "examples": [
                          1
                        ]
                      },
                      "proformaInvoiceCode": {
                        "type": "string",
                        "description": "Code of proforma invoice. Must exist if set.",
                        "examples": [
                          "202100032"
                        ]
                      },
                      "proofPaymentCodes": {
                        "type": "array",
                        "description": "List of linked proof payments.",
                        "items": {
                          "type": "string",
                          "examples": [
                            "O-2018000053-01"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api_orders_{code}_proforma-invoice.yaml": {
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "proformaInvoice"
                      ],
                      "properties": {
                        "proformaInvoice": {
                          "$ref": "#/components/schemas/proformaInvoice"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "order-not-found",
                      "message": "Order \"2018000012\" not found.",
                      "instance": "2018000012"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proforma-invoice-already-exists",
                      "message": "Proforma invoice code must be unique. Code 2018000046 already exist.",
                      "instance": "2018000046"
                    },
                    {
                      "errorCode": "proforma-invoice-already-exists-for-order",
                      "message": "Proforma invoice already exists for order \"2018000065\" (proforma invoice code \"2018000039\"). Use \"suppressExistenceCheck\" parameter to create multiple proforma invoices for order.",
                      "instance": "2018000039"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Unable to create proformaInvoice. Order 2018000083 is in the cancelled state.",
                      "instance": "payload"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Proforma invoice from order creation",
        "operationId": "createProformaInvoiceFromOrder",
        "description": "Creating proforma invoice from existing order.",
        "tags": [
          "Proforma invoices"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "Code of order",
            "required": true,
            "example": "2018000053",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "suppressExistenceCheck",
            "in": "query",
            "description": "suppress checking of existing proforma invoices per order (allows multiple\nproforma invoices per order)",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "proformaInvoiceCode": {
                        "type": "string",
                        "description": "Proforma invoice code. Optional, generated by eshop settings if not set.",
                        "examples": [
                          "2021000021"
                        ]
                      },
                      "varSymbol": {
                        "type": "integer",
                        "pattern": "^\\d{1,10}$",
                        "description": "Variable symbol. Optional, generated by eshop settings if not set.",
                        "examples": [
                          99
                        ]
                      },
                      "creationTime": {
                        "$ref": "#/components/schemas/typeDateTimeNullable",
                        "description": "Proforma invoice date time creation, in ISO 8601 format."
                      },
                      "dueDate": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "Due date. Optional, generated by eshop settings if not set."
                      },
                      "constSymbol": {
                        "$ref": "#/components/schemas/typeConstSymbolNullable"
                      },
                      "specSymbol": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "pattern": "^\\d{1,10}$",
                        "description": "Specific symbol.",
                        "examples": [
                          36534576
                        ]
                      },
                      "billingMethodId": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Billing method identifier - see also [Invoice billing methods](#section/code-lists/invoice-billing-methods) code list. Defaults to order's.",
                        "examples": [
                          1
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/proforma-invoices/{code}/invoice": {
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "invoice"
                      ],
                      "properties": {
                        "invoice": {
                          "$ref": "#/components/schemas/invoice"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Invoice from proforma invoice creation",
        "operationId": "createInvoiceFromProformaInvoice",
        "description": "Creating invoice from existing proforma invoice.",
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "Code of proforma invoice",
            "required": true,
            "example": "2018000053",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "suppressExistenceCheck",
            "in": "query",
            "description": "suppress checking of existing invoices per order (allows multiple\ninvoices per order)",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "invoiceCode": {
                        "type": "string",
                        "description": "Invoice code. Optional, generated by eshop settings if not set.",
                        "examples": [
                          "2021000021"
                        ]
                      },
                      "varSymbol": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 9999999999,
                        "description": "Variable symbol. Optional, generated by eshop settings if not set.",
                        "examples": [
                          2021000021
                        ]
                      },
                      "dueDate": {
                        "$ref": "#/components/schemas/typeDate",
                        "description": "Due date. Optional, generated by eshop settings if not set."
                      },
                      "taxDate": {
                        "$ref": "#/components/schemas/typeDate",
                        "description": "Date of taxation. Default is today."
                      },
                      "constSymbol": {
                        "$ref": "#/components/schemas/typeConstSymbol",
                        "description": "Const symbol. Only numbers are allowed (max length 4)."
                      },
                      "specSymbol": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 9999999999,
                        "description": "Spec symbol.",
                        "examples": [
                          201323134
                        ]
                      },
                      "billingMethodId": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Id of [billing method](#section/code-lists/Invoice-Billing-Methods). Defaults to order's.",
                        "examples": [
                          1
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/invoices/{code}/link-proforma-invoice": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "invoice"
                      ],
                      "properties": {
                        "invoice": {
                          "$ref": "#/components/schemas/invoice"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invoice-not-found",
                      "message": "Invoice with code \"201500006\" does not exists.",
                      "instance": "invoiceCode"
                    },
                    {
                      "errorCode": "proforma-invoice-not-found",
                      "message": "Proforma invoice with code \"2017100035\" does not exists.",
                      "instance": "2017100035"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proforma-invoice-already-linked-to-invoice",
                      "message": "Proforma invoice with code \"2024269999\" is already linked to the invoice \"2015000138\".",
                      "instance": "2024269999"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proforma-invoice-not-related-to-order",
                      "message": "Proforma invoice with code \"2024269999\" is not related to the order with code \"2015000138\".",
                      "instance": "2024269999"
                    },
                    {
                      "errorCode": "proforma-invoice-and-invoice-has-different-currency",
                      "message": "Proforma invoice with code \"O-2017000017-01\" is not in the same currency as the invoice \"2017100013\".",
                      "instance": "O-2017000017-01"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Invoice link proforma invoices",
        "operationId": "invoiceLinkProformaInvoices",
        "description": "Linking proforma invoices to invoice. Proforma invoices must be related to the order, must be in same currency as the order, must be valid and cannot be linked to another invoice. Multiple proforma invoices are allowed to link to the invoice.\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see\n[Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand)).\n\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters",
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "Code of the invoice",
            "required": true,
            "example": "2018000053",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Sections to include",
            "required": false,
            "example": "surchargeParameters",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "proformaInvoiceCodes"
                    ],
                    "properties": {
                      "proformaInvoiceCodes": {
                        "type": "array",
                        "minItems": 1,
                        "description": "List of linked proforma invoices.",
                        "items": {
                          "type": "string",
                          "description": "Proforma invoice code. The proforma payment invoice be related to the order, must be in same currency as the order, must be valid and cannot be linked to another invoice.",
                          "examples": [
                            "2024249998",
                            "2024249999"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/invoices/{code}/link-proof-payment": {
      "patch": {
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "invoice"
                      ],
                      "properties": {
                        "invoice": {
                          "$ref": "#/components/schemas/invoice"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-payments-not-found",
                      "message": "Proof payment with code \"O-2017000017-01\" not found.",
                      "instance": "O-2017000017-01"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-payments-already-linked-to-invoice",
                      "message": "Proof payment with code \"O-2017000017-01\" is already linked\nto the invoice \"%s\".",
                      "instance": "data.proofPaymentCodes"
                    },
                    {
                      "errorCode": "proof-payments-closed",
                      "message": "Proof payment with code \"O-2017000044-01\" is closed. Unlock\nproof payment first.",
                      "instance": "O-2017000044-01"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-payments-not-related-to-order",
                      "message": "Proof payment with code \"O-2017000017-01\" is not related to\nthe order with code \"2017000044\".",
                      "instance": "data.proofPaymentCodes"
                    },
                    {
                      "errorCode": "proof-payments-and-invoice-has-different-currency",
                      "message": "Proof payment with code \"O-2017000017-01\" is not in the same\ncurrency as the invoice \"2017100013\".",
                      "instance": "data.proofPaymentCodes"
                    },
                    {
                      "errorCode": "proof-payments-invalid",
                      "message": "Proof payment with code \"O-2017000017-01\" is not valid.",
                      "instance": "data.proofPaymentCodes"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Invoice link proof payments",
        "operationId": "invoiceLinkProofPayments",
        "description": "Linking proof payments to invoice. Proof payments must be related to the order, must be in same currency \nas the order, must be valid and cannot be linked to another invoice.\n\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Section on demand](#section/basic-principles/section-on-demand)).\n\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters",
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "Code of the invoice",
            "required": true,
            "example": "2018000053",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Sections to include",
            "required": false,
            "example": "surchargeParameters",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "proofPaymentCodes"
                    ],
                    "properties": {
                      "proofPaymentCodes": {
                        "type": "array",
                        "minItems": 1,
                        "description": "List of linked proof payments.",
                        "items": {
                          "type": "string",
                          "description": "Proof payment code. The proof payment must be related to the order, must be in same currency as the order, must be valid and cannot be linked to another invoice.",
                          "examples": [
                            "O-2018000053-01",
                            "O-2018000053-02"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/invoices/{code}/pdf": {
      "get": {
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invoice-not-found",
                      "message": "Invoice with code \"2018000004\" not found.",
                      "instance": "2018000004"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "document-not-generated",
                      "message": "Error while getting document type \"invoice\" with code\n\"2018000004\".",
                      "instance": "2018000004"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Download invoice as PDF",
        "operationId": "downloadInvoiceAsPdf",
        "description": "You can request the invoice as PDF file, response will be as\napplication/octet-stream. You can download pdf documents\nonly one-by-one for every e-shop. Parallel requests end with `423\nLocked` error.",
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2018000004",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/invoices/{code}/isdoc": {
      "get": {
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invoice-not-found",
                      "message": "Invoice with code \"2018000004\" not found.",
                      "instance": "2018000004"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "document-not-generated",
                      "message": "Error while getting document type \"invoice\" with code\n\"2018000004\".",
                      "instance": "2018000004"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Download invoice as ISDOC",
        "operationId": "downloadInvoiceAsIsdoc",
        "description": "You can request the invoice as ISDOC file, response will be as\napplication/octet-stream. You can download the documents\nonly one-by-one for every e-shop. Parallel requests end with `423\nLocked` error.",
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2018000004",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/invoices/changes": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "changes",
                        "paginator"
                      ],
                      "properties": {
                        "changes": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "changeTime",
                              "changeType"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "identifier (number) of the document, which can be used to query about the details.",
                                "examples": [
                                  "201800014"
                                ]
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time when the event happened. ISO 8601 format (`2017-12-12T22:08:01+0100`)."
                              },
                              "changeType": {
                                "type": "string",
                                "description": "type of event that happened with the document. Possible values are following: `add`, `edit`, `delete`.",
                                "examples": [
                                  "edit"
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Last invoice changes",
        "operationId": "getLastInvoiceChanges",
        "description": "Returns the list of invoices, which were changed (added/changed or deleted). Endpoint is intended to determine\nthe changes after you have loaded the complete list of invoices and you need to know if any of these was been changed (or\ndeleted). Guaranteed history is 30 days, the older data are deleted progressively.\n\n\nEach invoice in the log is only mentioned with its last change. For example, if the invoice was modified and then deleted,\nthe log will only show information about its deletion.\n\n\nCan be filtered by changeType = edit/delete parameter.\n\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\n\nEndpoint supports [Paging](#section/basic-principles/paging).",
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "DateTime from which up to the present we are interested in the changes. + in the time zone",
            "required": true,
            "example": "2018-01-01T01:01:01+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeType",
            "in": "query",
            "description": "Returning only edit or delete type changed records",
            "required": false,
            "example": "edit",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultItemsPerPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/proforma-invoices": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "proformaInvoices"
                      ],
                      "properties": {
                        "proformaInvoices": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "varSymbol",
                              "isValid",
                              "orderCode",
                              "creationTime",
                              "billCompany",
                              "billFullName",
                              "price",
                              "changeTime"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "proforma invoice number. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
                                "examples": [
                                  "2015000001"
                                ]
                              },
                              "varSymbol": {
                                "type": [
                                  "number",
                                  "null"
                                ],
                                "description": "variable symbol",
                                "examples": [
                                  666
                                ]
                              },
                              "isValid": {
                                "type": "boolean",
                                "description": "is the proforma invoice valid?",
                                "examples": [
                                  true
                                ]
                              },
                              "orderCode": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "purchase order number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
                                "examples": [
                                  "2017000017"
                                ]
                              },
                              "creationTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date of issue, in ISO 8601 format"
                              },
                              "billCompany": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "company name",
                                "examples": [
                                  "Company s.r.o."
                                ]
                              },
                              "billFullName": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "full name",
                                "examples": [
                                  "John Doe"
                                ]
                              },
                              "price": {
                                "$ref": "#/components/schemas/price",
                                "description": "price information"
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date of last change, in ISO 8601 format"
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of proforma invoices",
        "operationId": "getListOfProformaInvoices",
        "description": "Returns the list of proforma invoices. Supports the \n[Paging](#section/basic-principles/paging).",
        "tags": [
          "Proforma invoices"
        ],
        "parameters": [
          {
            "name": "isValid",
            "in": "query",
            "description": "filtering according to document validity",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "orderCode",
            "in": "query",
            "description": "filtering according to number of order.",
            "example": 2018000012,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "filtering items created after or same as requested datetime. ISO\n8601 format (\"2017-12-12T22:08:01+0100\").",
            "example": "2017-02-28T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "filtering items created before or same as requested datetime. ISO\n8601 format (\"2017-12-12T22:08:01+0100\")",
            "example": "2017-02-28T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "varSymbol",
            "in": "query",
            "description": "filtering according to variable symbol of proforma invoice",
            "example": 666,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 20. Max value is 100.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/proforma-invoices/snapshot": {
      "get": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "currency-not-found",
                      "message": "Currency code \\\"EUR\\\" not found.",
                      "instance": "currencyCode"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "List of all proforma invoices",
        "operationId": "getListOfAllProformaInvoices",
        "description": "Using this endpoint, you can get list of all proforma invoices with detailed info of each proforma invoice (like in Proforma invoice detail endpoint) asynchronously. See how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each proforma invoice taking one line of output file.\n\n\nOne invoice in response has the same format as invoice detail response. See [Proforma invoice snapshot schema](/shoptet-api/openapi/snapshot/proformainvoicesnapshot) for more details.\n\n\nResult file is compressed using GZIP.\n\n\nThis endpoint has one section, which is only sent when requested in the `include` parameter (see [Section on demand](#section/basic-principles/section-on-demand)).\n\n\nValue                 | Section\n---                   | ---\n`surchargeParameters` | Item surcharge parameters",
        "tags": [
          "Proforma invoices"
        ],
        "parameters": [
          {
            "name": "include",
            "in": "query",
            "description": "Sections to include",
            "example": "surchargeParameters",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "Export proforma invoices created after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "Export proforma invoices created before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeFrom",
            "in": "query",
            "description": "Export proforma invoices updated after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeTo",
            "in": "query",
            "description": "Export proforma invoices updated before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codeFrom",
            "in": "query",
            "description": "Export proforma invoices with code after given value (given code included)",
            "example": "0000000006",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codeTo",
            "in": "query",
            "description": "Export proforma invoices with code before given value (given code included)",
            "example": "0000000006",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "proformaInvoiceCodeFrom",
            "in": "query",
            "description": "Export invoices with proforma invoice code after given value",
            "example": "2017000010",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "proformaInvoiceCodeTo",
            "in": "query",
            "description": "Export invoices with proforma invoice code befor given value",
            "example": "2017000010",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isValid",
            "in": "query",
            "description": "Filtering according to document validity",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "paid",
            "in": "query",
            "description": "Filtering according to if proforma invoice is paid",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "currencyCode",
            "in": "query",
            "description": "Export proforma invoices with given currency code, if given currency code does not exists, or is not valid, it will throw an exception",
            "example": "CZK",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-snapshot-endpoint": true,
        "x-shoptet-response-ref": "#/definitions/proformaInvoiceSnapshot"
      }
    },
    "/api/proforma-invoices/{code}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "proformaInvoice"
                      ],
                      "properties": {
                        "proformaInvoice": {
                          "$ref": "#/components/schemas/proformaInvoice"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proforma-invoice-not-found",
                      "message": "Proforma invoice with code \"000000000633\" not found.",
                      "instance": "000000000633"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Proforma invoice detail",
        "operationId": "getProformaInvoiceDetail",
        "description": "Additional information about one proforma invoice.\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see\n[Section on demand](#section/basic-principles/section-on-demand)).\n\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters",
        "tags": [
          "Proforma invoices"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2018000035",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Sections to include",
            "required": false,
            "example": "surchargeParameters",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/proforma-invoices/{code}/pdf": {
      "get": {
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proforma-invoice-not-found",
                      "message": "Proforma invoice with code \"2018000035\" not found.",
                      "instance": "2018000035"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "document-not-generated",
                      "message": "Error while getting document type \"proformaInvoice\" with\ncode \"2018000035\".",
                      "instance": "2018000035"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Download proforma invoice as PDF",
        "operationId": "downloadProformaInvoicePdf",
        "description": "You can request the proforma invoice as PDF file, response will be as\napplication/octet-stream. You can download pdf documents\n\nonly one-by-one for every e-shop. Parallel requests end with `423\nLocked` error.",
        "tags": [
          "Proforma invoices"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2018000035",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/proforma-invoices/changes": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "changes"
                      ],
                      "properties": {
                        "changes": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "changeTime",
                              "changeType"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "identifier (number) of the document, which can be used to query about the details.",
                                "examples": [
                                  "201800014"
                                ]
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time when the event happened. ISO 8601 format (`2017-12-12T22:08:01+0100`)."
                              },
                              "changeType": {
                                "type": "string",
                                "description": "type of event that happened with the document. Possible values are following: `add`, `edit`, `delete`.",
                                "examples": [
                                  "edit"
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "changes": [
                      {
                        "changeType": "edit",
                        "changeTime": "2018-05-29T09:02:27+0200",
                        "code": "201800014"
                      }
                    ],
                    "paginator": {
                      "totalCount": 55,
                      "page": 1,
                      "pageCount": 3,
                      "itemsOnPage": 20,
                      "itemsPerPage": 20
                    }
                  },
                  "errors": [
                    {
                      "errorCode": "example-error-code",
                      "message": "Example error message",
                      "instance": "instance"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Last proforma invoice changes",
        "operationId": "getLastProformaInvoiceChanges",
        "description": "Returns the list of proforma invoices, which were changed. The Endpoint is intended to determine\nthe changes after you have loaded the list of proforma invoices and you need to know the changes. The guaranteed history of changes is 30 days.\n\n\nEach proforma invoice is only given in the listing with its last change. For example, if the proforma invoices was modified and then deleted,\nthe listing will only show information about its deletion.\n\n\nCan be filtered by changeType = edit/delete parameter.\n\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\n\nEndpoint supports [Paging](#section/basic-principles/paging)",
        "tags": [
          "Proforma invoices"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "DateTime from which up to the present we are interested in the changes. + in the time zone",
            "required": true,
            "example": "2018-01-01T01:01:01+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeType",
            "in": "query",
            "description": "Returning only edit or delete type changed records",
            "required": false,
            "example": "edit",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultItemsPerPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/proof-payments": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "items",
                        "paginator"
                      ],
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/proofPaymentsList"
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of proof payments",
        "operationId": "getListOfProofPayments",
        "description": "The list of proof payments supports [Paging](#section/basic-principles/paging).",
        "tags": [
          "Proof payments"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "description": "filtering according to proof payments code. Optional.",
            "required": false,
            "example": "P--2015000170-1",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderCode",
            "in": "query",
            "description": "filtering according to order code. Optional.",
            "required": false,
            "example": "2015000001",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "proformaInvoiceCode",
            "in": "query",
            "description": "filtering according to proforma invoice code. Optional.",
            "required": false,
            "example": "2015000170",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "invoiceCode",
            "in": "query",
            "description": "filtering by invoice code",
            "required": false,
            "example": "2017100013",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "issueDate",
            "in": "query",
            "description": "filtering according to date on which was proof payment issued. In\nISO 8601 format. Optional.",
            "required": false,
            "example": "2024-12-24T15:22:02+0200",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isValid",
            "in": "query",
            "description": "filtering according to proof payments validity. Optional.",
            "required": false,
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "closed",
            "in": "query",
            "description": "filtering by proof payment closed/open",
            "required": false,
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 20. Max value is 100.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "proofPayments"
                      ],
                      "properties": {
                        "proofPayments": {
                          "$ref": "#/components/schemas/proofPaymentDetail"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "order-not-found",
                      "message": "Order \"2015000001\" not found.",
                      "instance": "2015000001"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "example": {
                    "data": null,
                    "errors": [
                      {
                        "errorCode": "order-not-found",
                        "message": "Order \"2015000001\" not found.",
                        "instance": "2015000001"
                      }
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Unable to create proof payment with parent document \\\"order\\\" and code \\\"2018000081\\\". Parent document has 0 or negative price.",
                      "instance": "2018000081"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Unable to create proof payment. Document with code \"2017000024\" is in invalid state.",
                      "instance": "integration-call"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Proof payment insertion",
        "operationId": "createProofPayment",
        "description": "",
        "tags": [
          "Proof payments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "required": [
                      "payment",
                      "currencyCode",
                      "varSymbol"
                    ],
                    "properties": {
                      "proformaInvoiceCode": {
                        "type": "string",
                        "description": "proforma invoice code; required if no `orderCode`",
                        "examples": [
                          "2015000170"
                        ]
                      },
                      "orderCode": {
                        "type": "string",
                        "description": "order code; required if no `proformaInvoiceCode`",
                        "examples": [
                          "2015000001"
                        ]
                      },
                      "payment": {
                        "$ref": "#/components/schemas/typePriceNullable",
                        "description": "total price on the bill",
                        "examples": [
                          "1000.00"
                        ]
                      },
                      "currencyCode": {
                        "$ref": "#/components/schemas/typeCurrencyCode",
                        "description": "Currency code. List of available currencies within the e-shop can be found in [Eshop info](#tag/eshop/geteshopinfo) endpoint.",
                        "examples": [
                          "CZK"
                        ]
                      },
                      "varSymbol": {
                        "type": "number",
                        "description": "variable symbol",
                        "examples": [
                          666
                        ]
                      },
                      "issueDate": {
                        "$ref": "#/components/schemas/typeDateTimeRequest",
                        "description": "date on which was proof payment issued, in ISO 8601 format. Deprecation of required timezone part of datetime, and will be removed in the future"
                      },
                      "taxDate": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "date of tax"
                      },
                      "constSymbol": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "constant symbol",
                        "examples": [
                          "0308"
                        ]
                      },
                      "specSymbol": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "specific symbol",
                        "examples": [
                          36534576
                        ]
                      },
                      "invoiceBillingMethodId": {
                        "type": "integer",
                        "description": "billing method identifier (can be `null`) - see also [Invoice billing methods](#section/code-lists/invoice-billing-methods) code list",
                        "examples": [
                          4
                        ]
                      },
                      "billBankAccount": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "bank account on the bill (can be `null`)",
                        "examples": [
                          "12345678/1234"
                        ]
                      },
                      "billIban": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "e-shop IBAN on the bill (can be `null`)",
                        "examples": [
                          "CZ650800000000123456789"
                        ]
                      },
                      "billBic": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "bank code - SWIFT on the bill (can be `null`)",
                        "examples": [
                          "GIBACZPX"
                        ]
                      },
                      "documentRemark": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "document remark (can be `null`)",
                        "examples": [
                          "Payment for order 2015000001"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/proof-payments/{code}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "proofPayments"
                      ],
                      "properties": {
                        "proofPayments": {
                          "$ref": "#/components/schemas/proofPaymentDetail"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-payments-not-found",
                      "message": "Proof payment with code \"P--0000000000-1\" not found.",
                      "instance": "P--0000000000-1"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "example": {
                    "data": null,
                    "errors": [
                      {
                        "errorCode": "proof-payments-not-found",
                        "message": "Proof payment with code \"P--0000000000-1\" not found.",
                        "instance": "P--0000000000-1"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "summary": "Proof payment detail",
        "operationId": "getProofPaymentDetail",
        "description": "Additional information about one proof payment.",
        "tags": [
          "Proof payments"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "P--2015000170-1",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "proofPayments"
                      ],
                      "properties": {
                        "proofPayments": {
                          "$ref": "#/components/schemas/proofPaymentDetail"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-payments-not-found",
                      "message": "Proof payment with code \"P--0000000000-1\" not found.",
                      "instance": "P--0000000000-1"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-payments-closed",
                      "message": "Proof payment with code \"P--0000000000-1\" is closed. Unlock\nproof payment first.",
                      "instance": "P--0000000000-1"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Proof payment update",
        "operationId": "updateProofPayment",
        "description": "If the proof payment is closed, response code `409` is returned and the\ndocument cannot be updated. Proof payment is closed if:\n\n\n- proof payment is/was linked to the invoice or\n\n\n- there is a manual lock of proof payment.",
        "tags": [
          "Proof payments"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "P--2015000170-1",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "additionalProperties": false,
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "taxDate": {
                        "$ref": "#/components/schemas/typeDate",
                        "description": "date of tax"
                      },
                      "issueDate": {
                        "$ref": "#/components/schemas/typeDateTimeRequest",
                        "description": "date on which was proof payment issued, in ISO 8601 format. Deprecation of required timezone part of datetime, and will be removed in the future"
                      },
                      "varSymbol": {
                        "type": "number",
                        "pattern": "^\\d{1,10}$",
                        "description": "variable symbol",
                        "examples": [
                          666
                        ]
                      },
                      "constSymbol": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "pattern": "^.{1,4}$",
                        "description": "constant symbol",
                        "examples": [
                          "0308"
                        ]
                      },
                      "specSymbol": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "pattern": "^\\d{1,10}$",
                        "description": "specific symbol",
                        "examples": [
                          36534576
                        ]
                      },
                      "invoiceBillingMethodId": {
                        "type": "integer",
                        "description": "billing method identifier (can be `null`) - see also [Invoice billing methods](#section/code-lists/invoice-billing-methods) code list",
                        "examples": [
                          4
                        ]
                      },
                      "billBankAccount": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "bank account on the bill (can be `null`)",
                        "examples": [
                          "12345678/1234"
                        ]
                      },
                      "billIban": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "e-shop IBAN on the bill (can be `null`)",
                        "examples": [
                          "CZ650800000000123456789"
                        ]
                      },
                      "billBic": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "bank code - SWIFT on the bill (can be `null`)",
                        "examples": [
                          "GIBACZPX"
                        ]
                      },
                      "bankAccount": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "bank account (can be `null`)",
                        "examples": [
                          "12345678/1234"
                        ]
                      },
                      "iban": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "e-shop IBAN (can be `null`)",
                        "examples": [
                          "CZ650800000000123456789"
                        ]
                      },
                      "bic": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "bank code - SWIFT (can be `null`)",
                        "examples": [
                          "GIBACZPX"
                        ]
                      },
                      "isValid": {
                        "type": "boolean",
                        "description": "is proof payment valid?",
                        "examples": [
                          true
                        ]
                      },
                      "documentRemark": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "remark on the document",
                        "examples": [
                          "Payment for order 2015000001"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-payments-not-found",
                      "message": "Proof payment with code \"P--0000000000-1\" not found.",
                      "instance": "P--0000000000-1"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-payments-closed",
                      "message": "Proof payment with code \"P--0000000000-1\" is closed. Unlock\nproof payment first.",
                      "instance": "P--0000000000-1"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Proof payment deletion",
        "operationId": "deleteProofPayment",
        "description": "If the proof payment is closed, response code `409` is returned and the\ndocument cannot be deleted. Proof payment is closed if:\n\n\n- proof payment is/was linked to the invoice or\n\n\n- there is a manual lock of proof payment.",
        "tags": [
          "Proof payments"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "P--2015000170-1",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/proof-payments/snapshot": {
      "get": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "List of all proof payments",
        "operationId": "getListOfAllProofPayments",
        "description": "Using this endpoint, you can get list of all proof payments with detailed info of each proof payment (like in Proof payment Detail endpoint).\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each proof payment taking one line of output file.\n\n\nOne proof payment in response has the same format as proof payment detail response. See [Proof payment snapshot schema](/shoptet-api/openapi/snapshot/proofpaymentsnapshot) for more details.\n\n\nResult file is compressed using GZIP.",
        "tags": [
          "Proof payments"
        ],
        "parameters": [
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "Export proof payments created after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "Export proof payments created before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeFrom",
            "in": "query",
            "description": "Export proof payments updated after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeTo",
            "in": "query",
            "description": "Export proof payments updated before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taxDateFrom",
            "in": "query",
            "description": "Export proof payments with tax date after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taxDateTo",
            "in": "query",
            "description": "Export proof payments with tax date before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isValid",
            "in": "query",
            "description": "Filtering according to document validity",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "currencyCode",
            "in": "query",
            "description": "Proof payment currency",
            "example": "CZK",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "closed",
            "in": "query",
            "description": "Is the proof payment closed?",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-snapshot-endpoint": true,
        "x-shoptet-response-ref": "#/definitions/proofPaymentSnapshot"
      }
    },
    "/api/proof-payments/order/{code}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "proofPayments"
                      ],
                      "properties": {
                        "proofPayments": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/proofPaymentDetail"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-payments-not-found",
                      "message": "Proof payment with order code \"2015000001\" not found.",
                      "instance": "2015000001"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Proof payment detail by order code",
        "operationId": "getProofPaymentDetailByOrderCode",
        "description": "",
        "tags": [
          "Proof payments"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2015000001",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "proofPayments"
                      ],
                      "properties": {
                        "proofPayments": {
                          "$ref": "#/components/schemas/proofPaymentDetail"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "order-not-found",
                      "message": "Order \"2015000001\" not found.",
                      "instance": "2015000001"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable entity",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Unable to create proof payment with parent document \\\"order\\\" and code \\\"2018000081\\\". Parent document has 0 or negative price.",
                      "instance": "2018000081"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "example": {
                    "data": null,
                    "errors": [
                      {
                        "errorCode": "invalid-request-data",
                        "message": "Unable to create proof payment with parent document \\\"order\\\" and code \\\"2018000081\\\". Parent document has 0 or negative price.",
                        "instance": "2018000081"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "summary": "Proof payment insertion by order code",
        "operationId": "createProofPaymentByOrderCode",
        "description": "",
        "tags": [
          "Proof payments"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2015000001",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/proof-payments/proforma-invoice/{code}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "proofPayments"
                      ],
                      "properties": {
                        "proofPayments": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/proofPaymentDetail"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-payments-not-found",
                      "message": "Proof payment with proforma invoice code \"2015000170\" not\nfound.",
                      "instance": "2015000170"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Proof payment detail by proforma invoice code",
        "operationId": "getProofPaymentDetailByProformaInvoiceCode",
        "description": "",
        "tags": [
          "Proof payments"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2015000170",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "proofPayments"
                      ],
                      "properties": {
                        "proofPayments": {
                          "$ref": "#/components/schemas/proofPaymentDetail"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proforma-invoice-not-found",
                      "message": "Proforma invoice with code \"2015000170\" not found.",
                      "instance": "2015000001"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Unable to create proof payment with parent document \\\"proformaInvoice\\\" and code \\\"2018000081\\\". Parent document has 0 or negative price.",
                      "instance": "2018000081"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Unable to create proof payment. Document with code \"2017000024\" is in invalid state.",
                      "instance": "integration-call"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Proof payment insertion by proforma invoice code",
        "operationId": "createProofPaymentByProformaInvoiceCode",
        "description": "",
        "tags": [
          "Proof payments"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2015000170",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/proof-payments/{code}/document-settings": {
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "proofPayments"
                      ],
                      "properties": {
                        "proofPayments": {
                          "$ref": "#/components/schemas/proofPaymentDetail"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-payments-not-found",
                      "message": "Proof payment with code \"P--0000000000-1\" not found.",
                      "instance": "P--0000000000-1"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-payments-unable-to-open",
                      "message": "Unable to open proof payment with code \"P--0000000000-1\".\nDocument is linked to invoice.",
                      "instance": "P--0000000000-1"
                    },
                    {
                      "errorCode": "proof-payments-unable-to-close",
                      "message": "Unable to close proof payment with code \"P--0000000000-1\".\nDocument is not valid.",
                      "instance": "P--0000000000-1"
                    },
                    {
                      "errorCode": "proof-payments-unable-to-close",
                      "message": "Unable to close proof payment with code \"P--0000000000-1\".\nDocument is linked to invoice.",
                      "instance": "P--0000000000-1"
                    },
                    {
                      "errorCode": "proof-payments-unable-to-unlink",
                      "message": "Unable to unlink proof payment with code \"P--0000000000-1\".\nDocument is not linked to invoice.",
                      "instance": "P--0000000000-1"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Unable to update proof payment with code \"P--0000000000-1\".\nAn exception occurred.",
                      "instance": "P--0000000000-1"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Proof payment document settings",
        "operationId": "proofPaymentDocumentSettings",
        "description": "Using this endpoint, you can unlink an invoice from a proof of payment.\nAfter successfully unlinking the invoice, the price of the linked\n\ninvoice will be recalculated and increased by the price of the proof of\npayment.\n\nLinking of the invoice to the proof of payment is not possible at this\nendpoint.\n\n\nYou can also close a proof of payment with this endpoint. You can open a\nproof of payment if it is not linked to any invoice.\n\nOtherwise, a response code 409 is returned and the document cannot be\nclosed.\n\n\nImportant note: If the document is closed, the invoice or proof of\npayment may have already been sent to the customer!",
        "tags": [
          "Proof payments"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "P--2015000170-1",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "unlink": {
                        "type": "boolean",
                        "description": "`true` if you want to unlink the proof of payment from the invoice",
                        "examples": [
                          false
                        ]
                      },
                      "closed": {
                        "type": "boolean",
                        "description": "`true` if you want to close the proof of payment, `false` if you want to open the proof of payment",
                        "examples": [
                          false
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/proof-payments/{code}/pdf": {
      "get": {
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-of-payment-not-found",
                      "message": "Proof payment with code \"P-2014000004-01\" does not exist.",
                      "instance": "P-2014000004-01"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "example": {
                    "data": null,
                    "errors": [
                      {
                        "errorCode": "proof-of-payment-not-found",
                        "message": "Proof payment with code \"P-2014000004-01\" does not exist.",
                        "instance": "P-2014000004-01"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "summary": "Download proof of payment as PDF",
        "operationId": "downloadProofOfPaymentPdf",
        "description": "You can request the proof of payment as PDF file, response will be as\napplication/octet-stream. You can download pdf documents\n\nonly one-by-one for every e-shop. Parallel requests end with `423\nLocked` error.",
        "tags": [
          "Proof payments"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "P-2014000004-01",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/proof-payments/{code}/isdoc": {
      "get": {
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-payments-not-found",
                      "message": "Proof payment with code \"P-2015000248-01\" not found.",
                      "instance": "P-2015000248-01"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "document-not-generated",
                      "message": "Error while getting document type \"proofPayment\" with code\n\"P-2015000248-01\".",
                      "instance": "P-2015000248-01"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Download proof payment as ISDOC",
        "operationId": "downloadProofPaymentAsIsdoc",
        "description": "You can request the proof payment as ISDOC file, response will be as\napplication/octet-stream. You can download the documents\nonly one-by-one for every e-shop. Parallel requests end with `423\nLocked` error.",
        "tags": [
          "Proof payments"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "P-2015000248-01",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/proof-payments/changes": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "example": {
                  "data": {
                    "changes": [
                      {
                        "changeType": "edit",
                        "changeTime": "2018-05-29T09:02:27+0200",
                        "code": "201800014"
                      }
                    ],
                    "paginator": {
                      "totalCount": 55,
                      "page": 1,
                      "pageCount": 3,
                      "itemsOnPage": 20,
                      "itemsPerPage": 20
                    }
                  },
                  "errors": [
                    {
                      "errorCode": "example-error-code",
                      "message": "Example error message",
                      "instance": "instance"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "changes": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "changeType": {
                                "type": "string",
                                "description": "type of event that happened with the document.\nPossible values are following: `add`, `edit`,\n`delete`."
                              },
                              "changeTime": {
                                "type": "string",
                                "description": "date and time when the event happened. ISO 8601\nformat (\"2017-12-12T22:08:01+0100\")."
                              },
                              "code": {
                                "type": "string",
                                "description": "identifier (number) of the document, which can be\nused to query about the details."
                              }
                            },
                            "required": [
                              "changeType",
                              "changeTime",
                              "code"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "paginator": {
                          "type": "object",
                          "properties": {
                            "totalCount": {
                              "type": "integer",
                              "description": "total number of available records"
                            },
                            "page": {
                              "type": "integer",
                              "description": "current page"
                            },
                            "pageCount": {
                              "type": "integer",
                              "description": "total number of available pages"
                            },
                            "itemsOnPage": {
                              "type": "integer",
                              "description": "number of currently returned records"
                            },
                            "itemsPerPage": {
                              "type": "integer",
                              "description": "required number of records per page"
                            }
                          },
                          "required": [
                            "totalCount",
                            "page",
                            "pageCount",
                            "itemsOnPage",
                            "itemsPerPage"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "changes",
                        "paginator"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Last proof payments changes",
        "operationId": "getLastProofPaymentsChanges",
        "description": "Returns the list of proof payments, which were changed. The Endpoint is intended to determine\nthe changes after you have loaded the list of proof payments and you need to know the changes. The guaranteed history of changes is 30 days.\n\n\nEach proof payment is only given in the listing with its last change. For example, if the proof payment was modified and then deleted,\nthe listing will only show information about its deletion.\n\n\nCan be filtered by changeType = edit/delete parameter.\n\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\n\nEndpoint supports [Paging](#section/basic-principles/paging)",
        "tags": [
          "Proof payments"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "DateTime from which up to the present we are interested in the changes. + in the time zone",
            "required": true,
            "example": "2018-01-01T01:01:01+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeType",
            "in": "query",
            "description": "Returning only edit or delete type changed records",
            "required": false,
            "example": "edit",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultItemsPerPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/credit-notes": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "creditNotes",
                        "paginator"
                      ],
                      "properties": {
                        "creditNotes": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "varSymbol",
                              "isValid",
                              "invoiceCode",
                              "proofPaymentCode",
                              "orderCode",
                              "creationTime",
                              "billCompany",
                              "billFullName",
                              "price",
                              "changeTime"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "credit note number. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
                                "examples": [
                                  "0000000006"
                                ]
                              },
                              "varSymbol": {
                                "type": [
                                  "number",
                                  "null"
                                ]
                              },
                              "isValid": {
                                "type": "boolean",
                                "description": "is the credit note valid?",
                                "examples": [
                                  true
                                ]
                              },
                              "invoiceCode": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "invoice number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
                                "examples": [
                                  "2017200011"
                                ]
                              },
                              "proofPaymentCode": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "proof payment code (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
                                "examples": [
                                  "P--2017200011-1"
                                ]
                              },
                              "orderCode": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "purchase order number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
                                "examples": [
                                  "2017000017"
                                ]
                              },
                              "creationTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date of issue, in ISO 8601 format"
                              },
                              "billCompany": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "name of the company (can be `null`)",
                                "examples": [
                                  "Company s.r.o."
                                ]
                              },
                              "billFullName": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "full name of the customer (can be `null`)",
                                "examples": [
                                  "John Doe"
                                ]
                              },
                              "price": {
                                "$ref": "#/components/schemas/price",
                                "description": "price informations"
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date of last change, in ISO 8601 format"
                              },
                              "reasonRemark": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Reason for credit note; default reason can be applied if not send.",
                                "examples": [
                                  "Order cancellation"
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of credit notes",
        "operationId": "getListOfCreditNotes",
        "description": "The list of credit notes supports [Paging](#section/basic-principles/paging)",
        "tags": [
          "Credit notes"
        ],
        "parameters": [
          {
            "name": "isValid",
            "in": "query",
            "description": "filtering according to document validity. Optional.",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "invoiceCode",
            "in": "query",
            "description": "filtering according to number of invoice. Optional.",
            "example": "0000000006",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "date of credit note creation, in ISO 8601 format, lower limit.\nOptional.",
            "example": "2017-02-28T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "date of credit note creation, in ISO 8601 format, upper limit.\nOptional.",
            "example": "2028-02-28T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "varSymbol",
            "in": "query",
            "description": "filtering according to variable symbol of credit note",
            "example": "0000000006",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "proofPaymentCode",
            "in": "query",
            "description": "filtering according to proof payment code. Optional.",
            "example": "P--2017200011-1",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultItemsPerPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/credit-notes/snapshot": {
      "get": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "List of all credit notes",
        "operationId": "getListOfAllCreditNotes",
        "description": "Using this endpoint, you can get list of all credit notes with detailed info of each credit note (like in Credit note detail endpoint) asynchronously. See how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each credit note taking one line of output file.\n\n\nOne credit note in response has the same format as credit note detail response. See [Credit note snapshot schema](/shoptet-api/openapi/snapshot/creditnotesnapshot) for more details.\n\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Section on demand](#section/basic-principles/section-on-demand)).\n\n\nValue                 | Section\n---                   | ---\n`surchargeParameters` | Item surcharge parameters.\n\nResult file is compressed using GZIP.",
        "tags": [
          "Credit notes"
        ],
        "parameters": [
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "Export credit notes created after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "Export credit notes created before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeFrom",
            "in": "query",
            "description": "Export credit notes updated after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeTo",
            "in": "query",
            "description": "Export credit notes updated before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codeFrom",
            "in": "query",
            "description": "Export credit notes with code after given value",
            "example": "0000000006",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codeTo",
            "in": "query",
            "description": "Export credit notes with code before given value",
            "example": "0000000006",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "invoiceCodeFrom",
            "in": "query",
            "description": "Export credit notes with invoice code after given value",
            "example": "2017000010",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "invoiceCodeTo",
            "in": "query",
            "description": "Export credit notes with invoice code before given value",
            "example": "2017000010",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dueDateFrom",
            "in": "query",
            "description": "Export credit notes with due date after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dueDateTo",
            "in": "query",
            "description": "Export credit notes with due date before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hasProofPaymentCode",
            "in": "query",
            "description": "Export credit notes with or without proof payment codes only",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "taxDateFrom",
            "in": "query",
            "description": "Export credit notes with tax date after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taxDateTo",
            "in": "query",
            "description": "Export credit notes with tax date before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderCodeFrom",
            "in": "query",
            "description": "Export credit notes with order code after given value",
            "example": "2017000010",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderCodeTo",
            "in": "query",
            "description": "Export credit notes with order code before given value",
            "example": "2017000010",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerGuid",
            "in": "query",
            "description": "Export credit notes with given customer",
            "example": "443cad54-73bc-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "varSymbol",
            "in": "query",
            "description": "Export credit notes with given variable symbol",
            "example": "2010001",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "restocked",
            "in": "query",
            "description": "Export restocked or not restocked credit notes",
            "example": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "isValid",
            "in": "query",
            "description": "Filtering according to document validity",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Sections to include",
            "required": false,
            "example": "surchargeParameters",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-snapshot-endpoint": true,
        "x-shoptet-response-ref": "#/definitions/creditNoteSnapshot"
      }
    },
    "/api/credit-notes/{code}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "creditNote"
                      ],
                      "properties": {
                        "creditNote": {
                          "$ref": "#/components/schemas/creditNote"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "credit-note-not-found",
                      "message": "Credit note with code \"000000000633\" not found.",
                      "instance": "000000000633"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Credit note detail",
        "operationId": "getCreditNoteDetail",
        "description": "Additional information about one credit note.\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Section on demand](#section/basic-principles/section-on-demand)).\n\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters",
        "tags": [
          "Credit notes"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "0000000002",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Sections to include",
            "required": false,
            "example": "surchargeParameters",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "creditNote"
                      ],
                      "properties": {
                        "creditNote": {
                          "$ref": "#/components/schemas/creditNote"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Field cannot be empty string.",
                      "instance": "data.reasonRemark"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Credit note update",
        "operationId": "updateCreditNote",
        "description": "",
        "tags": [
          "Credit notes"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "0000000002",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "varSymbol": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 9999999999,
                        "description": "Variable symbol. Optional, generated by eshop settings if not set.",
                        "examples": [
                          99
                        ]
                      },
                      "dueDate": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "Due date. Optional, generated by eshop settings if not set."
                      },
                      "taxDate": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "Date of taxation. Default is today."
                      },
                      "constSymbol": {
                        "$ref": "#/components/schemas/typeConstSymbolNullable"
                      },
                      "specSymbol": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "minimum": 0,
                        "maximum": 9999999999,
                        "description": "Specific symbol.",
                        "examples": [
                          201323134
                        ]
                      },
                      "billingMethodId": {
                        "type": "integer",
                        "description": "Billing method identifier - see also [Invoice billing methods](#section/code-lists/invoice-billing-methods) code list. Defaults to order's.",
                        "examples": [
                          1
                        ]
                      },
                      "orderCode": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 10,
                        "description": "Order code. Optional.",
                        "examples": [
                          "201323134"
                        ]
                      },
                      "reasonRemark": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "Reason for credit note; default reason can be applied if not send.",
                        "examples": [
                          "Order cancellation"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "credit-note-not-found",
                      "message": "Credit note with code \"99\" not found.",
                      "instance": "99"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Credit note deletion",
        "operationId": "deleteCreditNote",
        "description": "",
        "tags": [
          "Credit notes"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "0000000002",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/credit-notes/{code}/restock": {
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "notes"
                      ],
                      "properties": {
                        "notes": {
                          "type": "array",
                          "description": "Notes about no longer existing products which cannot be restocked. Messages are in administration language.",
                          "items": {
                            "type": "string",
                            "examples": [
                              "Product is no longer available."
                            ]
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "credit-note-not-found",
                      "message": "Credit note with code \"0000000002\" not found.",
                      "instance": "000000000633"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "credit-note-already-restocked",
                      "message": "Credit note with code \"0000000002\" already restocked.",
                      "instance": "0000000002"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Credit note restock",
        "operationId": "restockCreditNote",
        "description": "Restock items from credit note.",
        "tags": [
          "Credit notes"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "0000000002",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/invoices/{code}/credit-note": {
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "creditNote"
                      ],
                      "properties": {
                        "creditNote": {
                          "$ref": "#/components/schemas/creditNote"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Field cannot be empty string.",
                      "instance": "data.reasonRemark"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Credit note from invoice creation",
        "operationId": "createCreditNoteFromInvoice",
        "description": "Creating credit note from existing invoice.\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see\n[Section on demand](#section/basic-principles/section-on-demand)).\n\n\nValue | Section\n\n--------|------\n\n`surchargeParameters`| Item surcharge parameters\n\nIt will create a credit note from the given invoice. It will\nautomatically take all invoice items and add them to the credit note. If\nyou want to add just some items from the invoice or different amount,\nuse the parameter `items`. This parameter will allow you to generate\ncredit note only with provided items.",
        "tags": [
          "Credit notes"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "Code of invoice",
            "required": true,
            "example": "2018000004",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Sections to include",
            "required": false,
            "example": "surchargeParameters",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "creditNoteCode": {
                        "type": "string",
                        "description": "Credit nore code. Optional, generated by eshop settings if not set.",
                        "examples": [
                          "0000000099"
                        ]
                      },
                      "varSymbol": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 9999999999,
                        "description": "Variable symbol. Optional, generated by eshop settings if not set.",
                        "examples": [
                          99
                        ]
                      },
                      "dueDate": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "Due date. Optional, generated by eshop settings if not set."
                      },
                      "taxDate": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "Date of taxation. Default is today."
                      },
                      "constSymbol": {
                        "$ref": "#/components/schemas/typeConstSymbol"
                      },
                      "specSymbol": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 9999999999,
                        "description": "Spec symbol.",
                        "examples": [
                          201323134
                        ]
                      },
                      "billingMethodId": {
                        "type": "integer",
                        "description": "Billing method identifier - see also [Invoice billing methods](#section/code-lists/invoice-billing-methods) code list. Defaults to order.",
                        "examples": [
                          1
                        ]
                      },
                      "orderCode": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 10,
                        "description": "Order Code. Optional.",
                        "examples": [
                          "201323134"
                        ]
                      },
                      "useItemIds": {
                        "type": "array",
                        "minItems": 1,
                        "description": "List of invoice item ids. Can be found in field `data.invoice.items.itemId` in Invoice detail.",
                        "items": {
                          "type": "integer"
                        },
                        "deprecated": true
                      },
                      "items": {
                        "type": "array",
                        "minItems": 1,
                        "description": "List of invoice item ids and their amounts.",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "invoiceItemId"
                          ],
                          "properties": {
                            "invoiceItemId": {
                              "type": "integer",
                              "minimum": 1,
                              "description": "Id of invoice item. Can be found in field `data.invoice.items.itemId` in Invoice detail.",
                              "examples": [
                                231
                              ]
                            },
                            "amount": {
                              "$ref": "#/components/schemas/typePositiveAmountNullable",
                              "description": "Amount of given item. Optional. If the property is not provided, the amount is automatically taken from the invoice.",
                              "examples": [
                                1
                              ]
                            }
                          }
                        }
                      },
                      "reasonRemark": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "Reason for credit note; default reason can be applied if not send.",
                        "examples": [
                          "Order cancellation"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/proof-payments/{code}/credit-note": {
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "creditNote"
                      ],
                      "properties": {
                        "creditNote": {
                          "$ref": "#/components/schemas/creditNote"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-of-payment-not-found",
                      "message": "Proof payment with code \"P-2014000004-01\" does not exist.",
                      "instance": "P-2014000004-01"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "example": {
                    "data": null,
                    "errors": [
                      {
                        "errorCode": "proof-of-payment-not-found",
                        "message": "Proof payment with code \"P-2014000004-01\" does not exist.",
                        "instance": "P-2014000004-01"
                      }
                    ]
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict with already created invoice",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "proof-payments-already-linked-to-invoice",
                      "message": "Credit note cannot be created from proof payment with invoice code \"2017000045\".",
                      "instance": "integration-call"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Field cannot be empty string.",
                      "instance": "data.reasonRemark"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Unable to create credit note. Proof payment \"P-2017000024-01\" is in invalid state.",
                      "instance": "data.reasonRemark"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Credit note from proof of payment",
        "operationId": "createCreditNoteFromProofOfPayment",
        "description": "Creating credit note from existing proof of payment.\n\nIt will create a credit note from the given proof of payment. It will\nautomatically take all proof of payment items and add them to the credit\nnote.",
        "tags": [
          "Credit notes",
          "Proof payments"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "Proof of payment code",
            "required": true,
            "example": "P-2014000004-01",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "creditNoteCode": {
                        "type": "string",
                        "description": "Credit note code. Optional, generated by eshop settings if not set.",
                        "examples": [
                          "0000000099"
                        ]
                      },
                      "varSymbol": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 9999999999,
                        "description": "Variable symbol. Optional, generated by eshop settings if not set.",
                        "examples": [
                          99
                        ]
                      },
                      "dueDate": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "Due date. Optional, generated by eshop settings if not set."
                      },
                      "taxDate": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "Date of taxation. Optional, default is today."
                      },
                      "constSymbol": {
                        "$ref": "#/components/schemas/typeConstSymbol",
                        "description": "Constant symbol. Optional"
                      },
                      "specSymbol": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 9999999999,
                        "description": "Specific symbol. Optional",
                        "examples": [
                          201323134
                        ]
                      },
                      "billingMethodId": {
                        "type": "integer",
                        "description": "Billing method identifier - see also [Invoice billing methods](#section/code-lists/invoice-billing-methods) code list. Optional.",
                        "examples": [
                          1
                        ]
                      },
                      "orderCode": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 10,
                        "description": "Order Code. Optional, defaults to proof payment's order code if not set.",
                        "examples": [
                          "201323134"
                        ]
                      },
                      "reasonRemark": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "Reason for credit note; default reason can be applied if not send.",
                        "examples": [
                          "Order cancellation"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/credit-notes/{code}/item": {
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "creditNote"
                      ],
                      "properties": {
                        "creditNote": {
                          "$ref": "#/components/schemas/creditNote"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Creation of credit note item",
        "operationId": "createCreditNoteItem",
        "description": "Creates a new credit note item to an existing credit note.",
        "tags": [
          "Credit notes"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "credit note code (number)",
            "required": true,
            "example": "2018000012",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "required": [
                      "itemType",
                      "name",
                      "amount"
                    ],
                    "properties": {
                      "itemType": {
                        "type": "string",
                        "minLength": 1,
                        "description": "item type, required (allowed `product` or `product-set` only)",
                        "examples": [
                          "product"
                        ]
                      },
                      "code": {
                        "type": "string",
                        "examples": [
                          "2018000012"
                        ]
                      },
                      "amount": {
                        "$ref": "#/components/schemas/typeAmountNullable",
                        "description": "name of item, required"
                      },
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "name of item, required",
                        "examples": [
                          "Item name"
                        ]
                      },
                      "variantName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "name of variant (can be `null`)",
                        "examples": [
                          "white"
                        ]
                      },
                      "amountUnit": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "unit of amount (`kg`, `ks`) (can be `null`)",
                        "examples": [
                          "kg"
                        ]
                      },
                      "price": {
                        "type": "string",
                        "description": "price of item, 2 decimal places accuracy (can be `null`), default value `0.00`",
                        "examples": [
                          "100.00"
                        ]
                      },
                      "priceRatio": {
                        "$ref": "#/components/schemas/typePriceRatio",
                        "description": "price ratio of item, required"
                      },
                      "includingVat": {
                        "type": "boolean",
                        "description": "default value is false; whether the credit note item price is saved with VAT or without",
                        "examples": [
                          true
                        ]
                      },
                      "vatRate": {
                        "$ref": "#/components/schemas/typeVatRate",
                        "description": "VAT rate in percent"
                      },
                      "weight": {
                        "$ref": "#/components/schemas/typeWeightRequest",
                        "description": "weight of the item, 3 decimal places accuracy (can be `null`)"
                      },
                      "remark": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "item note (can be `null`)",
                        "examples": [
                          "item note"
                        ]
                      },
                      "additionalField": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "field for additional info (can be `null`)",
                        "examples": [
                          "additional info"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/credit-notes/{code}/item/{id}": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "creditNoteItem"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "creditNoteItem": {
                          "$ref": "#/components/schemas/documentItemsWithPrice"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Update of credit note item",
        "operationId": "updateCreditNoteItem",
        "description": "Updates credit note item. It's not possible to change `productType`\nproperty and it's not possible to update credit note item of another\ntype then `product` or `product-set`.",
        "tags": [
          "Credit notes"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "credit note code (number)",
            "required": true,
            "example": "2018000012",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "credit note item id. Can be found in field\n`data.creditNote.items.itemId` in Credit note detail.",
            "required": true,
            "example": 198,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "code": {
                        "type": "string",
                        "examples": [
                          "2018000012"
                        ]
                      },
                      "amount": {
                        "$ref": "#/components/schemas/typeAmountNullable",
                        "description": "amount of item, 3 decimal places accuracy, required. For credit note you will probably use negative amount. (can be `null`)"
                      },
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "name of item (can be `null`)",
                        "examples": [
                          "Item name"
                        ]
                      },
                      "variantName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "name of variant (can be `null`)",
                        "examples": [
                          "white"
                        ]
                      },
                      "amountUnit": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "unit of amount (can be `null`)",
                        "examples": [
                          "kg, ks"
                        ]
                      },
                      "price": {
                        "type": "string",
                        "description": "price of item, 3 decimal places accuracy (can be `null`), default value `0.00`",
                        "examples": [
                          "125.00"
                        ]
                      },
                      "includingVat": {
                        "type": "boolean",
                        "description": "default value is false; whether the credit note item price is saved with VAT or without",
                        "examples": [
                          true
                        ]
                      },
                      "vatRate": {
                        "$ref": "#/components/schemas/typeVatRate",
                        "description": "VAT rate in percent"
                      },
                      "priceRatio": {
                        "$ref": "#/components/schemas/typePriceRatio",
                        "description": "value of discount of price, 4 decimal places accuracy, (from `0.0000` to `1.0000`), e.g. `0.8500` means 85% discount (can be `null`)"
                      },
                      "weight": {
                        "$ref": "#/components/schemas/typeWeightRequest",
                        "description": "weight of the item, 3 decimal places accuracy (can be `null`)"
                      },
                      "remark": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "item note (can be `null`)",
                        "examples": [
                          "Item note"
                        ]
                      },
                      "additionalField": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "field for additional info (can be `null`)",
                        "examples": [
                          "additional info"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Credit note item with ID \"956\" was not found.",
                      "instance": "integration-call"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Deletion of credit note item",
        "operationId": "deleteCreditNoteItem",
        "description": "Deletes credit note item. It's not possible to delete credit note item\nof another type then `product` or `product-set`.",
        "tags": [
          "Credit notes"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "credit note code (number)",
            "required": true,
            "example": "2018000012",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "credit note item id. Can be found in field\n`data.creditNote.items.itemId` in Credit note detail.",
            "required": true,
            "example": 198,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/credit-notes/{code}/pdf": {
      "get": {
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "credit-note-not-found",
                      "message": "Credit note with code \"0000000002\" not found.",
                      "instance": "0000000002"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "document-not-generated",
                      "message": "Error while getting document type \"creditNote\" with code\n\"0000000002\".",
                      "instance": "0000000002"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Download credit note as PDF",
        "operationId": "downloadCreditNotePdf",
        "description": "You can request the credit note as PDF file, response will be as\napplication/octet-stream. You can download pdf documents\n\nonly one-by-one for every e-shop. Parallel requests end with `423\nLocked` error.",
        "tags": [
          "Credit notes"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "0000000002",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/credit-notes/{code}/isdoc": {
      "get": {
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "credit-note-not-found",
                      "message": "Credit note with code \"0000000002\" not found.",
                      "instance": "0000000002"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "document-not-generated",
                      "message": "Error while getting document type \"creditNote\" with code\n\"0000000002\".",
                      "instance": "0000000002"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Download credit note as ISDOC",
        "operationId": "downloadCreditNoteAsIsdoc",
        "description": "You can request the credit note as ISDOC file, response will be as\napplication/octet-stream. You can download the documents\nonly one-by-one for every e-shop. Parallel requests end with `423\nLocked` error.",
        "tags": [
          "Credit notes"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "0000000002",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/credit-notes/changes": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "changes",
                        "paginator"
                      ],
                      "properties": {
                        "changes": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "changeTime",
                              "changeType"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "identifier (number) of the document, which can be used to query about the details.",
                                "examples": [
                                  "201800014"
                                ]
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time when the event happened. ISO 8601 format (`2017-12-12T22:08:01+0100`)."
                              },
                              "changeType": {
                                "type": "string",
                                "description": "type of event that happened with the document. Possible values are following: `add`, `edit`, `delete`.",
                                "examples": [
                                  "edit"
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Last credit note changes",
        "operationId": "getLastCreditNoteChanges",
        "description": "Returns the list of credit notes, which were changed. The Endpoint is intended to determine\nthe changes after you have loaded the list of credit notes and you need to know the changes. \nThe guaranteed history of changes is 30 days.\n\n\nEach credit note is only given in the listing with its last change. For example, if the credit note was \nmodified and then deleted, the listing will only show information about its deletion.\n\n\nCan be filtered by changeType = edit/delete parameter.\n\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed \nlike `edit` action.\n\n\nEndpoint supports [Paging](#section/basic-principles/paging).",
        "tags": [
          "Credit notes"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "DateTime from which up to the present we are interested in the changes. + in the time zone",
            "required": true,
            "example": "2018-01-01T01:01:01+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeType",
            "in": "query",
            "description": "Returning only edit or delete type changed records",
            "required": false,
            "example": "edit",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultItemsPerPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/delivery-notes": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "deliveryNotes",
                        "paginator"
                      ],
                      "properties": {
                        "deliveryNotes": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "orderCode",
                              "creationTime",
                              "isValid",
                              "billCompany",
                              "billFullName"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "variant code (product)",
                                "examples": [
                                  "00000018"
                                ]
                              },
                              "isValid": {
                                "type": "boolean",
                                "description": "Is the delivery note valid?",
                                "examples": [
                                  true
                                ]
                              },
                              "orderCode": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "purchase order number. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
                                "examples": [
                                  "2017000090"
                                ]
                              },
                              "creationTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date of issue, in ISO 8601 format"
                              },
                              "billCompany": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "name of the company",
                                "examples": [
                                  "John Doe Corp."
                                ]
                              },
                              "billFullName": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "name and surname",
                                "examples": [
                                  "John Doe"
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of delivery notes",
        "operationId": "getListOfDeliveryNotes",
        "description": "The list of delivery notes supports the [Paging](#section/basic-principles/paging).",
        "tags": [
          "Delivery notes"
        ],
        "parameters": [
          {
            "name": "isValid",
            "in": "query",
            "description": "sorting according to document validity",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "orderCode",
            "in": "query",
            "description": "sorting according to number of order",
            "example": 2018000012,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 20. Max value is 100.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/delivery-notes/snapshot": {
      "get": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": {
                    "jobId": "ad24xod"
                  },
                  "errors": [
                    {
                      "errorCode": "example-error-code",
                      "message": "Example error message",
                      "instance": "instance"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "List of all delivery notes",
        "operationId": "getListOfAllDeliveryNotes",
        "description": "Using this endpoint, you can get list of all delivery notes with detailed info of each delivery note  (like in Delivery note detail endpoint) asynchronously. \n\n\nSee how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each delivery note taking one line of output file.\n\n\nOne delivery note in response has the same format as delivery note detail response. See [Delivery note snapshot schema](/shoptet-api/openapi/snapshot/deliverynotesnapshot) for more details.",
        "tags": [
          "Delivery notes"
        ],
        "parameters": [
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "Export delivery notes created after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "Export delivery notes created before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeFrom",
            "in": "query",
            "description": "Export delivery notes updated after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeTo",
            "in": "query",
            "description": "Export delivery notes updated before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codeFrom",
            "in": "query",
            "description": "Export delivery notes with code after given value",
            "example": "0000000006",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codeTo",
            "in": "query",
            "description": "Export delivery notes with code befor given value",
            "example": "0000000006",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderCodeFrom",
            "in": "query",
            "description": "Export delivery notes with order code after given value",
            "example": "2017000010",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderCodeTo",
            "in": "query",
            "description": "Export delivery notes with order code before given value",
            "example": "2017000010",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerGuid",
            "in": "query",
            "description": "Export delivery notes with given customer",
            "example": "443cad54-73bc-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isValid",
            "in": "query",
            "description": "Filtering according to document validity",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-snapshot-endpoint": true,
        "x-shoptet-response-ref": "#/definitions/deliveryNoteSnapshot"
      }
    },
    "/api/delivery-notes/{code}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "deliveryNote"
                      ],
                      "properties": {
                        "deliveryNote": {
                          "$ref": "#/components/schemas/deliveryNote"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "delivery-note-not-found",
                      "message": "Delivery note with code \"000000000633\" not found.",
                      "instance": "000000000633"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Detail of delivery note",
        "operationId": "getDetailOfDeliveryNote",
        "description": "Additional information about one delivery note.\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see\n[Section on demand](#section/basic-principles/section-on-demand)).\n\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters",
        "tags": [
          "Delivery notes"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "0000000003",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Optional parts of response",
            "example": "surchargeParameters",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/delivery-notes/{code}/pdf": {
      "get": {
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "delivery-note-not-found",
                      "message": "Delivery note with code \"0000000001\" not found.",
                      "instance": "0000000001"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "document-not-generated",
                      "message": "Error while getting document type \"deliveryNote\" with code\n\"0000000001\".",
                      "instance": "0000000001"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Download delivery note as PDF",
        "operationId": "downloadDeliveryNoteAsPdf",
        "description": "You can request the delivery note as PDF file, response will be as\napplication/octet-stream. You can download pdf documents\n\nonly one-by-one for every e-shop. Parallel requests end with `423\nLocked` error.",
        "tags": [
          "Delivery notes"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "",
            "required": true,
            "example": "0000000001",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/export/{type}/{format}": {
      "get": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "General document export",
        "operationId": "generalDocumentDownload",
        "description": "You can request documents of several types in several formats in combination with settings as includes.\nSee tables bellow for possibilities and settings. Export is processed asynchronously. \nSee how [Asynchronous\nrequests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\n\n|Document type       | Document format          | Parameters         | Includes\n-------------------- | ------------------------ | ------------------ | ---------------------------------\n|invoice             | csvDetail                | codeFrom           | exportWithHistoricalVat          \n|                    | xlsDetail                | codeTo             | exportAsForeignCurrency      \n|                    | pdf                      | dateFrom           | linkProformaInvoices        \n|                    | isdoc                    | dateTo             | descOrder                   \n|                    | xmlPohodaCz              | taxDateFrom        |                             \n|                    | xmlPohodaSk              | taxDateTo          |                             \n|                    | xmlMoneyS3CZ             | currency           |                             \n|                    | xmlMoneyS3Sk             |                    |                             \n|                    | xlsxSummary              |                    |                             \n|                    | csvSummary               |                    |         \n|proformaInvoice     | csvDetail                | codeFrom           | exportWithHistoricalVat     \n|                    | xlsDetail                | codeTo             | exportAsForeignCurrency     \n|                    | pdf                      | dateFrom           |                             \n|                    | xmlPohodaCz              | dateTo             |                             \n|                    | xmlPohodaSk              | taxDateFrom        |                            \n|                    | xmlMoneyS3CZ             | taxDateTo          |                            \n|                    | xmlMoneyS3Sk             | currency           |                            \n|                    | xlsxSummary              |                   |                             \n|                    | csvSummary               |                   |         \n|creditNote          | csvDetail                | codeFrom           | exportWithHistoricalVat    \n|                    | xlsDetail                | codeTo             | exportAsForeignCurrency    \n|                    | pdf                      | dateFrom           |                            \n|                    | isdoc                    | dateTo             |                            \n|                    | xmlPohodaCz              | taxDateFrom        |                            \n|                    | xmlPohodaSk              | taxDateTo          |                            \n|                    | xmlMoneyS3CZ             | currency           |                            \n|                    | xmlMoneyS3Sk             |                    |                            \n|                    | xlsxSummary              |                    |                            \n|                    | csvSummary               |                    |        \n|proofPayment        | xmlPohodaCz              | codeFrom           | exportWithHistoricalVat    \n|                    | xmlPohodaSk              | codeTo             | exportAsForeignCurrency    \n|                    | csvDetail                | dateFrom           | onlyClosedProofPayments    \n|                    | xlsDetail                | dateTo             |                            \n|                    | pdf                      | taxDateFrom        |                            \n|                    |                         | taxDateTo           |                            \n|                    |                         | currency            |      \n|deliveryNote        | csvDetail                | codeFrom           |                            \n|                    | xlsDetail                | codeTo             |                            \n|                    | pdf                      | dateFrom           |                            \n|                    |                          | dateTo             |                            \n|                    |                          | taxDateFrom        |                            \n|                    |                          | taxDateTo          |                                 \n\n\n|Include | Does\n|------- | -----\n|exportWithHistoricalVat | Will export historical rates.\n|exportAsForeignCurrency | Currency will be exported as foreign regardless of e-shop settings.\n|linkProformaInvoices | Corresponding proforma invoices will be added to export file.\n|onlyClosedProofPayments | Exports only finished documents.\n|descOrder | Sort as starting from oldest",
        "tags": [
          "Exports"
        ],
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "description": "See tables for all document types",
            "required": true,
            "example": "proofPayment",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "path",
            "description": "See tables for all document formats",
            "required": true,
            "example": "xmlPohodaCz",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "description": "Mandatory except for Delivery notes",
            "example": "czk",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codeFrom",
            "in": "query",
            "description": "",
            "example": "2018000004",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codeTo",
            "in": "query",
            "description": "",
            "example": "2018000006",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateFrom",
            "in": "query",
            "description": "",
            "example": "2022-12-12T22:08:01+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "",
            "example": "2023-12-12T22:08:01+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taxDateFrom",
            "in": "query",
            "description": "",
            "example": "2022-12-12T22:08:01+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taxDateTo",
            "in": "query",
            "description": "",
            "example": "2023-12-12T22:08:01+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Sections to include",
            "example": "exportWithHistoricalVat, exportAsForeignCurrency, linkProformaInvoices, onlyClosedProofPayments, descOrder",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-async-endpoint": true
      }
    },
    "/api/sales-channels/{guid}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "salesChannel",
                        "onlineStore",
                        "inStore",
                        "marketplace"
                      ],
                      "properties": {
                        "salesChannel": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "id",
                            "guid",
                            "name",
                            "type",
                            "currencies",
                            "languages",
                            "createdAt",
                            "updatedAt"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "Sales channel ID.",
                              "examples": [
                                1
                              ]
                            },
                            "guid": {
                              "$ref": "#/components/schemas/typeGuid",
                              "description": "Sales channel GUID."
                            },
                            "name": {
                              "type": "string",
                              "description": "Sales channel name.",
                              "examples": [
                                "My sales channel"
                              ]
                            },
                            "type": {
                              "enum": [
                                "in_store",
                                "online_store",
                                "marketplace",
                                "system"
                              ],
                              "description": "Type of sales channel.",
                              "examples": [
                                "in_store"
                              ]
                            },
                            "defaultCurrency": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Sales chanel default currency.",
                              "examples": [
                                "CZK"
                              ]
                            },
                            "currencies": {
                              "type": "array",
                              "items": {
                                "$ref": "#/components/schemas/typeCurrency"
                              },
                              "description": "Currencies collection."
                            },
                            "defaultLanguage": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Sales chanel default language.",
                              "examples": [
                                "cs"
                              ]
                            },
                            "languages": {
                              "type": "array",
                              "items": {
                                "$ref": "#/components/schemas/typeLanguage"
                              },
                              "description": "Languages collection."
                            },
                            "createdAt": {
                              "$ref": "#/components/schemas/typeDateTime"
                            },
                            "updatedAt": {
                              "$ref": "#/components/schemas/typeDateTimeNullable"
                            }
                          }
                        },
                        "onlineStore": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "additionalProperties": false,
                          "required": [
                            "id",
                            "status",
                            "isPasswordProtected",
                            "isPrimary"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "Online store identifier.",
                              "examples": [
                                1
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "Name of online store.",
                              "examples": [
                                "Czech republic"
                              ]
                            },
                            "status": {
                              "type": "string",
                              "description": "Online store status",
                              "enum": [
                                "active",
                                "pending"
                              ],
                              "examples": [
                                "active"
                              ]
                            },
                            "domain": {
                              "type": [
                                "string"
                              ],
                              "description": "Online store domain.",
                              "examples": [
                                "store.example.com"
                              ]
                            },
                            "domainSetupMethod": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Online store domain setup method.",
                              "examples": [
                                "unresolved"
                              ]
                            },
                            "addressFormat": {
                              "type": "string",
                              "description": "Address format of online store.",
                              "examples": [
                                "INTERNAL_PROJECT_CZ"
                              ]
                            },
                            "timezone": {
                              "type": "string",
                              "description": "Timezone of online store.",
                              "examples": [
                                "Europe/Prague"
                              ]
                            },
                            "defaultCountry": {
                              "$ref": "#/components/schemas/onlineStoreCountry",
                              "description": "Default country of online store."
                            },
                            "countries": {
                              "type": "array",
                              "description": "Countries of online store.",
                              "items": {
                                "$ref": "#/components/schemas/onlineStoreCountry"
                              }
                            },
                            "isPasswordProtected": {
                              "type": "boolean",
                              "description": "Whether the online store is protected by password.",
                              "examples": [
                                false
                              ]
                            },
                            "isPrimary": {
                              "type": "boolean",
                              "description": "Whether the online store is primary.",
                              "examples": [
                                true
                              ]
                            },
                            "design": {
                              "$ref": "#/components/schemas/onlineStoreDesign",
                              "description": "Online store design."
                            }
                          }
                        },
                        "inStore": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "required": [
                            "id",
                            "guid",
                            "address",
                            "contact",
                            "categoryId"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "In-store identifier.",
                              "examples": [
                                1
                              ]
                            },
                            "guid": {
                              "type": "string",
                              "description": "In-store GUID.",
                              "examples": [
                                "550e8400-e29b-41d4-a716-446655440000"
                              ]
                            },
                            "address": {
                              "oneOf": [
                                {
                                  "$ref": "#/components/schemas/inStoreAddress"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "In-store address (can be null)."
                            },
                            "contact": {
                              "$ref": "#/components/schemas/inStoreContact",
                              "description": "In store contact information."
                            },
                            "categoryId": {
                              "type": "integer",
                              "description": "Project category identifier.",
                              "examples": [
                                2
                              ]
                            }
                          }
                        },
                        "marketplace": {
                          "type": [
                            "object",
                            "null"
                          ]
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Module \"Sales channel\" is not active.",
                      "instance": "salesChannel"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "sales-channel-not-found",
                      "message": "Sales channel with guid \"0199bdfd-0979-71fb-85ce-e483c61d391a\" not found.",
                      "instance": "0199bdfd-0979-71fb-85ce-e483c61d391a"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Sales channel detail",
        "operationId": "getSalesChannelsDetail",
        "description": "Information about the detail of the sales channels. Module `Sales Channel` is required.",
        "tags": [
          "Sales channels"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Sales channel GUID",
            "required": true,
            "example": "0199bdfd-0979-71fb-85ce-e483c61d391a",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/sales-channels/id/{id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "salesChannel",
                        "onlineStore",
                        "inStore",
                        "marketplace"
                      ],
                      "properties": {
                        "salesChannel": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "id",
                            "guid",
                            "name",
                            "type",
                            "currencies",
                            "languages",
                            "createdAt",
                            "updatedAt"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "Sales channel ID.",
                              "examples": [
                                1
                              ]
                            },
                            "guid": {
                              "$ref": "#/components/schemas/typeGuid",
                              "description": "Sales channel GUID."
                            },
                            "name": {
                              "type": "string",
                              "description": "Sales channel name.",
                              "examples": [
                                "My sales channel"
                              ]
                            },
                            "type": {
                              "enum": [
                                "in_store",
                                "online_store",
                                "marketplace",
                                "system"
                              ],
                              "description": "Type of sales channel.",
                              "examples": [
                                "in_store"
                              ]
                            },
                            "defaultCurrency": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Sales chanel default currency.",
                              "examples": [
                                "CZK"
                              ]
                            },
                            "currencies": {
                              "type": "array",
                              "items": {
                                "$ref": "#/components/schemas/typeCurrency"
                              },
                              "description": "Currencies collection."
                            },
                            "defaultLanguage": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Sales chanel default language.",
                              "examples": [
                                "cs"
                              ]
                            },
                            "languages": {
                              "type": "array",
                              "items": {
                                "$ref": "#/components/schemas/typeLanguage"
                              },
                              "description": "Languages collection."
                            },
                            "createdAt": {
                              "$ref": "#/components/schemas/typeDateTime"
                            },
                            "updatedAt": {
                              "$ref": "#/components/schemas/typeDateTimeNullable"
                            }
                          }
                        },
                        "onlineStore": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "additionalProperties": false,
                          "required": [
                            "id",
                            "status",
                            "isPasswordProtected",
                            "isPrimary"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "Online store identifier.",
                              "examples": [
                                1
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "Name of online store.",
                              "examples": [
                                "Czech republic"
                              ]
                            },
                            "status": {
                              "type": "string",
                              "description": "Online store status",
                              "enum": [
                                "active",
                                "pending"
                              ],
                              "examples": [
                                "active"
                              ]
                            },
                            "domain": {
                              "type": [
                                "string"
                              ],
                              "description": "Online store domain.",
                              "examples": [
                                "store.example.com"
                              ]
                            },
                            "domainSetupMethod": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Online store domain setup method.",
                              "examples": [
                                "unresolved"
                              ]
                            },
                            "addressFormat": {
                              "type": "string",
                              "description": "Address format of online store.",
                              "examples": [
                                "INTERNAL_PROJECT_CZ"
                              ]
                            },
                            "timezone": {
                              "type": "string",
                              "description": "Timezone of online store.",
                              "examples": [
                                "Europe/Prague"
                              ]
                            },
                            "defaultCountry": {
                              "$ref": "#/components/schemas/onlineStoreCountry",
                              "description": "Default country of online store."
                            },
                            "countries": {
                              "type": "array",
                              "description": "Countries of online store.",
                              "items": {
                                "$ref": "#/components/schemas/onlineStoreCountry"
                              }
                            },
                            "isPasswordProtected": {
                              "type": "boolean",
                              "description": "Whether the online store is protected by password.",
                              "examples": [
                                false
                              ]
                            },
                            "isPrimary": {
                              "type": "boolean",
                              "description": "Whether the online store is primary.",
                              "examples": [
                                true
                              ]
                            },
                            "design": {
                              "$ref": "#/components/schemas/onlineStoreDesign",
                              "description": "Online store design."
                            }
                          }
                        },
                        "inStore": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "required": [
                            "id",
                            "guid",
                            "address",
                            "contact",
                            "categoryId"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "In-store identifier.",
                              "examples": [
                                1
                              ]
                            },
                            "guid": {
                              "type": "string",
                              "description": "In-store GUID.",
                              "examples": [
                                "550e8400-e29b-41d4-a716-446655440000"
                              ]
                            },
                            "address": {
                              "oneOf": [
                                {
                                  "$ref": "#/components/schemas/inStoreAddress"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "In-store address (can be null)."
                            },
                            "contact": {
                              "$ref": "#/components/schemas/inStoreContact",
                              "description": "In store contact information."
                            },
                            "categoryId": {
                              "type": "integer",
                              "description": "Project category identifier.",
                              "examples": [
                                2
                              ]
                            }
                          }
                        },
                        "marketplace": {
                          "type": [
                            "object",
                            "null"
                          ]
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Module \"Sales channel\" is not active.",
                      "instance": "salesChannel"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "sales-channel-not-found",
                      "message": "Sales channel with id \"2\" not found.",
                      "instance": "2"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Sales channel detail by ID",
        "operationId": "getSalesChannelsDetailById",
        "description": "Information about the detail of the sales channels. Module `Sales Channel` is required.",
        "tags": [
          "Sales channels"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Sales channel ID",
            "required": true,
            "example": 2,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/stocks": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "stocks",
                        "defaultStockId"
                      ],
                      "properties": {
                        "stocks": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/stockList"
                          }
                        },
                        "defaultStockId": {
                          "type": "integer"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of stocks",
        "operationId": "getListOfStocks",
        "description": "Returns the list of stocks. There are usually not many stocks, therefore the endpoint returns all of them without [Paging](#section/basic-principles/paging).",
        "tags": [
          "Stocks"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/stocks/{stockId}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "stock"
                      ],
                      "properties": {
                        "stock": {
                          "$ref": "#/components/schemas/stock"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Stock detail",
        "operationId": "getStockDetail",
        "description": "Returns detailed information about one stock.",
        "tags": [
          "Stocks"
        ],
        "parameters": [
          {
            "name": "stockId",
            "in": "path",
            "description": "",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/stocks/{stockId}/movements": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "movements",
                        "paginator"
                      ],
                      "properties": {
                        "movements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "id",
                              "productCode",
                              "actualAmount",
                              "amountChange",
                              "changedBy",
                              "changeTime"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Synthetic unique incremental ID of log with changes in stock",
                                "examples": [
                                  "126222"
                                ]
                              },
                              "productCode": {
                                "type": "string",
                                "description": "unique identification of the product variant.",
                                "examples": [
                                  "26/BIL"
                                ]
                              },
                              "actualAmount": {
                                "$ref": "#/components/schemas/typeAmountNullable",
                                "description": "Current quantity in stock after carrying out the change, as a decimal with three decimal places.",
                                "examples": [
                                  "21.505"
                                ]
                              },
                              "amountChange": {
                                "$ref": "#/components/schemas/typeAmountNullable",
                                "description": "Change in stock quantity, as a decimal with three decimal places.",
                                "examples": [
                                  "0.505"
                                ]
                              },
                              "changedBy": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Can have the following values: \n - `admin` if the change was invoked by the e-shop administrator \n - `customer` if the change was invoked by the e-shop customer \n - e-mail or `null` for all other cases. \n Upon a change invoked by a REST API request, the form of the e-mail is generated as per template `api.service-{service-id}@{e-shop-domain}.",
                                "examples": [
                                  "novak@shoptet.cz"
                                ]
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "DateTime of product stock movement."
                              },
                              "orderCode": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Code of order which initiated stock movement, present only with `orderCode` include flag",
                                "examples": [
                                  "2017000049"
                                ]
                              },
                              "productGuid": {
                                "description": "Product GUID, can be null for specific reasons, please see endpoint description for more information.",
                                "oneOf": [
                                  {
                                    "$ref": "#/components/schemas/typeGuidUnlimited"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "historicalProductGuid": {
                                "description": "Product GUID at the time of the stock movement, can be null for specific reasons and has no current relation to returned `code`, please see endpoint description for more information.",
                                "oneOf": [
                                  {
                                    "$ref": "#/components/schemas/typeGuidUnlimited"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "sumAmount": {
                                "$ref": "#/components/schemas/typeAmountNullable",
                                "description": "Sum of all stocks for the product in time after amount change was executed.",
                                "examples": [
                                  "30.505"
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Stock movements",
        "operationId": "getStockMovements",
        "description": "It returns the list of changes in product quantity, which were done\nwithin one stock. Supports the [Paging](#section/basic-principles/paging) `movements`.\n\nThis endpoint supports optional parts using the `include` parameter (see\n[Section on demand](#section/basic-principles/section-on-demand)). Please note that there is some\nperformance penalty associated with the usage of \"orderCode\" `include`\nand/or query `parameter`.\nAlso please note that when include `productGuid` is used, the returned data can be `null` for specific cases. Either when this is a historic stock move, or the product code has been changed and/or is inconsistent with internally stored `guid`. This is to ensure that the returned `code` and `productGuid` always point to the same product consistently.\nTo return GUID of product at the time of the stock movement, please use the include and attribute `historicalProductGuid`. The returned data can still be null on historic stock movements.",
        "tags": [
          "Stocks"
        ],
        "parameters": [
          {
            "name": "stockId",
            "in": "path",
            "description": "ID of stock for which we would like the movements.",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "lastId",
            "in": "query",
            "description": "ID of last transfered record. If missing, the older records are\nsent.",
            "example": 45,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "changeTimeFrom",
            "in": "query",
            "description": "Date of move, in ISO 8601 format, lower limit. It is not possible to\nuse it as break poit, it is not unique value. Optional.",
            "example": "2021-03-01T00:00:00+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderCode",
            "in": "query",
            "description": "Filtering according to order code.",
            "example": "2017000049",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Optional parts of response. For specific include behavior, please see the general description above.",
            "example": "orderCode,productGuid,historicalProductGuid,sumAmount",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 25. Max value is 1000.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "errors": [
                    {
                      "errorCode": "unknown-product",
                      "message": "Product \"001-non-exists\" does not exist. Skipped.",
                      "instance": "001-non-exist"
                    },
                    {
                      "errorCode": "unknown-product",
                      "message": "Product \"002-non-exists\" does not exist. Skipped.",
                      "instance": "002-non-exist"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "examples": {
                  "example1": {
                    "value": {
                      "data": null,
                      "errors": [
                        {
                          "errorCode": "unknown-product",
                          "message": "Product \"82\" does not exist. Skipped.",
                          "instance": "82"
                        }
                      ]
                    }
                  },
                  "example2": {
                    "value": {
                      "data": null,
                      "errors": [
                        {
                          "errorCode": "stock-change-not-allowed",
                          "message": "Stock change not allowed for product set \"82\".\nSkipped.",
                          "instance": "82"
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Update quantity in stock",
        "operationId": "updateQuantityInStock",
        "description": "Endpoint enables the quantity of product in stock (relative and\nabsolute) to be changed. Within a call, the update\n\nof multiple products at once can be requested (max. 300\nproducts/variants).\n\n\nIn case an error occurs for one of the records, the correct records will\nbe updated, the response will be `200 OK`\n\nand there will be records in the `errors` array for each failed record.\nIf all records are incorrect, the response\n\ncode will be `400 BAD REQUEST` instead.\n\n\nItem `productCode` is mandatory. Then one of the three items has to be\nprovided:\n\n\n- `amountChange` to increase or decrease amount available for\nordering/physically on stock (relative change)\n\n\n- `quantity` to set amount available for ordering (absolute amount)\n\n\n- `realStock` to set amount physically stored in a warehouse (absolute\namount)\n\n\nThe difference between `quantity` and `realStock` is amount of goods\nrequested by the pending orders (so called \"claim\").\n\n\n`amount for ordering` = `realStock` - `claim`\n\n\nThe claim cannot be changed explicitly, it is updated when a new order\nis submitted or an order is sent out. Please note,\n\nthat the stock amount cannot be changed for product sets, where the\namount is calculated dynamically from the individual\n\nproducts in the set. Trying to change the amount of product set will\nresult in an error.",
        "tags": [
          "Stocks"
        ],
        "parameters": [
          {
            "name": "stockId",
            "in": "path",
            "description": "ID of the stock for which we would like the movements.",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "oneOf": [
                        {
                          "required": [
                            "productCode",
                            "amountChange"
                          ],
                          "additionalProperties": false,
                          "properties": {
                            "productCode": {
                              "type": "string",
                              "examples": [
                                "43/BIL"
                              ]
                            },
                            "amountChange": {
                              "type": "number",
                              "examples": [
                                10
                              ]
                            }
                          }
                        },
                        {
                          "required": [
                            "productCode",
                            "quantity"
                          ],
                          "additionalProperties": false,
                          "properties": {
                            "productCode": {
                              "type": "string",
                              "examples": [
                                "106/BIL"
                              ]
                            },
                            "quantity": {
                              "type": "number",
                              "examples": [
                                10
                              ]
                            }
                          }
                        },
                        {
                          "required": [
                            "productCode",
                            "realStock"
                          ],
                          "additionalProperties": false,
                          "properties": {
                            "productCode": {
                              "type": "string",
                              "examples": [
                                "106/BIL"
                              ]
                            },
                            "realStock": {
                              "type": "number",
                              "examples": [
                                10
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/stocks/{stockId}/movements/last": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "lastId",
                        "lastChangeTime"
                      ],
                      "properties": {
                        "lastId": {
                          "type": "integer",
                          "description": "Synthetic unique incremental ID of log with changes in stock",
                          "examples": [
                            "736"
                          ]
                        },
                        "lastChangeTime": {
                          "$ref": "#/components/schemas/typeDateTime",
                          "description": "DateTime stock movement."
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Stock movements - Last move",
        "operationId": "getStockMovementsLastMove",
        "description": "It returns informations about last stock move.",
        "tags": [
          "Stocks"
        ],
        "parameters": [
          {
            "name": "stockId",
            "in": "path",
            "description": "ID of stock for which we would like the movements.",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/stocks/{stockId}/supplies": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "supplies",
                        "paginator"
                      ],
                      "properties": {
                        "supplies": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "productGuid",
                              "code",
                              "amount",
                              "claim"
                            ],
                            "properties": {
                              "productGuid": {
                                "$ref": "#/components/schemas/typeGuidUnlimited",
                                "description": "global unique permanent product identifier"
                              },
                              "code": {
                                "type": "string",
                                "description": "unique identification of the product variant.",
                                "examples": [
                                  "26/BIL"
                                ]
                              },
                              "amount": {
                                "$ref": "#/components/schemas/typeAmountNullable",
                                "description": "current quantity in stock.",
                                "examples": [
                                  "50"
                                ]
                              },
                              "claim": {
                                "$ref": "#/components/schemas/typeAmountNullable",
                                "description": "requirements on stock quantity.",
                                "examples": [
                                  "5"
                                ]
                              },
                              "location": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "stock position.",
                                "examples": [
                                  "A1"
                                ]
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time of last change of stock quantity (ISO 8601 format)."
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Product supplies in stock",
        "operationId": "getProductSuppliesInStock",
        "description": "Returns the product supplies in stock for all products in a specific stock, contains GUID, code and quantity \nin stock for a specific product variant. It is possible to filter the specific GUID of a product, possibly a variant code. The endpoint supports [Paging](#section/basic-principles/paging), in case of filtering, the amount of items per page increases.\nThis endpoint supports optional parts using the `include` parameter (see [Section on demand](#section/basic-principles/section-on-demand)). The `changeTime` item \nis always temporarily returned, however as of 16. 3. 2019 only upon using the `include` parameter.\n\n\nIf you defined the `include=changeTime` parameter within the URL, the response will also contain the time\nwhen the last quantity in stock was changed.",
        "tags": [
          "Stocks"
        ],
        "parameters": [
          {
            "name": "stockId",
            "in": "path",
            "description": "",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "productGuid",
            "in": "query",
            "description": "",
            "example": "0023368f-d97b-11e0-b04f-57a43310b768",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "code",
            "in": "query",
            "description": "",
            "example": "26/BIL",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "onlyWithClaim",
            "in": "query",
            "description": "whether only products with claim greater than 0 should be returned.\nDefaults to `false`",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "changedFrom",
            "in": "query",
            "description": "return only product supplies, which amount has been changed since date value of this parameter.\n\n                             \nIt support maximum of 30 days in history. (optional, string). ISO 8601 format (\"2017-12-12T22:08:01+0100\"). Optional.\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 1000.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/suppliers": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "suppliers",
                        "paginator"
                      ],
                      "properties": {
                        "suppliers": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/supplier"
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of suppliers",
        "operationId": "getListOfSuppliers",
        "description": "Returns the list of suppliers. Supports the [Paging](#section/basic-principles/paging)",
        "tags": [
          "Suppliers"
        ],
        "parameters": [
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 200. Max value is 500.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/brands": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "brands",
                        "paginator"
                      ],
                      "properties": {
                        "brands": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/brand"
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of brands",
        "operationId": "getListofBrands",
        "description": "Returns the list of brands. Supports the [Paging](#section/basic-principles/paging)",
        "tags": [
          "Brands"
        ],
        "parameters": [
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 500. Max value is 1000.",
            "example": 888,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/brand"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Creation of brand",
        "operationId": "createBrand",
        "description": "",
        "tags": [
          "Brands"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/brandCreate"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/brands/{code}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/brand"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "brand-not-found",
                      "message": "Brand \"1e3f3f3f-3f3f-63ca-b93f-02423f1f0005\" not found.",
                      "instance": "1e3f3f3f-3f3f-63ca-b93f-02423f1f0005"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Detail of brand",
        "operationId": "getDetailOfBrand",
        "description": "",
        "tags": [
          "Brands"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "brand GUID",
            "required": true,
            "example": "1e3f3f3f-3f3f-63ca-b93f-02423f1f0005",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/brand"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "brand-not-found",
                      "message": "Brand \"1e3f3f3f-3f3f-63ca-b93f-02423f1f0005\" not found.",
                      "instance": "1e3f3f3f-3f3f-63ca-b93f-02423f1f0005"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Update of brand",
        "operationId": "updateBrand",
        "description": "",
        "tags": [
          "Brands"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "brand GUID",
            "required": true,
            "example": "1e3f3f3f-3f3f-63ca-b93f-02423f1f0005",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200,
                        "description": "Brand name",
                        "examples": [
                          "Willy Wonka"
                        ]
                      },
                      "indexName": {
                        "type": "string",
                        "description": "unique index name of brand",
                        "examples": [
                          "willy-wonka"
                        ]
                      },
                      "brandWeb": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 200,
                        "description": "Brand website",
                        "examples": [
                          "https://willywonka.com"
                        ]
                      },
                      "postalAddress": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 65535,
                        "description": "GPSR, postal address",
                        "examples": [
                          "Chocolate Factory, 1234 Candy Lane, Sweet City, SC 56789"
                        ]
                      },
                      "contactEmail": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 100,
                        "description": "GPSR, contact email",
                        "examples": [
                          "willywonka@shoptet.cz"
                        ]
                      },
                      "europeanResellerPostalAddress": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 65535,
                        "description": "GPSR, european reseller postal address",
                        "examples": [
                          "Chocolate Factory, 1234 Candy Lane, Sweet City, SC 56789"
                        ]
                      },
                      "europeanResellerContactEmail": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 100,
                        "description": "GPSR, reseller contact email",
                        "examples": [
                          "europeanreseller@shoptet.cz"
                        ]
                      },
                      "manufacturingCompanyName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "GPSR, manufacturing company name",
                        "examples": [
                          "Shoptet a.s."
                        ]
                      },
                      "europeanResellerManufacturingCompanyName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "GPSR, Reseller manufacturing company name",
                        "examples": [
                          "Shoptet a.s."
                        ]
                      },
                      "showInCategoriesMenu": {
                        "type": "boolean",
                        "description": "Is this brand shown in categories menu?",
                        "examples": [
                          true
                        ]
                      },
                      "showInBrandList": {
                        "type": "boolean",
                        "description": "Is this brand shown in brand list?",
                        "examples": [
                          true
                        ]
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Description of brand. May contain HTML characters",
                        "examples": [
                          "<p>Brand new chocolate <strong>everyday</strong></p>"
                        ]
                      },
                      "metaTitle": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Meta title of brand",
                        "examples": [
                          "Willy Wonka"
                        ]
                      },
                      "metaDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Meta description of brand",
                        "examples": [
                          "Brand new chocolate everyday"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "brand-not-found",
                      "message": "Brand \"1e3f3f3f-3f3f-63ca-b93f-02423f1f0005\" not found.",
                      "instance": "1e3f3f3f-3f3f-63ca-b93f-02423f1f0005"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "brand-used-by-products",
                      "message": "Brand \"1e3f3f3f-3f3f-63ca-b93f-02423f1f0005\" cannot be\ndeleted, because some products are assigned to it.",
                      "instance": "1e3f3f3f-3f3f-63ca-b93f-02423f1f0005"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Deletion of brand",
        "operationId": "deleteBrand",
        "description": "If the brand cannot be deleted, because it is used by some product, a\n409 code is returned.\n\nOptional parameter `deleteUsed` with `true` value allows deletion of\nbrand used by products.",
        "tags": [
          "Brands"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "brand GUID",
            "required": true,
            "example": "1e3f3f3f-3f3f-63ca-b93f-02423f1f0005",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deleteUsed",
            "in": "query",
            "description": "allows deletion of brand used by products if set to `true`",
            "required": false,
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/brands/batch": {
      "post": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "file-not-found",
                      "message": "File \"https://jsonlines.org/brands.jsonl\" not found.",
                      "instance": "batchFileUrlPath"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "batch-job-already-running",
                      "message": "Concurrent job already running!",
                      "instance": "brands-batch-create"
                    },
                    {
                      "errorCode": "another-import-is-running",
                      "message": "Another import is running. Please try again later.",
                      "instance": "brands-batch-create"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "BATCH creation of brands",
        "operationId": "createBrandBatch",
        "description": "This endpoint allows you to create multiple brands at once. Batch\ncreation is processed asynchronously in same way as for example products\nsnapshot, but it does not have `resultUrl` in response. Instead, you can check\nattribute `log` which contains successfully created brands and errors.\n\n\n\nSee how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on\nour developer's portal.\n\n\n\nFile with data for update must be in JSONL ([jsonlines](https://jsonlines.org/)) format. Each line must contain one\nbrand in JSON format. Maximum size of file is 100MB.\n\n\n\nStructure of JSON row is same as structure of JSON for single brand\ncreation above. See [Brand batch create schema](/shoptet-api/openapi/batch/brandbatchcreate) for more details.\n\n\n\nAsynchronous job process jsonl file row by row and try to validate and\nsave data. If there is any error, row is skipped and error is logged,\nbut it does not stop processing of other rows. In Log, every product is\nidentified by its position in file (starting from 1).",
        "tags": [
          "Brands"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "batchFileUrlPath"
                ],
                "properties": {
                  "batchFileUrlPath": {
                    "type": "string",
                    "description": "Url to batch file with products data. File must be in JSONL format.",
                    "examples": [
                      "https://cdn.myshoptet.com/batch-products-update.jsonl"
                    ]
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-async-endpoint": true
      }
    },
    "/api/customers": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "customers",
                        "paginator"
                      ],
                      "properties": {
                        "customers": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "guid",
                              "creationTime",
                              "billCompany",
                              "billFullName",
                              "changeTime",
                              "adminUrl"
                            ],
                            "properties": {
                              "guid": {
                                "$ref": "#/components/schemas/typeGuidUnlimited",
                                "description": "Customer GUID"
                              },
                              "creationTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "registration date"
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time of last change"
                              },
                              "billCompany": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "name of the company (can be `null`)",
                                "examples": [
                                  "Manak Delicacies"
                                ]
                              },
                              "billFullName": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "full name of the customer (can be `null`)",
                                "examples": [
                                  "George Manak"
                                ]
                              },
                              "adminUrl": {
                                "type": "string",
                                "description": "link to the customer details in administration",
                                "examples": [
                                  "https://www.domena-eshopu.cz/admin/zakaznici-detail?id=16"
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of customers",
        "operationId": "getListOfCustomers",
        "description": "Listing of customers. Supports the [Paging](#section/basic-principles/paging).",
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "description": "filtering as per customer’s e-mails. An accurate match is searched\nfor, regardless of capitalization.",
            "example": "john@example.com",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phone",
            "in": "query",
            "description": "",
            "example": "+420123456789",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 20. Max value is 1000.",
            "example": 888,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "customer"
                      ],
                      "properties": {
                        "customer": {
                          "$ref": "#/components/schemas/customer"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Creation of customer",
        "operationId": "createCustomer",
        "description": "",
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "name": "suppressMandatoryFieldsCheck",
            "in": "query",
            "description": "suppress checking if new customer has filled all mandatory fields\nfrom eshop settings `Settings -> Customers -> Mandatory fields`.\nSuppressing this check can cause worse customer experience in order\nprocess for customers without all mandatory fields! However this can\nbe useful for migration customers from older system without all\nnecessary fields.",
            "example": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          },
          {
            "name": "sendRegistrationEmail",
            "in": "query",
            "description": "If set to true, registration emails are sent to the customer. The\ntype of email depends on the `customerGroup` settings. If the group\nrequires verification, the customer receives an email indicating\nthat the registration is pending administrator approval (typically\nfor the `wholesale` group). Otherwise, the customer receives a\nstandard registration confirmation email.\n\nIf the customer group has email notifications enabled for the \nadministrator, a copy of the email is also sent to them (again,\ntypically for the `wholesale` group).",
            "required": false,
            "example": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "language",
            "in": "query",
            "description": "Specifies the language in which the email should be sent to the\ncustomer, provided that `sendRegistrationEmail = true` and the\n\"Foreign Languages\" module is enabled on the current e-shop.",
            "required": false,
            "example": "cs",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "account"
                    ],
                    "minProperties": 1,
                    "properties": {
                      "remark": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "remark for the customer (can be `null`)",
                        "examples": [
                          "remark"
                        ]
                      },
                      "priceRatio": {
                        "minLength": 1,
                        "$ref": "#/components/schemas/typePriceRatio",
                        "description": "additional discount - 4 decimal places accuracy, (from `0.0000` to `1.0000`), 0.7800 = discount 22%; 1.0000 = no discount"
                      },
                      "birthDate": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "date of birth. In YYYY-MM-DD format.  (can be `null`)",
                        "examples": [
                          "1974-03-14"
                        ]
                      },
                      "disabledOrders": {
                        "type": "boolean",
                        "description": "Ordering disabled? If so, newly created orders will be cancelled automatically.",
                        "examples": [
                          true
                        ]
                      },
                      "customerGroupCode": {
                        "type": "string",
                        "minLength": 1,
                        "description": "customer group code, group must exists if set.",
                        "examples": [
                          "retail"
                        ]
                      },
                      "pricelistId": {
                        "type": "integer",
                        "description": "Price list identifier",
                        "examples": [
                          1
                        ]
                      },
                      "billingAddress": {
                        "$ref": "#/components/schemas/billingAddressCustomer",
                        "description": "billing address"
                      },
                      "account": {
                        "type": "object",
                        "additionalProperties": false,
                        "required": [
                          "email"
                        ],
                        "properties": {
                          "fullName": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 128,
                            "description": "full name (can be `null`)",
                            "examples": [
                              "Jan Novak"
                            ]
                          },
                          "email": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128,
                            "description": "email address",
                            "examples": [
                              "jan.novak@gmail.com"
                            ]
                          },
                          "phone": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 30,
                            "description": "phone number (can be `null`)",
                            "examples": [
                              "420777888999"
                            ]
                          },
                          "authorized": {
                            "type": "boolean",
                            "description": "Is the account authorized? Default: true",
                            "examples": [
                              true
                            ]
                          },
                          "emailVerified": {
                            "type": "boolean",
                            "description": "Is the email verified by eshop owner? Needed for pairing orders created in past. Default: false",
                            "examples": [
                              true
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/customers/snapshot": {
      "get": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "List of all customers",
        "operationId": "getListOfAllCustomers",
        "description": "Using this endpoint, you can get list of all customers with detailed info of each customer (like in Customer Detail endpoint) asynchronously. See how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each customer taking one line of output file.\n\n\nOne customer in response has the same format as customer detail response. See [Customer snapshot schema](/shoptet-api/openapi/snapshot/customersnapshot) for more details.\n\n\nResult file is compressed using GZIP.",
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "Export customers created after date",
            "example": "2014-09-05T00:00:00+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "Export customers created before date",
            "example": "2019-09-05T00:00:00+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeFrom",
            "in": "query",
            "description": "Export customers changed after date",
            "example": "2017-01-01T00:00:00+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeTo",
            "in": "query",
            "description": "Export customers changed before date",
            "example": "2018-12-31T00:00:00+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-snapshot-endpoint": true,
        "x-shoptet-response-ref": "#/definitions/customerSnapshot"
      }
    },
    "/api/customers/{guid}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "customer"
                      ],
                      "properties": {
                        "customer": {
                          "$ref": "#/components/schemas/customer"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "customer-not-found",
                      "message": "Customer with guid \"157e7215-9035-11e4-a769-ac162d8a2454\"\nnot found.",
                      "instance": "157e7215-9035-11e4-a769-ac162d8a2454"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Customer detail",
        "operationId": "getCustomerDetail",
        "description": "Additional information about one customer.",
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "443cad54-73bc-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "customer"
                      ],
                      "properties": {
                        "customer": {
                          "$ref": "#/components/schemas/customer"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Update of customer",
        "operationId": "updateCustomer",
        "description": "",
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "443cad54-73bc-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "remark": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "remark for the customer (can be `null`)",
                        "examples": [
                          "remark"
                        ]
                      },
                      "priceRatio": {
                        "minLength": 1,
                        "$ref": "#/components/schemas/typePriceRatio",
                        "description": "additional discount - 4 decimal places accuracy, (from `0.0000` to `1.0000`), 0.7800 = discount 22%; 1.0000 = no discount"
                      },
                      "birthDate": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "date of birth. In YYYY-MM-DD format.  (can be `null`)",
                        "examples": [
                          "1974-03-14"
                        ]
                      },
                      "disabledOrders": {
                        "type": "boolean",
                        "description": "Ordering disabled? If so, newly created orders will be cancelled automatically.",
                        "examples": [
                          true
                        ]
                      },
                      "customerGroupCode": {
                        "type": "string",
                        "minLength": 1,
                        "description": "customer group code, group must exists if set.",
                        "examples": [
                          "retail"
                        ]
                      },
                      "pricelistId": {
                        "type": "integer",
                        "description": "Price list identifier",
                        "examples": [
                          1
                        ]
                      },
                      "billingAddress": {
                        "$ref": "#/components/schemas/billingAddressCustomer",
                        "description": "billing address"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Deletion of customer",
        "operationId": "deleteCustomer",
        "description": "",
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "747fb32d-73bc-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/customers/{guid}/accounts": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "accounts",
                        "paginator"
                      ],
                      "properties": {
                        "accounts": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "guid",
                              "fullName",
                              "email",
                              "phone",
                              "mainAccount",
                              "authorized",
                              "emailVerified"
                            ],
                            "properties": {
                              "guid": {
                                "$ref": "#/components/schemas/typeGuidUnlimited",
                                "description": "The unique identifier of the account."
                              },
                              "fullName": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "full name (can be `null`)",
                                "examples": [
                                  "Jan Novak"
                                ]
                              },
                              "email": {
                                "type": "string",
                                "description": "email address",
                                "examples": [
                                  "jan.novak@gmail.com"
                                ]
                              },
                              "phone": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "phone number (can be `null`)",
                                "examples": [
                                  "420777888999"
                                ]
                              },
                              "mainAccount": {
                                "type": "boolean",
                                "description": "Is this account the main account?",
                                "examples": [
                                  true
                                ]
                              },
                              "authorized": {
                                "type": "boolean",
                                "description": "Is the account authorized? Default: true",
                                "examples": [
                                  true
                                ]
                              },
                              "emailVerified": {
                                "type": "boolean",
                                "description": "Is the email verified by eshop owner? Needed for pairing orders created in past. Default: false",
                                "examples": [
                                  true
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of customer accounts",
        "operationId": "getListOfCustomerAccounts",
        "description": "List of customer accounts supports the [Paging](#section/basic-principles/paging).",
        "tags": [
          "Customer accounts"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "45f0cc8c-b7a9-11ea-a7a1-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 1000.",
            "example": 888,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "account"
                      ],
                      "properties": {
                        "account": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "guid",
                            "fullName",
                            "email",
                            "phone",
                            "mainAccount",
                            "authorized",
                            "emailVerified"
                          ],
                          "properties": {
                            "guid": {
                              "$ref": "#/components/schemas/typeGuidUnlimited",
                              "description": "The unique identifier of the account."
                            },
                            "fullName": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "full name (can be `null`)",
                              "examples": [
                                "Jan Novak"
                              ]
                            },
                            "email": {
                              "type": "string",
                              "description": "email address",
                              "examples": [
                                "jan.novak@gmail.com"
                              ]
                            },
                            "phone": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "phone number (can be `null`)",
                              "examples": [
                                "420777888999"
                              ]
                            },
                            "mainAccount": {
                              "type": "boolean",
                              "description": "Is this account the main account?",
                              "examples": [
                                true
                              ]
                            },
                            "authorized": {
                              "type": "boolean",
                              "description": "Is the account authorized? Default: true",
                              "examples": [
                                true
                              ]
                            },
                            "emailVerified": {
                              "type": "boolean",
                              "description": "Is the email verified by eshop owner? Needed for pairing orders created in past. Default: false",
                              "examples": [
                                true
                              ]
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Creation of customer account",
        "operationId": "createCustomerAccount",
        "description": "",
        "tags": [
          "Customer accounts"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "45f0cc8c-b7a9-11ea-a7a1-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "fullName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 128,
                        "description": "full name (can be `null`)",
                        "examples": [
                          "Jan Novak"
                        ]
                      },
                      "email": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128,
                        "description": "email address",
                        "examples": [
                          "jan.novak@gmail.com"
                        ]
                      },
                      "phone": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 30,
                        "description": "phone number (can be `null`)",
                        "examples": [
                          "420777888999"
                        ]
                      },
                      "mainAccount": {
                        "type": "boolean",
                        "description": "Is this account the main account?",
                        "examples": [
                          true
                        ]
                      },
                      "authorized": {
                        "type": "boolean",
                        "description": "Is the account authorized? Default: true",
                        "examples": [
                          true
                        ]
                      },
                      "emailVerified": {
                        "type": "boolean",
                        "description": "Is the email verified by eshop owner? Needed for pairing orders created in past. Default: false",
                        "examples": [
                          true
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/customers/{guid}/accounts/{accountGuid}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "account"
                      ],
                      "properties": {
                        "account": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "guid",
                            "fullName",
                            "email",
                            "phone",
                            "mainAccount",
                            "authorized",
                            "emailVerified"
                          ],
                          "properties": {
                            "guid": {
                              "$ref": "#/components/schemas/typeGuidUnlimited",
                              "description": "The unique identifier of the account."
                            },
                            "fullName": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "full name (can be `null`)",
                              "examples": [
                                "Jan Novak"
                              ]
                            },
                            "email": {
                              "type": "string",
                              "description": "email address",
                              "examples": [
                                "jan.novak@gmail.com"
                              ]
                            },
                            "phone": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "phone number (can be `null`)",
                              "examples": [
                                "420777888999"
                              ]
                            },
                            "mainAccount": {
                              "type": "boolean",
                              "description": "Is this account the main account?",
                              "examples": [
                                true
                              ]
                            },
                            "authorized": {
                              "type": "boolean",
                              "description": "Is the account authorized? Default: true",
                              "examples": [
                                true
                              ]
                            },
                            "emailVerified": {
                              "type": "boolean",
                              "description": "Is the email verified by eshop owner? Needed for pairing orders created in past. Default: false",
                              "examples": [
                                true
                              ]
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Detail of customer account",
        "operationId": "getDetailOfCustomerAccount",
        "description": "",
        "tags": [
          "Customer accounts"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "45f0cc8c-b7a9-11ea-a7a1-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountGuid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "460e4fbe-b7a9-11ea-82ab-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "account"
                      ],
                      "properties": {
                        "account": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "guid",
                            "fullName",
                            "email",
                            "phone",
                            "mainAccount",
                            "authorized",
                            "emailVerified"
                          ],
                          "properties": {
                            "guid": {
                              "$ref": "#/components/schemas/typeGuidUnlimited",
                              "description": "The unique identifier of the account."
                            },
                            "fullName": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "full name (can be `null`)",
                              "examples": [
                                "Jan Novak"
                              ]
                            },
                            "email": {
                              "type": "string",
                              "description": "email address",
                              "examples": [
                                "jan.novak@gmail.com"
                              ]
                            },
                            "phone": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "phone number (can be `null`)",
                              "examples": [
                                "420777888999"
                              ]
                            },
                            "mainAccount": {
                              "type": "boolean",
                              "description": "Is this account the main account?",
                              "examples": [
                                true
                              ]
                            },
                            "authorized": {
                              "type": "boolean",
                              "description": "Is the account authorized? Default: true",
                              "examples": [
                                true
                              ]
                            },
                            "emailVerified": {
                              "type": "boolean",
                              "description": "Is the email verified by eshop owner? Needed for pairing orders created in past. Default: false",
                              "examples": [
                                true
                              ]
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Update of customer account",
        "operationId": "updateCustomerAccount",
        "description": "",
        "tags": [
          "Customer accounts"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "45f0cc8c-b7a9-11ea-a7a1-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountGuid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "460e4fbe-b7a9-11ea-82ab-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "fullName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 128,
                        "description": "full name (can be `null`)",
                        "examples": [
                          "Jan Novak"
                        ]
                      },
                      "email": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128,
                        "description": "email address",
                        "examples": [
                          "jan.novak@gmail.com"
                        ]
                      },
                      "phone": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 30,
                        "description": "phone number (can be `null`)",
                        "examples": [
                          "420777888999"
                        ]
                      },
                      "mainAccount": {
                        "type": "boolean",
                        "description": "Is this account the main account?",
                        "examples": [
                          true
                        ]
                      },
                      "authorized": {
                        "type": "boolean",
                        "description": "Is the account authorized? Default: true",
                        "examples": [
                          true
                        ]
                      },
                      "emailVerified": {
                        "type": "boolean",
                        "description": "Is the email verified by eshop owner? Needed for pairing orders created in past. Default: false",
                        "examples": [
                          true
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Deletion of customer account",
        "operationId": "deleteCustomerAccount",
        "description": "",
        "tags": [
          "Customer accounts"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "45f0cc8c-b7a9-11ea-a7a1-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountGuid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "460e4fbe-b7a9-11ea-82ab-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/customers/{guid}/delivery-addresses": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "deliveryAddresses",
                        "paginator"
                      ],
                      "properties": {
                        "deliveryAddresses": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/deliveryAddressCustomer"
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of customer delivery addresses",
        "operationId": "geListOfCustomerDeliveryAddresses",
        "description": "List of customer delivery addresses, supports the [Paging](#section/basic-principles/paging).",
        "tags": [
          "Customer delivery addresses"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "45f0cc8c-b7a9-11ea-a7a1-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 1000.",
            "example": 888,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "deliveryAddress"
                      ],
                      "properties": {
                        "deliveryAddress": {
                          "$ref": "#/components/schemas/deliveryAddressCustomer"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Creation of delivery address",
        "operationId": "createDeliveryAddress",
        "description": "",
        "tags": [
          "Customer delivery addresses"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "45f0cc8c-b7a9-11ea-a7a1-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "countryCode"
                    ],
                    "minProperties": 1,
                    "properties": {
                      "fullName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "full name (can be `null`)",
                        "examples": [
                          "John Lard"
                        ]
                      },
                      "company": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "company (can be `null`)",
                        "examples": [
                          "Lard Shop"
                        ]
                      },
                      "street": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "street (can be `null`)",
                        "examples": [
                          "Lard street"
                        ]
                      },
                      "houseNumber": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "house number (can be `null`)",
                        "examples": [
                          "5647"
                        ]
                      },
                      "city": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "city/town (can be `null`)",
                        "examples": [
                          "Čelákovice"
                        ]
                      },
                      "district": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "region (can be `null`)",
                        "examples": [
                          "Prague-East"
                        ]
                      },
                      "additional": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "additional info (can be `null`)",
                        "examples": [
                          "Arcade"
                        ]
                      },
                      "zip": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "ZIP/postal code (can be `null`)",
                        "examples": [
                          "25088"
                        ]
                      },
                      "countryCode": {
                        "type": "string",
                        "minLength": 1,
                        "description": "country (can be `null`)"
                      },
                      "regionName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "region name (can be `null`)",
                        "examples": [
                          "Central Bohemia"
                        ]
                      },
                      "isDefault": {
                        "type": "boolean",
                        "examples": [
                          true
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/customers/{guid}/delivery-addresses/{addressGuid}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "deliveryAddress"
                      ],
                      "properties": {
                        "deliveryAddress": {
                          "$ref": "#/components/schemas/deliveryAddressCustomer"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Detail of customer delivery address",
        "operationId": "getDetailOfCustomerDeliveryAddress",
        "description": "",
        "tags": [
          "Customer delivery addresses"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "45f0cc8c-b7a9-11ea-a7a1-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "addressGuid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2592b624-b73f-11ea-8a73-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "deliveryAddress"
                      ],
                      "properties": {
                        "deliveryAddress": {
                          "$ref": "#/components/schemas/deliveryAddressCustomer"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Update of customer delivery address",
        "operationId": "updateCustomerDeliveryAddress",
        "description": "",
        "tags": [
          "Customer delivery addresses"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "45f0cc8c-b7a9-11ea-a7a1-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "addressGuid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2592b624-b73f-11ea-8a73-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "fullName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "full name (can be `null`)",
                        "examples": [
                          "John Lard"
                        ]
                      },
                      "company": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "company (can be `null`)",
                        "examples": [
                          "Lard Shop"
                        ]
                      },
                      "street": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "street (can be `null`)",
                        "examples": [
                          "Lard street"
                        ]
                      },
                      "houseNumber": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "house number (can be `null`)",
                        "examples": [
                          "5647"
                        ]
                      },
                      "city": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "city/town (can be `null`)",
                        "examples": [
                          "Čelákovice"
                        ]
                      },
                      "district": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "region (can be `null`)",
                        "examples": [
                          "Prague-East"
                        ]
                      },
                      "additional": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "additional info (can be `null`)",
                        "examples": [
                          "Arcade"
                        ]
                      },
                      "zip": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "ZIP/postal code (can be `null`)",
                        "examples": [
                          "25088"
                        ]
                      },
                      "countryCode": {
                        "type": "string",
                        "minLength": 1,
                        "description": "country (can be `null`)",
                        "examples": [
                          "CZ"
                        ]
                      },
                      "regionName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "region name (can be `null`)",
                        "examples": [
                          "Central Bohemia"
                        ]
                      },
                      "isDefault": {
                        "type": "boolean",
                        "examples": [
                          true
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Deletion of customer delivery address",
        "operationId": "deleteCustomerDeliveryAddress",
        "description": "",
        "tags": [
          "Customer delivery addresses"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "45f0cc8c-b7a9-11ea-a7a1-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "addressGuid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "2592b624-b73f-11ea-8a73-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/customers/{guid}/remarks": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "remarks",
                        "paginator"
                      ],
                      "properties": {
                        "remarks": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "id",
                              "rating",
                              "remark"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "uniq identification number",
                                "examples": [
                                  1
                                ]
                              },
                              "rating": {
                                "type": "string",
                                "description": "type of rating",
                                "examples": [
                                  "positive"
                                ]
                              },
                              "remark": {
                                "type": "string",
                                "description": "customer remark",
                                "examples": [
                                  "Order payment delays"
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of customer remarks",
        "operationId": "getListOfCustomerRemarks",
        "description": "List of customer remarks, supports the [Paging](#section/basic-principles/paging).",
        "tags": [
          "Customer remarks"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "45f0cc8c-b7a9-11ea-a7a1-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 1000.",
            "example": 888,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "remark"
                      ],
                      "properties": {
                        "remark": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "id",
                            "rating",
                            "remark"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "uniq identification number",
                              "examples": [
                                1
                              ]
                            },
                            "rating": {
                              "type": "string",
                              "description": "type of rating",
                              "examples": [
                                "positive"
                              ]
                            },
                            "remark": {
                              "type": "string",
                              "description": "customer remark",
                              "examples": [
                                "Order payment delays"
                              ]
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Creation of customer remark",
        "operationId": "createCustomerRemark",
        "description": "",
        "tags": [
          "Customer remarks"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "45f0cc8c-b7a9-11ea-a7a1-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "schema": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "data"
                    ],
                    "properties": {
                      "data": {
                        "type": "object",
                        "additionalProperties": false,
                        "required": [
                          "rating",
                          "remark"
                        ],
                        "properties": {
                          "rating": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 255,
                            "description": "type of rating",
                            "examples": [
                              "negative"
                            ]
                          },
                          "remark": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Your remark, note, for customer",
                            "examples": [
                              "Top customer"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/customers/{guid}/remarks/{id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "remark"
                      ],
                      "properties": {
                        "remark": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "id",
                            "rating",
                            "remark"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "uniq identification number",
                              "examples": [
                                1
                              ]
                            },
                            "rating": {
                              "type": "string",
                              "description": "type of rating",
                              "examples": [
                                "positive"
                              ]
                            },
                            "remark": {
                              "type": "string",
                              "description": "customer remark",
                              "examples": [
                                "Order payment delays"
                              ]
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Detail of customer remark",
        "operationId": "getDetailOfCustomerRemark",
        "description": "",
        "tags": [
          "Customer remarks"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "45f0cc8c-b7a9-11ea-a7a1-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "example": "1",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "remark"
                      ],
                      "properties": {
                        "remark": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "id",
                            "rating",
                            "remark"
                          ],
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "uniq identification number",
                              "examples": [
                                1
                              ]
                            },
                            "rating": {
                              "type": "string",
                              "description": "type of rating",
                              "examples": [
                                "positive"
                              ]
                            },
                            "remark": {
                              "type": "string",
                              "description": "customer remark",
                              "examples": [
                                "Order payment delays"
                              ]
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Update of customer remark",
        "operationId": "updateCustomerRemark",
        "description": "",
        "tags": [
          "Customer remarks"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "45f0cc8c-b7a9-11ea-a7a1-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "example": "1",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "rating": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "type of rating",
                        "examples": [
                          "negative"
                        ]
                      },
                      "remark": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Your remark, note, for customer",
                        "examples": [
                          "Top customer"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Deletion of customer remark",
        "operationId": "deleteCustomerRemark",
        "description": "",
        "tags": [
          "Customer remarks"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "",
            "required": true,
            "example": "45f0cc8c-b7a9-11ea-a7a1-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "example": "1",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/customers/changes": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "changes",
                        "paginator"
                      ],
                      "properties": {
                        "changes": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "guid",
                              "changeTime",
                              "changeType"
                            ],
                            "properties": {
                              "guid": {
                                "$ref": "#/components/schemas/typeGuidUnlimited",
                                "description": "customer identifier that can be used to query about the details of the customer."
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time, when the event happened. ISO 8601 format (`2017-12-12T22:08:01+0100`)."
                              },
                              "changeType": {
                                "type": "string",
                                "description": "type of event that happened with the entity. Possible values are following: `add`, `edit`, `delete`.",
                                "examples": [
                                  "edit"
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Last customer changes",
        "operationId": "getLastCustomerChanges",
        "description": "Returns the list of customers who have been changed (added/changed or deleted). The Endpoint is intended \nto determine the changes after you have loaded the complete list of customers and you need to know, if \nany of these has been changed (or added or deleted).  Guaranteed history is 30 days, the older data are \ndeleted progressively.\n\n\nEach customer in the log is only mentioned with their last change. For example, if the customer was modified \nand then deleted, the log will only show information about the deletion.\n\nCan be filtered by changeType = edit/delete parameter.\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like \n`edit` action.\n\n\nEndpoint supports [Paging](#section/basic-principles/paging).",
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "DateTime from which up to the present we are interested in the changes. + in the time zone",
            "required": true,
            "example": "2018-01-01T01:01:01+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeType",
            "in": "query",
            "description": "Returning only edit or delete type changed records",
            "required": false,
            "example": "edit",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultItemsPerPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/customers/regions": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "regions"
                      ],
                      "properties": {
                        "regions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "id",
                              "regionName",
                              "regionShortcut",
                              "countryCode"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "customer region ID",
                                "examples": [
                                  1
                                ]
                              },
                              "regionName": {
                                "type": "string",
                                "description": "customer region name",
                                "examples": [
                                  "Minas Gerais"
                                ]
                              },
                              "regionShortcut": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "customer region shortcut",
                                "examples": [
                                  "MG"
                                ]
                              },
                              "countryCode": {
                                "type": "string",
                                "examples": [
                                  "CZ"
                                ],
                                "description": "two letter country code"
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of customer regions",
        "operationId": "getListOfCustomerRegions",
        "description": "Returns the list of customer regions. The regions are ordered by id. The list is not paginated.",
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/customers/groups": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "customerGroups"
                      ],
                      "properties": {
                        "customerGroups": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "id",
                              "name",
                              "customerGroupCode",
                              "description",
                              "defaultPricelistId",
                              "maxDiscount",
                              "priority",
                              "emailNotification",
                              "authRequired",
                              "registrationAllowed",
                              "wholesale",
                              "tableLayout",
                              "fullProfileRequired"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Customer group ID",
                                "examples": [
                                  1
                                ]
                              },
                              "name": {
                                "type": "string",
                                "description": "Customer group name",
                                "examples": [
                                  "Wholesale customers"
                                ]
                              },
                              "customerGroupCode": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "index name of customer group used to identify group while insert/edit customer",
                                "examples": [
                                  "wholesale"
                                ]
                              },
                              "description": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "description of customer group.",
                                "examples": [
                                  "Wholesale customers are the best customers"
                                ]
                              },
                              "defaultPricelistId": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "ID of default pricelist for this group",
                                "examples": [
                                  1
                                ]
                              },
                              "maxDiscount": {
                                "oneOf": [
                                  {
                                    "$ref": "#/components/schemas/typePriceRatio"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "description": "Ratio of maximal discount (0.55 -> 55% max discount). Maximum 0.9999. Null when no maximal discount is set.",
                                "examples": [
                                  "0.55"
                                ]
                              },
                              "priority": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "Priority of customer group",
                                "examples": [
                                  100
                                ]
                              },
                              "emailNotification": {
                                "type": "boolean",
                                "description": "whether e-mail will be sent on new customer registration in this group.",
                                "examples": [
                                  true
                                ]
                              },
                              "authRequired": {
                                "type": "boolean",
                                "description": "whether authorization of new customer by eshop administrator is be required",
                                "examples": [
                                  true
                                ]
                              },
                              "registrationAllowed": {
                                "type": "boolean",
                                "description": "whether customers can register to this group.",
                                "examples": [
                                  true
                                ]
                              },
                              "wholesale": {
                                "type": "boolean",
                                "description": "whether customers and their orders in this group are marked as wholesale",
                                "examples": [
                                  true
                                ]
                              },
                              "tableLayout": {
                                "type": "boolean",
                                "description": "whether table layout will be shown instead to classical layout. Might not be supported by all templates.",
                                "examples": [
                                  true
                                ]
                              },
                              "fullProfileRequired": {
                                "type": "boolean",
                                "description": "whether full profile is needed for customer.",
                                "examples": [
                                  true
                                ]
                              },
                              "defaultDueDays": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "Default maturity for documents in days",
                                "examples": [
                                  14
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of customer groups",
        "operationId": "getListOfCustomerGroups",
        "description": "Returns list of customer groups ordered by priority. List is not paginated.",
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/template-include": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "snippets"
                      ],
                      "properties": {
                        "snippets": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "location",
                              "html"
                            ],
                            "additionalProperties": false,
                            "properties": {
                              "location": {
                                "type": "string",
                                "enum": [
                                  "common-header",
                                  "common-footer",
                                  "order-confirmed"
                                ],
                                "description": "(location) code identifier. Possible values: `common-header`, `common-footer`, `order-confirmed`",
                                "examples": [
                                  "common-header"
                                ]
                              },
                              "html": {
                                "type": "string",
                                "description": "HTML content included in the specified location",
                                "examples": [
                                  "<p>My custom HTML</p>"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Listing of codes",
        "operationId": "getListingOfHtmlCodes",
        "description": "This lists currently defined HTML codes for this addon, in all possible\nlocations. Each addon sees only “its own” codes,\n it cannot see other codes of other addons, not even from the same developer. Also, it does not see the code inserted within the administration.",
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "snippets"
                      ],
                      "properties": {
                        "snippets": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "location",
                              "html"
                            ],
                            "additionalProperties": false,
                            "properties": {
                              "location": {
                                "type": "string",
                                "enum": [
                                  "common-header",
                                  "common-footer",
                                  "order-confirmed"
                                ],
                                "description": "(location) code identifier. Possible values: `common-header`, `common-footer`, `order-confirmed`",
                                "examples": [
                                  "common-header"
                                ]
                              },
                              "html": {
                                "type": "string",
                                "description": "HTML content included in the specified location",
                                "examples": [
                                  "<p>My custom HTML</p>"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "template-include-location-invalid",
                      "message": "Invalid location code: does-not-exist. Possible values:\ncommon-header, common-footer, order-confirmed",
                      "instance": "location"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Inserting and editing codes",
        "operationId": "createAndEditHtmlCodes",
        "description": "This adds new or changes the current (if exists) HTML code. It is\npossible to enter 1-3 changes at a time (typically\n\n3 possible locations). If the value already exists, it is simply\noverwritten. The limit for HTML code is 8192 characters. In case that\nany\n\nof the requirements fail, the detailed information is returned in\nthe`errors` field.",
        "tags": [
          "Templates"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "snippets"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "snippets": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "location",
                            "html"
                          ],
                          "additionalProperties": false,
                          "properties": {
                            "location": {
                              "type": "string",
                              "description": "(location) code identifier. Possible values: `common-header`, `common-footer`, `order-confirmed`",
                              "examples": [
                                "common-header"
                              ]
                            },
                            "html": {
                              "type": "string",
                              "maxLength": 8192,
                              "description": "HTML content to be included in the specified location",
                              "examples": [
                                "<p>My custom HTML</p>"
                              ]
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/template-include/{location}": {
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Removal of code",
        "operationId": "deleteHtmlCode",
        "description": "This call can be used to delete the existing code from the given\nlocation. if the code for the given `location` (position) does not\nexist, the\n\nAPI returns `404 NOT FOUND`",
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "name": "location",
            "in": "path",
            "description": "supported values: `common-header`, `common-footer`,\n`order-confirmed`",
            "required": true,
            "example": "common-header",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/payment-status/{paymentCode}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "orderCode",
                        "returnUrl"
                      ],
                      "properties": {
                        "orderCode": {
                          "type": "string",
                          "description": "order number. Caution! This does not have to be number only, it can contain also letters, dash, etc.",
                          "examples": [
                            "2018000016"
                          ]
                        },
                        "returnUrl": {
                          "type": "string",
                          "description": "URL, where the payment gateway should be redirected to, after the payment is completed",
                          "examples": [
                            "https://www.domena-eshopu.cz/api/pay/apigate/return?paymentCode=os8FtURz7PpO46Z87euEAoBAn9RClB2d"
                          ]
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Gaining the information about payment",
        "operationId": "getInformationAboutPayment",
        "description": "Returns the URL, at which the payment gateway shall redirect the users\nafter completion of operation and order number.",
        "tags": [
          "Payment gateways"
        ],
        "parameters": [
          {
            "name": "paymentCode",
            "in": "path",
            "description": "the payment code identifies the payment of a single order,\nit is generated when the order is completed and received by the payment gateway upon redirection from the e-shop to the payment gateway.\n",
            "required": true,
            "example": "os8FtURz7PpO46Z87euEAoBAn9RClB2d",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "payment-not-found",
                      "message": "The payment code \"nonExists\" not found.",
                      "instance": "paymentCode"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Does not have a value in the enumeration\n[\"FAILED\",\"OK\",\"PENDING\"]",
                      "instance": "data.status"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Payment status update",
        "operationId": "updatePaymentStatus",
        "description": "Payment status update via the payment gateway. The `paymentCode` is the\nidentifier. Payment status can be updated when the payment has been\nsuccessfully recorded.\n\n**Please note that `message` can not be longer than 255 characters.**",
        "tags": [
          "Payment gateways"
        ],
        "parameters": [
          {
            "name": "paymentCode",
            "in": "path",
            "description": "payment code identifies the payment of a single order,\nit is generated when the order is completed and received by the payment gateway upon redirection from e-shop to the payment gateway.\n",
            "required": true,
            "example": "os8FtURz7PpO46Z87euEAoBAn9RClB2d",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "suppressDocumentGeneration",
            "in": "query",
            "description": "suppress the generation of linked documents.",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "suppressEmailSending",
            "in": "query",
            "description": "suppress sending the linked information e-mails.",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "additionalProperties": false,
                "properties": {
                  "data": {
                    "required": [
                      "status"
                    ],
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "status": {
                        "type": "string",
                        "enum": [
                          "FAILED",
                          "OK",
                          "PENDING"
                        ],
                        "description": "transaction status",
                        "examples": [
                          "OK"
                        ]
                      },
                      "message": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "maxLength": 255,
                        "description": "Explanation of the status",
                        "examples": [
                          "Not enough finances on the card"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/webhooks": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "webhooks",
                        "paginator"
                      ],
                      "properties": {
                        "webhooks": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/webhook"
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Overview of registered webhooks",
        "operationId": "getOverviewOfRegisteredWebhooks",
        "description": "Returns the list of webhooks, registered by the specific addon for a\nsingle e-shop. It is therefore bound to the specific installation.\n\nThe addon does not have any access to another addon (not even for the\nsame e-shop, or two addons from the same developer).",
        "tags": [
          "Webhooks"
        ],
        "parameters": [
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 20. Max value is 500.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "webhooks"
                      ],
                      "properties": {
                        "webhooks": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/webhook"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Registration of new webhook",
        "operationId": "registerNewWebhook",
        "description": "Registers the webhook. For a single event (`event`, for example\n`order:create`) **ONLY ONE** URL can be registered.\n\nIf you try to enter the webhook for an `event` that already exists, you\nwill\n receive error `422` with message `Webhook already exists for this event`. Successful creation (registration) of webhook is signaled by code `201`. The endpoint returns the info\non the created webhook. One of the items is `id`, which is assigned to\nthe webhook and is used for its identification\n\nupon change or deletion.\n\n\nThe supported event can be found in code list <a\nhref=\"#webhook-event-type\">Webhook event types</a>.\n\n\nIt is possible to enter up to 50 webhooks using a single call.\n\n**Please note that `url` cannot be longer than 2000 characters.**",
        "tags": [
          "Webhooks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "event",
                        "url"
                      ],
                      "properties": {
                        "event": {
                          "type": "string",
                          "description": "event, see [Webhook event types](#section/code-lists/webhook-event-types) code list",
                          "examples": [
                            "order:create",
                            "order:update",
                            "order:delete"
                          ]
                        },
                        "url": {
                          "type": "string",
                          "maxLength": 2000,
                          "description": "Webhook URL",
                          "examples": [
                            "https://myapplication.tld/orders.php"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/webhooks/{id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "webhook"
                      ],
                      "properties": {
                        "webhook": {
                          "$ref": "#/components/schemas/webhook"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "webhook-not-found",
                      "message": "Webhook with id \"999\" not found.",
                      "instance": "999"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Detail of registered webhooks",
        "operationId": "getDetailOfRegisteredWebhooks",
        "description": "Shows the information about a single specific registered webhook.",
        "tags": [
          "Webhooks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "example": 3,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "webhook-not-found",
                      "message": "Webhook with id \"999\" not found.",
                      "instance": "999"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Update of existing webhook",
        "operationId": "updateExistingWebhook",
        "description": "Modification of the existing webhook. The `id` of the webhook serves as\nthe identifier. Using just one call, only one webhook can be modified.\n\n\n**Please note that `url` cannot be longer than 2000 characters.**",
        "tags": [
          "Webhooks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "example": 3,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "url"
                    ],
                    "properties": {
                      "url": {
                        "type": "string",
                        "examples": [
                          "https://myapplication.tld/orders-new.php"
                        ],
                        "maxLength": 2000
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "webhook-not-found",
                      "message": "Webhook with id \"999\" not found.",
                      "instance": "999"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Deletion of registered webhook",
        "operationId": "deleteRegisteredWebhook",
        "description": "Deletes the registered webhook, identified by means of `id`.",
        "tags": [
          "Webhooks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "example": 3,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/webhooks/renew-signature-key": {
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "signatureKey"
                      ],
                      "properties": {
                        "signatureKey": {
                          "type": "string",
                          "examples": [
                            "8a5e881b19ad6cc0bc986587b22e30be"
                          ]
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Generating of signature key",
        "operationId": "generateWebhookSignatureKey",
        "description": "The endpoint call does not require any body. The endpoint always\ngenerates a new signature key\n\nfor calculating the digest mentioned in the HTTP header of the\nnotification – `Shoptet-Webhook-Signature`. The same key\n\nis to be used during check after the receipt of notification. For more\ninformation see https://developers.shoptet.com/webhooks/#signature",
        "tags": [
          "Webhooks"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/webhooks/notifications": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "notifications",
                        "paginator"
                      ],
                      "properties": {
                        "notifications": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/webhookNotification"
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Webhook notification",
        "operationId": "getWebhookNotification",
        "description": "Returns the notification (invoking) list of webhooks and provides information about these. If you do not have \na registered webhook, and the given event happens (for example creation of an order), the registered URLs are \ncalled. A notification about a call contains information about the webhook that requested the call, the URL \ncalled, the time, delivery status, number of delivery attempts and other information.\n\n\nIt is possible to request 7 days history of notification.",
        "tags": [
          "Webhooks"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "description": "supported values: `new`, `failed`, `success`",
            "example": "failed",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event",
            "in": "query",
            "description": "event",
            "example": "order:delete",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "flag that the notification was not delivered yet, and the number of\nattempts did not reach the maximum amount. The notification will be\nresent to the target URL",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "from",
            "in": "query",
            "description": "DateTime for the log, up to the present, which we are interested in.\n`+` in the time zone designation, html shall be coded as `%2B`.",
            "example": "2018-05-28T14:17:00+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 20. Max value is 500.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/shipping-methods": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "shippingMethods",
                        "wholesaleActive",
                        "wholesaleSplitActive",
                        "defaultRetailMethod",
                        "defaultWholesaleMethod"
                      ],
                      "properties": {
                        "shippingMethods": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "guid",
                              "name",
                              "description",
                              "shippingCompany",
                              "trackingUrl",
                              "visible",
                              "priority",
                              "wholesale",
                              "logoUrl"
                            ],
                            "properties": {
                              "guid": {
                                "$ref": "#/components/schemas/typeGuid",
                                "description": "Unique identifier of the shipping method"
                              },
                              "name": {
                                "type": "string",
                                "description": "name of shipping method, as can be seen in e-shop.",
                                "examples": [
                                  "Shipping company"
                                ]
                              },
                              "description": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "additional information about the shipping method. (can be null)",
                                "examples": [
                                  "Delivery within 48 hours"
                                ]
                              },
                              "shippingCompany": {
                                "type": [
                                  "object",
                                  "null"
                                ],
                                "required": [
                                  "id",
                                  "code",
                                  "name"
                                ],
                                "description": "Shipping company",
                                "additionalProperties": false,
                                "properties": {
                                  "id": {
                                    "type": "integer",
                                    "description": "shipping method ID.",
                                    "examples": [
                                      21
                                    ]
                                  },
                                  "code": {
                                    "type": "string",
                                    "description": "shipping company identifier.",
                                    "examples": [
                                      "intime"
                                    ]
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "shipping company name.",
                                    "examples": [
                                      "IN TIME"
                                    ]
                                  }
                                }
                              },
                              "trackingUrl": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "package trace link pattern",
                                "examples": [
                                  "http://www.ppl.cz/main2.aspx?cls=Package&idSearch=#PACKAGE_NUMBER#"
                                ]
                              },
                              "visible": {
                                "type": "boolean",
                                "description": "Is the shipping method visible?",
                                "examples": [
                                  true
                                ]
                              },
                              "priority": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "sequence within the list",
                                "examples": [
                                  16
                                ]
                              },
                              "wholesale": {
                                "type": "boolean",
                                "description": "Is the shipping method available for wholesale customers?",
                                "examples": [
                                  true
                                ]
                              },
                              "logoUrl": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "URL of the shipping company logo",
                                "examples": [
                                  "https://www.example.com/logo.png"
                                ]
                              }
                            }
                          }
                        },
                        "wholesaleActive": {
                          "type": "boolean",
                          "description": "flag, whether the wholesale shipping methods are permitted",
                          "examples": [
                            true
                          ]
                        },
                        "wholesaleSplitActive": {
                          "type": "boolean",
                          "description": "flag, whether the wholesale payment methods split is enabled. True if wholesale payment methods are permitted and split is active, otherwise false",
                          "examples": [
                            true
                          ]
                        },
                        "defaultRetailMethod": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Default shipping method for retail sale",
                          "examples": [
                            "b57f91bb-e920-11e0-baa3-7dc668b75ca8"
                          ]
                        },
                        "defaultWholesaleMethod": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Default shipping method for wholesale",
                          "examples": [
                            "b57f91bb-e920-11e0-baa3-7dc668b75ca8"
                          ]
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of shipping methods",
        "operationId": "getListOfShippingMethods",
        "description": "Endpoint returns a list of all available shipping methods and details of\ntheir settings. Does not use paging,\n\nit always returns all methods at once.",
        "tags": [
          "Shipping methods"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "guid",
                        "name",
                        "description",
                        "visibility",
                        "wholesale",
                        "logoUrl",
                        "shippingCompany"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "guid": {
                          "$ref": "#/components/schemas/typeGuid",
                          "description": "Unique identifier of the shipping method"
                        },
                        "name": {
                          "type": "string",
                          "description": "name of shipping method, as can be seen in e-shop.",
                          "examples": [
                            "Shipping company"
                          ]
                        },
                        "description": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "additional information about the shipping method. (can be null)",
                          "examples": [
                            "Delivery within 48 hours"
                          ]
                        },
                        "visibility": {
                          "type": "boolean",
                          "description": "Is the shipping method visible?",
                          "examples": [
                            true
                          ]
                        },
                        "wholesale": {
                          "type": "boolean",
                          "description": "Is the shipping method available for wholesale customers?",
                          "examples": [
                            true
                          ]
                        },
                        "logoUrl": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "URL of the shipping company logo",
                          "examples": [
                            "https://www.example.com/logo.png"
                          ]
                        },
                        "shippingCompany": {
                          "type": "object",
                          "required": [
                            "id",
                            "code",
                            "name"
                          ],
                          "additionalProperties": false,
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "shipping method ID.",
                              "examples": [
                                21
                              ]
                            },
                            "code": {
                              "type": "string",
                              "description": "shipping company identifier.",
                              "examples": [
                                "intime"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "shipping company name.",
                              "examples": [
                                "IN TIME"
                              ]
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Adding a shipping method",
        "operationId": "createShippingMethod",
        "description": "Adds a new shipping method for the specific e-shop.\n\nShould you wish to implement an addon implementing a shipping method,\ncontact our partner support and request the creation\n\nof a new \"shipping company code\" identifier.\n\n\nThe request body includes the mandatory attributes `name` and\n`shippingMethodCode` (or deprecated `shippingCompanyCode`). The other\nparameters are not\n\nmandatory and their default values will be used:\n\n\n- `description` - `null`\n\n\n- `visibility` - `false`\n\n\n- `wholesale` - `false`\n\n\n- `logo` - `null`\n\n\n- `minimalShippingPrice` - `0.00`\n\n\nSend the logo of the shipping method as the file content, encoded with\nbase64, in `data.logo.content` request item.\n\n\n**Please note that `name` cannot be longer than 255 characters.**",
        "tags": [
          "Shipping methods"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "name"
                    ],
                    "additionalProperties": false,
                    "oneOf": [
                      {
                        "required": [
                          "shippingCompanyCode"
                        ]
                      },
                      {
                        "required": [
                          "shippingMethodCode"
                        ]
                      }
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Name of the shipping method",
                        "examples": [
                          "Shipping name"
                        ]
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "additional information about the shipping method.",
                        "examples": [
                          "Shipping description"
                        ]
                      },
                      "shippingCompanyCode": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Type of shipping company (operator) - identifier assigned by Shoptet",
                        "examples": [
                          "intime"
                        ],
                        "deprecated": true
                      },
                      "shippingMethodCode": {
                        "type": "string",
                        "minLength": 1,
                        "description": "type of shipping method (operator) - identifier assigned by Shoptet",
                        "examples": [
                          "intime-colli-small"
                        ]
                      },
                      "visibility": {
                        "type": "boolean",
                        "description": "whether the shipping method will be visible",
                        "examples": [
                          true
                        ]
                      },
                      "wholesale": {
                        "type": "boolean",
                        "description": "flag, whether the shipping method is available for wholesale customers (`false` = for retail)",
                        "examples": [
                          true
                        ]
                      },
                      "logo": {
                        "type": "object",
                        "required": [
                          "filename",
                          "content"
                        ],
                        "additionalProperties": false,
                        "properties": {
                          "filename": {
                            "type": "string",
                            "pattern": "^[A-Za-z0-9-_.]*\\.[a-z]{3,4}$",
                            "description": "Name of the file",
                            "examples": [
                              "logo_shipping.png"
                            ]
                          },
                          "content": {
                            "type": "string",
                            "description": "Base64 encoded image",
                            "examples": [
                              "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABaElEQVR42mNk==="
                            ]
                          }
                        }
                      },
                      "minimalShippingPrice": {
                        "$ref": "#/components/schemas/typePriceNullable",
                        "description": "number indicating minimum price of shipping in the default currency"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/shipping-request/{shippingRequestCode}/{shippingGuid}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "eshop",
                        "items"
                      ],
                      "properties": {
                        "eshop": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "eshopId",
                            "eshopUrl",
                            "vatPayer"
                          ],
                          "properties": {
                            "eshopId": {
                              "type": "integer",
                              "description": "Eshop ID.",
                              "examples": [
                                222651
                              ]
                            },
                            "eshopUrl": {
                              "type": "string",
                              "description": "Eshop URL.",
                              "examples": [
                                "https://www.example.com"
                              ]
                            },
                            "vatPayer": {
                              "type": "boolean",
                              "description": "identify if e-shop is VAT payer or not.",
                              "examples": [
                                true
                              ]
                            }
                          }
                        },
                        "cart": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "price",
                            "currency"
                          ],
                          "description": "Cart information",
                          "properties": {
                            "price": {
                              "$ref": "#/components/schemas/cartPrice",
                              "description": "Information about total price in cart"
                            },
                            "currency": {
                              "$ref": "#/components/schemas/typeCurrencyCode",
                              "description": "Currency code of cart"
                            },
                            "freeShipping": {
                              "type": "boolean",
                              "description": " Whether cart currently has freeShipping (because of coupon or amount)",
                              "examples": [
                                false
                              ]
                            }
                          }
                        },
                        "items": {
                          "type": "array",
                          "description": "List of items in cart (without price)",
                          "items": {
                            "type": "object",
                            "required": [
                              "productGuid",
                              "code",
                              "itemType",
                              "name",
                              "variantName",
                              "brand",
                              "weight",
                              "amount",
                              "amountUnit"
                            ],
                            "additionalProperties": false,
                            "properties": {
                              "productGuid": {
                                "$ref": "#/components/schemas/typeGuidUnlimited",
                                "description": "unique product indicator"
                              },
                              "code": {
                                "type": "string",
                                "description": "Product code",
                                "examples": [
                                  "40"
                                ]
                              },
                              "itemType": {
                                "type": "string",
                                "description": "see also [Product types](#section/code-lists/product-types) code list",
                                "examples": [
                                  "product"
                                ]
                              },
                              "name": {
                                "type": "string",
                                "description": "Product name",
                                "examples": [
                                  "Komplet"
                                ]
                              },
                              "variantName": {
                                "type": "string",
                                "description": "Product variant name",
                                "examples": [
                                  "Komplet - bílý"
                                ]
                              },
                              "brand": {
                                "oneOf": [
                                  {
                                    "$ref": "#/components/schemas/brandNamed"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "description": "Product brand"
                              },
                              "weight": {
                                "$ref": "#/components/schemas/typeWeight"
                              },
                              "amount": {
                                "$ref": "#/components/schemas/typePositiveAmountNullable",
                                "description": "amount of ordered product.",
                                "examples": [
                                  1
                                ]
                              },
                              "amountUnit": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "unit of order product",
                                "examples": [
                                  "pcs"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "shipping-request-not-found",
                      "message": "Unknown shippingGuid\n\"97a4b2da-6f2e-11e4-877e-ac162d8a2455\" or\nshippingRequestCode \"5ee3b74071f72c460757155cb0ae0aaa\".",
                      "instance": "shippingGuid, shippingRequestCode"
                    }
                  ]
                }
              }
            }
          },
          "408": {
            "description": "Request Timeout",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "cart-data-missing",
                      "message": "Cart data of \"10c50b2f9dde1e9b1050623586547d9f\" from CMS\nis missing",
                      "instance": "shippingRequest"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Shipping request for getting cart details",
        "operationId": "getShippingRequestForCartDetails",
        "description": "Endpoint returns details of cart for shipping request",
        "tags": [
          "Shipping requests"
        ],
        "parameters": [
          {
            "name": "shippingRequestCode",
            "in": "path",
            "description": "Shipping request code of cart",
            "required": true,
            "example": "0389fc7dd97584790e5ad49010db9c4a",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "shippingGuid",
            "in": "path",
            "description": "Shipping method based on delivery",
            "required": true,
            "example": "ecb3e399-2f57-11eb-8853-0800275177b9",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "put": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "verificationCode"
                      ],
                      "properties": {
                        "verificationCode": {
                          "type": "string",
                          "description": "VerificationCode of shipping to be used in JS",
                          "examples": [
                            "abcdefghij"
                          ]
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "shipping-request-not-found",
                      "message": "Unknown shippingGuid\n\"97a4b2da-6f2e-11e4-877e-ac162d8a2455\" or\nshippingRequestCode \"5ee3b74071f72c460757155cb0ae0aaa\".",
                      "instance": "shippingGuid, shippingRequestCode"
                    }
                  ]
                }
              }
            }
          },
          "408": {
            "description": "Request Timeout",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "cart-data-missing",
                      "message": "Cart data of \"10c50b2f9dde1e9b1050623586547d9f\" from CMS\nis missing",
                      "instance": "shippingRequest"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Update shipping price & data",
        "operationId": "updateShippingData",
        "description": "Endpoint to set shipping price & data",
        "tags": [
          "Shipping requests"
        ],
        "parameters": [
          {
            "name": "shippingRequestCode",
            "in": "path",
            "description": "Shipping request code of cart",
            "required": true,
            "example": "0389fc7dd97584790e5ad49010db9c4a",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "shippingGuid",
            "in": "path",
            "description": "Shipping method based on delivery",
            "required": true,
            "example": "ecb3e399-2f57-11eb-8853-0800275177b9",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "additionalProperties": false,
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "expires",
                      "trackingNumber"
                    ],
                    "properties": {
                      "description": {
                        "type": "string",
                        "minLength": 1,
                        "description": "description of the shipping request.",
                        "examples": [
                          "Express delivery"
                        ]
                      },
                      "additionalText": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "description": "additional information about the shipping request. (can be null)",
                        "examples": [
                          "Delivery within 48 hours`"
                        ]
                      },
                      "price": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "anyOf": [
                          {
                            "required": [
                              "priceWithVat",
                              "vatRate"
                            ]
                          },
                          {
                            "required": [
                              "priceWithoutVat",
                              "vatRate"
                            ]
                          }
                        ],
                        "additionalProperties": false,
                        "properties": {
                          "priceWithVat": {
                            "$ref": "#/components/schemas/typePrice",
                            "description": "Price of delivery with VAT (this or `priceWithoutVat` must be filled).",
                            "examples": [
                              "121.00"
                            ]
                          },
                          "priceWithoutVat": {
                            "$ref": "#/components/schemas/typePrice",
                            "description": "Price of delivery without VAT (this or `priceWithVat` must be filled).",
                            "examples": [
                              "100.00"
                            ]
                          },
                          "vatRate": {
                            "$ref": "#/components/schemas/typeVatRate",
                            "description": "VAT rate of delivery.",
                            "examples": [
                              "21.00"
                            ]
                          }
                        }
                      },
                      "currency": {
                        "$ref": "#/components/schemas/typeCurrencyCodeNullable"
                      },
                      "expires": {
                        "$ref": "#/components/schemas/typeDateTimeRequest",
                        "description": "Time indicates availability of chosen delivery. Deprecation of required timezone part of datetime, and will be removed in the future"
                      },
                      "deliveryAddress": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "fullName": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 255,
                            "description": "name of purchaser (or `null`)",
                            "examples": [
                              "John Doe"
                            ]
                          },
                          "company": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 255,
                            "description": "name of purchaser''s company (or `null`)",
                            "examples": [
                              "Shoptet s.r.o."
                            ]
                          },
                          "street": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 255,
                            "description": "street of purchaser (or `null`)",
                            "examples": [
                              "French"
                            ]
                          },
                          "houseNumber": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 255,
                            "description": "street number (or `null`)",
                            "examples": [
                              "123"
                            ]
                          },
                          "city": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 255,
                            "description": "city/town (village) (or `null`)",
                            "examples": [
                              "Praha 2"
                            ]
                          },
                          "district": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 255,
                            "description": "county (or `null`)",
                            "examples": [
                              "Praha 2"
                            ]
                          },
                          "additional": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 255,
                            "description": "additional address information (or `null`)",
                            "examples": [
                              "4. floor"
                            ]
                          },
                          "zip": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 255,
                            "description": "ZIP or postal code (or `null`)",
                            "examples": [
                              "120 00"
                            ]
                          },
                          "countryCode": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "tree-character ISO country code (ISO 4217)",
                            "examples": [
                              "CZ"
                            ]
                          },
                          "regionName": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 255,
                            "description": "region name (or `null`)",
                            "examples": [
                              "Capital city"
                            ]
                          },
                          "regionShortcut": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "minLength": 1,
                            "maxLength": 255,
                            "description": "region abbreviation (or `null`)",
                            "examples": [
                              "CC"
                            ]
                          }
                        }
                      },
                      "trackingNumber": {
                        "type": "string",
                        "maxLength": 255,
                        "description": "Tracking number for see status of delivery.",
                        "examples": [
                          "U134666"
                        ]
                      },
                      "branchId": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "maxLength": 255,
                        "description": "Identification of selected pickup point.",
                        "examples": [
                          "314012"
                        ]
                      },
                      "branchName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "maxLength": 255,
                        "description": "Name of selected pickup point.",
                        "examples": [
                          "Čáslav, Jeníkovská 362/66 [Irma Rajmová - Trafika]"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/shipping-request/{shippingRequestCode}/{shippingGuid}/status": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "status",
                        "orderCode"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "status": {
                          "type": "string",
                          "description": "Status of the order",
                          "examples": [
                            "open"
                          ]
                        },
                        "orderCode": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Order code",
                          "examples": [
                            "20200010"
                          ]
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "status": "open",
                    "orderCode": "20200010"
                  },
                  "errors": null
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "shipping-request-not-found",
                      "message": "Unknown shippingGuid\n\"97a4b2da-6f2e-11e4-877e-ac162d8a2455\" or\nshippingRequestCode \"5ee3b74071f72c460757155cb0ae0aaa\".",
                      "instance": "shippingGuid, shippingRequestCode"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Shipping request for getting status of order",
        "operationId": "getShippingRequestForGettingOrderStatus",
        "description": "Endpoint returns status of order related to `shippingRequestCode` &\n`shippingGuid`",
        "tags": [
          "Shipping requests"
        ],
        "parameters": [
          {
            "name": "shippingRequestCode",
            "in": "path",
            "description": "Shipping request code of cart",
            "required": true,
            "example": "0389fc7dd97584790e5ad49010db9c4a",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "shippingGuid",
            "in": "path",
            "description": "Shipping method based on delivery",
            "required": true,
            "example": "ecb3e399-2f57-11eb-8853-0800275177b9",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/payment-methods": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "paymentMethods",
                        "wholesaleActive",
                        "wholesaleSplitActive",
                        "defaultRetailMethod",
                        "defaultWholesaleMethod"
                      ],
                      "properties": {
                        "paymentMethods": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "guid",
                              "name",
                              "description",
                              "submethod",
                              "paymentType",
                              "visible",
                              "wholesale",
                              "logoUrl"
                            ],
                            "properties": {
                              "guid": {
                                "$ref": "#/components/schemas/typeGuid",
                                "description": "payment method GUID"
                              },
                              "name": {
                                "type": "string",
                                "description": "name of payment gateway, as can be seen in e-shop",
                                "examples": [
                                  "Cash on delivery"
                                ]
                              },
                              "description": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "additional information about the gateway",
                                "examples": [
                                  "This is the test description"
                                ]
                              },
                              "submethod": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "additional identification of payment method",
                                "examples": [
                                  "apple-pay"
                                ]
                              },
                              "paymentType": {
                                "type": "object",
                                "required": [
                                  "id",
                                  "code",
                                  "name"
                                ],
                                "description": "payment method",
                                "additionalProperties": false,
                                "properties": {
                                  "id": {
                                    "type": "integer",
                                    "description": "payment method ID",
                                    "examples": [
                                      2
                                    ]
                                  },
                                  "code": {
                                    "type": "string",
                                    "description": "identifier of the payment type (payment method operator).",
                                    "examples": [
                                      "paysec"
                                    ]
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "name of the payment type (payment method operator).",
                                    "examples": [
                                      "PaySec"
                                    ]
                                  }
                                }
                              },
                              "visible": {
                                "type": "boolean",
                                "description": "Is the payment method visible?",
                                "examples": [
                                  true
                                ]
                              },
                              "priority": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "sequence within the list",
                                "examples": [
                                  1
                                ]
                              },
                              "wholesale": {
                                "type": "boolean",
                                "description": "Is the payment method available for wholesale?",
                                "examples": [
                                  true
                                ]
                              },
                              "logoUrl": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "URL of payment method logo",
                                "examples": [
                                  "https://www.example.com/logo.png"
                                ]
                              }
                            }
                          }
                        },
                        "wholesaleActive": {
                          "type": "boolean",
                          "description": "flag, whether the wholesale payment methods are permitted",
                          "examples": [
                            true
                          ]
                        },
                        "wholesaleSplitActive": {
                          "type": "boolean",
                          "description": "flag, whether the wholesale payment methods split is enabled. True if wholesale payment methods are permitted and split is active, otherwise false",
                          "examples": [
                            true
                          ]
                        },
                        "defaultRetailMethod": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "default payment method for the retail sale",
                          "examples": [
                            "6df78fa2-05b0-11e9-925b-0800273dc42e"
                          ]
                        },
                        "defaultWholesaleMethod": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "default payment method for wholesale",
                          "examples": [
                            "b57f91bb-e920-11e0-baa3-7dc668b75ca8"
                          ]
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Module \"Sales channel\" is not active.",
                      "instance": "salesChannel"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "sales-channel-not-found",
                      "message": "Sales channel with GUID \"0199bdfd-0979-71fb-85ce-e483c61d391b\" not found.",
                      "instance": "salesChannelGuid"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "sales-channel-guid-invalid",
                      "message": "Sales channel GUID \\\"invalid\\\" is not valid.",
                      "instance": "salesChannelGuid"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Listing of payment methods",
        "operationId": "getListingOfPaymentMethods",
        "description": "The endpoint returns the listing of all available payment methods and\ndetails about their settings. Paging is not used, it always returns all\nmethods at once.",
        "tags": [
          "Payment methods"
        ],
        "parameters": [
          {
            "name": "salesChannelGuid",
            "in": "query",
            "description": "Sales channel GUID. Optional parameter, if not provided, all payment methods will be returned.",
            "example": "0199bdfd-0979-71fb-85ce-e483c61d391b",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "guid",
                        "name",
                        "submethod",
                        "description",
                        "visibility",
                        "wholesale",
                        "logoUrl",
                        "paymentType"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "guid": {
                          "$ref": "#/components/schemas/typeGuid",
                          "description": "payment method GUID"
                        },
                        "name": {
                          "type": "string",
                          "description": "name of payment gateway, as can be seen in e-shop",
                          "examples": [
                            "Cash on delivery"
                          ]
                        },
                        "description": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "additional information about the gateway",
                          "examples": [
                            "This is the test description"
                          ]
                        },
                        "submethod": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "additional identification of payment method",
                          "examples": [
                            "apple-pay"
                          ]
                        },
                        "visibility": {
                          "type": "boolean",
                          "description": "Is the payment method visible?",
                          "examples": [
                            true
                          ]
                        },
                        "wholesale": {
                          "type": "boolean",
                          "description": "Is the payment method available for wholesale?",
                          "examples": [
                            true
                          ]
                        },
                        "logoUrl": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "URL of payment method logo",
                          "examples": [
                            "https://www.example.com/logo.png"
                          ]
                        },
                        "paymentType": {
                          "type": "object",
                          "required": [
                            "id",
                            "code",
                            "name"
                          ],
                          "description": "payment method",
                          "additionalProperties": false,
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "payment method ID",
                              "examples": [
                                2
                              ]
                            },
                            "code": {
                              "type": "string",
                              "description": "identifier of the payment type (payment method operator).",
                              "examples": [
                                "paysec"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "name of the payment type (payment method operator).",
                              "examples": [
                                "PaySec"
                              ]
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Adding the payment methods",
        "operationId": "createPaymentMethod",
        "description": "Adds the new payment method for the specific e-shop.\n\n\n**If you are a Premium client, contact your Account or Onboarding\nmanager and request the creation of a new gateway identifier. New\npayment gateway has to be approved by Shoptet and client needs to be\nfamiliar with the terms of payment in advance.**\n\n\nThe request body includes the mandatory attributes `name` and\n`paymentType`. The other parameters are not mandatory and their default\nvalues will be used:\n\n\n- `description` - `null`\n\n\n- `visibility` - `false`\n\n\n- `wholesale` - `false`\n\n\n- `logo` - `null`\n\n\nSend the logo of the payment gateway as the file content, encoded with\nbase64, in `data.logo.content` request item.\n\n\n**Please note that `name` cannot be longer than 255 characters.**",
        "tags": [
          "Payment methods"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "name",
                      "paymentType"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "name of the payment method",
                        "examples": [
                          "Gateway name"
                        ]
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "description of payment method",
                        "examples": [
                          "Description of payment method"
                        ]
                      },
                      "submethod": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Additional identification of payment method",
                        "examples": [
                          "apple-pay"
                        ]
                      },
                      "paymentType": {
                        "type": "string",
                        "minLength": 1,
                        "description": "type of payment (operator) - identifier assigned by Shoptet",
                        "examples": [
                          "gopay"
                        ]
                      },
                      "visibility": {
                        "type": "boolean",
                        "description": "whether the payment method will be visible",
                        "examples": [
                          true
                        ]
                      },
                      "wholesale": {
                        "type": "boolean",
                        "description": "flag, whether the payment method is available for wholesale customers (`true` = for retail)",
                        "examples": [
                          true
                        ]
                      },
                      "logo": {
                        "type": "object",
                        "required": [
                          "filename",
                          "content"
                        ],
                        "additionalProperties": false,
                        "properties": {
                          "filename": {
                            "type": "string",
                            "pattern": "^[A-Za-z0-9-_.]*\\.[a-z]{3,4}$",
                            "description": "file name",
                            "examples": [
                              "logo_metody.png"
                            ]
                          },
                          "content": {
                            "type": "string",
                            "description": "base64 encoded package",
                            "examples": [
                              "VBORw0KGgoAAAANSUhEUgAAAHIAAAAiAQMAAAC5nR/JAAAABGdBT==="
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/payment-methods/{guid}": {
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Payment method deletion",
        "operationId": "deletePaymentMethod",
        "description": "Deletes payment method by guid. Only payment methods related to your\naddon may be deleted. Private API tokens aren't currently supported.",
        "tags": [
          "Payment methods"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "Payment guid",
            "required": true,
            "example": "93bc0dbe-7481-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/unsubscribed-emails": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "unsubscribedEmails",
                        "paginator"
                      ],
                      "properties": {
                        "unsubscribedEmails": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "email",
                              "unsubscribedAt"
                            ],
                            "properties": {
                              "email": {
                                "type": "string",
                                "description": "Email address",
                                "examples": [
                                  "larry@gmail.com"
                                ]
                              },
                              "unsubscribedAt": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "Date and time when the email was unsubscribed"
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Listing of unsubscribed e-mails",
        "operationId": "getListingOfUnsubscribedEmails",
        "description": "",
        "tags": [
          "Unsubscribed emails"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "date of unsubcription (`unsubscribedAt` in response). Optional.",
            "example": "2023-02-01T17:04:47+0100",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 1000.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "unsubscribedEmail"
                      ],
                      "properties": {
                        "unsubscribedEmail": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "email",
                            "unsubscribedAt"
                          ],
                          "properties": {
                            "email": {
                              "type": "string",
                              "description": "Email address",
                              "examples": [
                                "larry@gmail.com"
                              ]
                            },
                            "unsubscribedAt": {
                              "$ref": "#/components/schemas/typeDateTimeNullable",
                              "description": "Date and time when the email was unsubscribed"
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Unsubscribed e-mail insertion",
        "operationId": "createUnsubscribedEmail",
        "description": "",
        "tags": [
          "Unsubscribed emails"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "email",
                      "unsubscribedAt"
                    ],
                    "properties": {
                      "email": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100,
                        "description": "Email address",
                        "examples": [
                          "larry@gmail.com"
                        ]
                      },
                      "unsubscribedAt": {
                        "$ref": "#/components/schemas/typeDateTimeRequest",
                        "description": "time of unsubscription - Deprecation of required timezone part of datetime, and will be removed in the future"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/mailing-lists": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "mailingLists"
                      ],
                      "properties": {
                        "mailingLists": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "name"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "examples": [
                                  "newsletter-list"
                                ],
                                "description": "Unique code for the mailing list"
                              },
                              "name": {
                                "type": "string",
                                "examples": [
                                  "Newsletter List"
                                ],
                                "description": "Name of the mailing list"
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Listing of e-mail distribution lists",
        "operationId": "getListingOfEmailDistributionLists",
        "description": "The e-mail distribution list named \"newsletters\" is the system one and is always available \n(if the e-shop has the module installed). This e-mail distribution list includes the e-mails \nof all customers who agreed to receiving e-mails.",
        "tags": [
          "E-mail distribution lists"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "mailingList"
                      ],
                      "properties": {
                        "mailingList": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "code",
                            "name"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "examples": [
                                "newsletter-list"
                              ],
                              "description": "Unique code for the mailing list"
                            },
                            "name": {
                              "type": "string",
                              "examples": [
                                "Newsletter List"
                              ],
                              "description": "Name of the mailing list"
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Insertion of e-mail distribution list",
        "operationId": "createEmailDistributionList",
        "description": "",
        "tags": [
          "E-mail distribution lists"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name"
                    ],
                    "properties": {
                      "code": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64,
                        "description": "code of distribution list. If not send, code is created from name. Minimum length is 1 characters, maximum length is 64 characters.(optional)",
                        "examples": [
                          "newsletters-list"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64,
                        "description": "name of distribution list. Minimum length is 1 characters, maximum length is 64 characters.",
                        "examples": [
                          "Newsletters list"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 500.",
            "example": 350,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/mailing-lists/{code}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "emails",
                        "paginator"
                      ],
                      "properties": {
                        "emails": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "email",
                              "added"
                            ],
                            "properties": {
                              "email": {
                                "type": "string",
                                "description": "Email address",
                                "examples": [
                                  "larry@gmail.com"
                                ]
                              },
                              "added": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time of creation"
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Detail of e-mail distribution list",
        "operationId": "getDetailOfEmailDistributionList",
        "description": "This endpoint returns a list of e-mail addresses of the distribution list.\n\n\nUpon initial call, it returns up to 500 e-mail addresses; using the `?itemsPerPage=20` parameter, you can \nrequests any number of records per page, up to 500 items limit.\n\n\nEndpoint supports [Paging](#section/basic-principles/paging).",
        "tags": [
          "E-mail distribution lists"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "e-mail list code",
            "required": true,
            "example": "newsletters",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "emailsInserted",
                        "emailsExisting",
                        "emailsInvalid",
                        "errorMessages"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "emailsInserted": {
                          "type": "array",
                          "description": "E-mails successfully added to the list",
                          "items": {
                            "type": "string"
                          },
                          "examples": [
                            [
                              "john.doe@example.com"
                            ]
                          ]
                        },
                        "emailsExisting": {
                          "type": "array",
                          "description": "E-mails skipped because they were already inserted before",
                          "items": {
                            "type": "string"
                          },
                          "examples": [
                            [
                              "john.doe@example.com"
                            ]
                          ]
                        },
                        "emailsInvalid": {
                          "type": "array",
                          "description": "E-mails skipped because of invalid format",
                          "items": {
                            "type": "string"
                          },
                          "examples": [
                            [
                              "invalid-email"
                            ]
                          ]
                        },
                        "errorMessages": {
                          "type": "array",
                          "description": "Error messages of invalid e-mails",
                          "items": {
                            "type": "string"
                          },
                          "examples": [
                            [
                              "Email \"bad-email\" is not valid. Please check your entries carefully.",
                              "Email \"test@invalid\" has wrong domain or missing MX record."
                            ]
                          ]
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Distribution list e-mails insertion",
        "operationId": "createEmailsDistributionList",
        "description": "This endpoint allows you to add new e-mail addresses to the distribution\nlist identified by its `code`. In the response you will receive\nstructured info about the result of the insertion. In the\n`emailsInserted`\n\nkey there will be a list of e-mails successfully inserted, in the\n`emailsExisting` key, there will be a list of skipped e-mails, because\nthere were already in the list. In the\n\n`emailsInvalid` key, there will be a list of invalid e-mails (wrong\nformat or non-existing MX domain record) and finally in the\n`errorMessages` key, there will be a list of error messages\n\ngenerated for invalid e-mails.",
        "tags": [
          "E-mail distribution lists"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "e-mail list code",
            "required": true,
            "example": "newsletters",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "required": [
                      "emails"
                    ],
                    "properties": {
                      "emails": {
                        "type": "array",
                        "description": "E-mails to add to the list",
                        "items": {
                          "type": "string"
                        },
                        "examples": [
                          "john.doe@example.com"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/mailing-lists/{code}/changes": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "changes",
                        "paginator"
                      ],
                      "properties": {
                        "changes": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "changeType",
                              "changeTime",
                              "email"
                            ],
                            "properties": {
                              "changeType": {
                                "type": "string",
                                "description": "type of event that happened with the entity. Possible values are following: `add`, delete`.",
                                "examples": [
                                  "edit"
                                ]
                              },
                              "changeTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time, when the event happened. ISO 8601 format (`2017-12-12T22:08:01+0100`)."
                              },
                              "email": {
                                "type": "string",
                                "examples": [
                                  "test@test.cz"
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Last changes in distribution list",
        "operationId": "getLastChangesInDistributionList",
        "description": "Endpoint is intended to determine the changes after you load the complete e-mail list and you need to know \nif any of these e-mails were added or removed. Guaranteed history is 30 days, the older data are deleted \nprogressively.\n\n\nEach e-mail on single e-mail list is only mentioned with its last change, within the log. For example, \nif the e-mail is deleted and then added again, the log will only show information about its addition. \nThe e-mail lists are not dependant on each other (removing an e-mail from one list does not cause any \nchange in another list, unless the e-mail was originally included in both).\n\nCan be filtered by changeType = edit/delete parameter.\n\n**For \"created\" action, we use `edit` change type.**\n\n\nEndpoint supports [Paging](#section/basic-principles/paging).",
        "tags": [
          "E-mail distribution lists"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "e-mail list code",
            "required": true,
            "example": "newsletters",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "description": "DateTime from which up to the present we are interested in the changes. + in the time zone",
            "required": true,
            "example": "2018-01-01T01:01:01+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeType",
            "in": "query",
            "description": "Returning only edit or delete type changed records",
            "required": false,
            "example": "edit",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 500.",
            "example": 400,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/discount-coupons": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "coupons",
                        "paginator"
                      ],
                      "properties": {
                        "coupons": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/discountCoupon"
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of discount coupons",
        "operationId": "getListOfDiscountCoupons",
        "description": "List of discount coupons within the e-shop. The list is paged at 1000 coupons. \nThe discount coupons can be filtered according to the date of creation, validity, \nrepeatability of usage or their template.\n\n\nIf absolute price is used, the amount is interpreted with the default\nVAT rate of the eshop (in administration:\n\n\nSettings » Basic Settings » Tax Classes). It can be retrieved using\nendpoint Eshop Info, array `taxClasses`.\n\n\nThe same is valid for minimum price.",
        "tags": [
          "Discount coupons"
        ],
        "parameters": [
          {
            "name": "template",
            "in": "query",
            "description": "template GUID",
            "example": "01b39ad8-8686-11e9-968c-08002774f818",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "date and time of coupon creation - lower limit",
            "example": "2018-05-28T14:17:00+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "date and time of coupon creation - upper limit",
            "example": "2028-05-28T14:17:00+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reusable",
            "in": "query",
            "description": "is the discount coupon reusable?",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "validFrom",
            "in": "query",
            "description": "date of discount coupon validity - lower limit",
            "example": "2018-05-28",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validTo",
            "in": "query",
            "description": "date of discount coupon validity - upper limit",
            "example": "2028-05-28",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 1000.",
            "example": 888,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "coupons"
                      ],
                      "properties": {
                        "coupons": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "creationTime",
                              "discountType",
                              "amount",
                              "ratio",
                              "minPrice",
                              "currency",
                              "template",
                              "shippingPrice",
                              "validFrom",
                              "validTo",
                              "reusable",
                              "usedCount",
                              "remark"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "code of discount coupon",
                                "examples": [
                                  "DC14585431"
                                ]
                              },
                              "creationTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time, when the discount coupon was created"
                              },
                              "discountType": {
                                "type": "string",
                                "enum": [
                                  "percentual",
                                  "fixed"
                                ],
                                "description": "type of discount. Percentual (`percentual`) or absolute discount (`fixed`)",
                                "examples": [
                                  "percentual"
                                ]
                              },
                              "amount": {
                                "$ref": "#/components/schemas/typePriceNullable",
                                "description": "amount of absolute discount (default eshop VAT rate is used)"
                              },
                              "ratio": {
                                "oneOf": [
                                  {
                                    "$ref": "#/components/schemas/typePriceRatio"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "description": "amount of percentual discount"
                              },
                              "minPrice": {
                                "$ref": "#/components/schemas/typePriceNullable",
                                "description": "minimum price of order (default eshop VAT rate is used)"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/typeCurrencyCodeNullable",
                                "description": "currency of fixed discount."
                              },
                              "template": {
                                "$ref": "#/components/schemas/typeGuid",
                                "description": "template used for the discount coupon creation."
                              },
                              "shippingPrice": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "enum": [
                                  "cart",
                                  "free",
                                  "beforeDiscount",
                                  null
                                ],
                                "description": "how the transport prices are calculated: according to the cart before discounts (beforeDiscount), according to the displayed value of the cart (cart), or free (free)",
                                "examples": [
                                  "cart"
                                ]
                              },
                              "validFrom": {
                                "$ref": "#/components/schemas/typeDateNullable",
                                "description": "starting date of coupon validity"
                              },
                              "validTo": {
                                "$ref": "#/components/schemas/typeDateNullable",
                                "description": "ending date of coupon validity"
                              },
                              "reusable": {
                                "type": "boolean",
                                "description": "Is the discount coupon reusable?",
                                "examples": [
                                  true
                                ]
                              },
                              "usedCount": {
                                "type": "integer",
                                "description": "number of times the discount coupon has been used",
                                "examples": [
                                  0
                                ]
                              },
                              "remark": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "remark for the discount coupon.",
                                "examples": [
                                  "Note: This is a test discount coupon"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Discount coupons insertion",
        "operationId": "createDiscountCoupons",
        "description": "This endpoint allows you to insert specific discount coupons into\nShoptet. Request is sent in JSON format in its body.\n\n\nIt is good to compare count of requested coupons with count of cooupons\nin response as it can be different. It is because of request validation,\nwhere it ignores invalid coupons.",
        "tags": [
          "Discount coupons"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "coupons"
                    ],
                    "properties": {
                      "coupons": {
                        "type": "array",
                        "description": "Discount coupons. Minimal 1 item, maximal 999 items.",
                        "minItems": 1,
                        "maxItems": 999,
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "discountType",
                            "template",
                            "shippingPrice",
                            "reusable"
                          ],
                          "properties": {
                            "code": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "minLength": 1,
                              "maxLength": 16,
                              "description": "Code of discount coupon.",
                              "examples": [
                                "DISCOUNT10"
                              ]
                            },
                            "discountType": {
                              "type": "string",
                              "enum": [
                                "percentual",
                                "fixed"
                              ],
                              "description": "Type of discount. Percentual (percentual) or fixed discount (fixed)",
                              "examples": [
                                "percentual"
                              ]
                            },
                            "amount": {
                              "$ref": "#/components/schemas/typePriceNullable",
                              "description": "Amount of fixed discount (default eshop VAT rate is used). This items needs to be omitted when `discountType` is set to `percentual`",
                              "examples": [
                                "100.0"
                              ]
                            },
                            "ratio": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "pattern": "[0-1]\\.[0-9]{4}$",
                              "description": "Amount of percentual discount. This items needs to be omitted when `discountType` is set to `fixed`. 4 decimal places accuracy, from `0.0000` (0% discount) to `1.0000` (100% discount).",
                              "examples": [
                                "0.1000"
                              ]
                            },
                            "minPrice": {
                              "$ref": "#/components/schemas/typePriceNullable",
                              "description": "Minimum price of order (default eshop VAT rate is used)",
                              "examples": [
                                "100.0"
                              ]
                            },
                            "currency": {
                              "$ref": "#/components/schemas/typeCurrencyCodeNullable",
                              "description": "Currency of fixed discount. It can be null only when `discountType` is set to `percentual` and `minPrice` is set to null",
                              "examples": [
                                "CZK"
                              ]
                            },
                            "template": {
                              "$ref": "#/components/schemas/typeGuid",
                              "description": "GUID of discount coupon template"
                            },
                            "shippingPrice": {
                              "type": "string",
                              "enum": [
                                "cart",
                                "free",
                                "beforeDiscount"
                              ],
                              "description": "How the transport prices are calculated: according to the cart before discounts (beforeDiscount), according to the displayed value of the cart (cart), or free (free)",
                              "examples": [
                                "cart"
                              ]
                            },
                            "validFrom": {
                              "$ref": "#/components/schemas/typeDateNullable",
                              "description": "Starting date of coupon validity"
                            },
                            "validTo": {
                              "$ref": "#/components/schemas/typeDateNullable",
                              "description": "Ending date of coupon validity"
                            },
                            "reusable": {
                              "type": "boolean",
                              "description": "Is the discount coupon reusable?",
                              "examples": [
                                true
                              ]
                            },
                            "remark": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Discount coupon note",
                              "examples": [
                                "This is a discount coupon for the first purchase."
                              ]
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "errorCode": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          },
                          "instance": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "discount-coupon-not-found",
                      "message": "Unable to delete discount coupon.",
                      "instance": "some-coupon-code"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Bulk discount coupon deletion",
        "operationId": "bulkDeleteDiscountCoupons",
        "description": "Bulk deletion of discount coupons as per list of `codes`. If successful, returns\nthe code 200.\n\nIf some discount coupons does not exist within the e-shop, a 422 code is\nreturned.",
        "tags": [
          "Discount coupons"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "couponCodes"
                    ],
                    "properties": {
                      "couponCodes": {
                        "type": "array",
                        "description": "Discount coupons. Minimal 1 item, maximal 200 items.",
                        "minItems": 1,
                        "maxItems": 200,
                        "items": {
                          "type": "string",
                          "examples": [
                            "test-code-123",
                            "test-code-456"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/discount-coupons/snapshot": {
      "get": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "List of all discount coupons",
        "operationId": "getListOfAllDiscountCoupons",
        "description": "Using this endpoint, you can get list of all discount coupons with detailed\ninfo of each discount coupon asynchronously. See how [Asynchronous\nrequests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\n\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each\ndiscount coupon taking one line of output file.\n\n\n\nOne discount coupon in response has the same format as one discount coupon\nitem form list response. See [Discount coupon snapshot schema](/shoptet-api/openapi/snapshot/discountcouponsnapshot) for more details.\n\n\n\nResult file is compressed using GZIP.",
        "tags": [
          "Discount coupons"
        ],
        "parameters": [
          {
            "name": "codeFrom",
            "in": "query",
            "description": "Export discount coupons with code after given value",
            "example": "0000000006",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codeTo",
            "in": "query",
            "description": "Export discount coupons with code befor given value",
            "example": "0000000006",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "Export discount coupons created after date",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "Export discount coupons created before date",
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "discountType",
            "in": "query",
            "description": "Export discount coupons with given discount type (percentual, fixed)",
            "example": "free",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validFrom",
            "in": "query",
            "description": "Export discount coupons valid after date",
            "example": "2014-09-05",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validTo",
            "in": "query",
            "description": "Export discount coupons valid before date",
            "example": "2019-09-05",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reusable",
            "in": "query",
            "description": "Is the discount coupon reusable?",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "template",
            "in": "query",
            "description": "GUID of discount coupon template",
            "required": true,
            "example": "01b39ad8-8686-11e9-968c-08002774f818",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "description": "Currency of fixed discount",
            "example": "EUR",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "shippingPrice",
            "in": "query",
            "description": "How the transport prices are calculated: according to the cart\nbefore discounts (beforeDiscount), according to the displayed value\nof the cart (cart), or free (free)",
            "required": true,
            "example": "cart",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-snapshot-endpoint": true,
        "x-shoptet-response-ref": "#/definitions/discountCouponSnapshot"
      }
    },
    "/api/discount-coupons/{code}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "coupon"
                      ],
                      "properties": {
                        "coupon": {
                          "$ref": "#/components/schemas/discountCoupon"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "discount-coupon-not-found",
                      "message": "Discount coupon with code \"AB12345\" was not found.",
                      "instance": "AB12345"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Detail of discount coupon",
        "operationId": "getDetailOfDiscountCoupon",
        "description": "Detail of discount coupon within the e-shop.",
        "tags": [
          "Discount coupons"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "discount coupon code",
            "required": true,
            "example": "ABCDEF12",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "discount-coupon-not-found",
                      "message": "Discount coupon with code \"AB12345\" was not found.",
                      "instance": "AB12345"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Discount coupon deletion",
        "operationId": "deleteDiscountCoupon",
        "description": "Deletes discount coupon as per entered `code`. If successful, returns\nthe code 200.\n\nIf the discount coupon does not exist within the e-shop, a 404 code is\nreturned.",
        "tags": [
          "Discount coupons"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "discount coupon code",
            "required": true,
            "example": "ABCDEF12",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/discount-coupons/set": {
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "coupons"
                      ],
                      "properties": {
                        "coupons": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "creationTime",
                              "discountType",
                              "amount",
                              "ratio",
                              "minPrice",
                              "currency",
                              "template",
                              "shippingPrice",
                              "validFrom",
                              "validTo",
                              "reusable",
                              "usedCount",
                              "remark"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "code of discount coupon",
                                "examples": [
                                  "DC14585431"
                                ]
                              },
                              "creationTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "date and time, when the discount coupon was created"
                              },
                              "discountType": {
                                "type": "string",
                                "enum": [
                                  "percentual",
                                  "fixed"
                                ],
                                "description": "type of discount. Percentual (`percentual`) or absolute discount (`fixed`)",
                                "examples": [
                                  "percentual"
                                ]
                              },
                              "amount": {
                                "$ref": "#/components/schemas/typePriceNullable",
                                "description": "amount of absolute discount (default eshop VAT rate is used)"
                              },
                              "ratio": {
                                "oneOf": [
                                  {
                                    "$ref": "#/components/schemas/typePriceRatio"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "description": "amount of percentual discount"
                              },
                              "minPrice": {
                                "$ref": "#/components/schemas/typePriceNullable",
                                "description": "minimum price of order (default eshop VAT rate is used)"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/typeCurrencyCodeNullable",
                                "description": "currency of fixed discount."
                              },
                              "template": {
                                "$ref": "#/components/schemas/typeGuid",
                                "description": "template used for the discount coupon creation."
                              },
                              "shippingPrice": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "enum": [
                                  "cart",
                                  "free",
                                  "beforeDiscount",
                                  null
                                ],
                                "description": "how the transport prices are calculated: according to the cart before discounts (beforeDiscount), according to the displayed value of the cart (cart), or free (free)",
                                "examples": [
                                  "cart"
                                ]
                              },
                              "validFrom": {
                                "$ref": "#/components/schemas/typeDateNullable",
                                "description": "starting date of coupon validity"
                              },
                              "validTo": {
                                "$ref": "#/components/schemas/typeDateNullable",
                                "description": "ending date of coupon validity"
                              },
                              "reusable": {
                                "type": "boolean",
                                "description": "Is the discount coupon reusable?",
                                "examples": [
                                  true
                                ]
                              },
                              "usedCount": {
                                "type": "integer",
                                "description": "number of times the discount coupon has been used",
                                "examples": [
                                  0
                                ]
                              },
                              "remark": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "remark for the discount coupon.",
                                "examples": [
                                  "Note: This is a test discount coupon"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Discount coupons set creation",
        "operationId": "createDiscountCouponsSet",
        "description": "This endpoint allows you to create set of discount coupons for Shoptet.It is good to compare count of requested\ncoupons with count of cooupons in response as it can be different. It is because of request validation, \nwhere it ignores invalid coupons.",
        "tags": [
          "Discount coupons"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "count",
                      "discountType",
                      "template",
                      "shippingPrice",
                      "reusable"
                    ],
                    "properties": {
                      "count": {
                        "type": "integer",
                        "minimum": 2,
                        "maximum": 999,
                        "examples": [
                          2
                        ]
                      },
                      "discountType": {
                        "type": "string",
                        "enum": [
                          "percentual",
                          "fixed"
                        ],
                        "description": "Type of discount. Percentual (percentual) or fixed discount (fixed)",
                        "examples": [
                          "percentual"
                        ]
                      },
                      "amount": {
                        "$ref": "#/components/schemas/typePriceNullable",
                        "description": "Amount of fixed discount (default eshop VAT rate is used). This items needs to be omitted when `discountType` is set to `percentual`",
                        "examples": [
                          "100.0"
                        ]
                      },
                      "ratio": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "pattern": "[0-1]\\.[0-9]{4}$",
                        "description": "Amount of percentual discount. This items needs to be omitted when `discountType` is set to `fixed`. 4 decimal places accuracy, from `0.0000` (0% discount) to `1.0000` (100% discount).",
                        "examples": [
                          "0.1000"
                        ]
                      },
                      "minPrice": {
                        "$ref": "#/components/schemas/typePriceNullable",
                        "description": "Minimum price of order (default eshop VAT rate is used)",
                        "examples": [
                          "100.0"
                        ]
                      },
                      "currency": {
                        "$ref": "#/components/schemas/typeCurrencyCodeNullable",
                        "description": "Currency of fixed discount. It can be null only when `discountType` is set to `percentual` and `minPrice` is set to null",
                        "examples": [
                          "CZK"
                        ]
                      },
                      "template": {
                        "$ref": "#/components/schemas/typeGuid",
                        "description": "GUID of discount coupon template"
                      },
                      "shippingPrice": {
                        "type": "string",
                        "enum": [
                          "cart",
                          "free",
                          "beforeDiscount"
                        ],
                        "description": "How the transport prices are calculated: according to the cart before discounts (beforeDiscount), according to the displayed value of the cart (cart), or free (free)",
                        "examples": [
                          "cart"
                        ]
                      },
                      "validFrom": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "Starting date of coupon validity"
                      },
                      "validTo": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "Ending date of coupon validity"
                      },
                      "reusable": {
                        "type": "boolean",
                        "description": "Is the discount coupon reusable?",
                        "examples": [
                          true
                        ]
                      },
                      "remark": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Discount coupon note",
                        "examples": [
                          "This is a discount coupon for the first purchase."
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/discount-coupons/use/{code}": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "order-not-found",
                      "message": "Order \"2015000010\" was not found.",
                      "instance": "2015000010"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "discount-coupon-already-used",
                      "message": "Discount coupon with code \"ABCDEF12\" was already used.",
                      "instance": "ABCDEF12"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Discount coupons usage update",
        "operationId": "updateDiscountCouponsUsage",
        "description": "This endpoint allows you to set usage of discount coupon.",
        "tags": [
          "Discount coupons"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "discount coupon code",
            "required": true,
            "example": "89170026",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "suppressOrderChecking",
            "in": "query",
            "description": "suppress checking if order exists.",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "orderCode"
                    ],
                    "properties": {
                      "orderCode": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Order code",
                        "examples": [
                          "2015000010"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/discount-coupons/templates": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "couponTemplates"
                      ],
                      "properties": {
                        "couponTemplates": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "guid",
                              "title",
                              "customerGroup",
                              "categories",
                              "brands",
                              "productFlags"
                            ],
                            "properties": {
                              "guid": {
                                "$ref": "#/components/schemas/typeGuid",
                                "description": "discount coupons template GUID"
                              },
                              "title": {
                                "type": "string",
                                "description": "name of discount coupons template",
                                "examples": [
                                  "Luxury goods"
                                ]
                              },
                              "customerGroup": {
                                "type": [
                                  "object",
                                  "null"
                                ],
                                "required": [
                                  "id",
                                  "name"
                                ],
                                "description": "group of users for whom the discount coupons shall be available.",
                                "properties": {
                                  "id": {
                                    "type": "integer",
                                    "description": "customer group ID",
                                    "examples": [
                                      1
                                    ]
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "customer group name",
                                    "examples": [
                                      "Velkoobchodní odběratel"
                                    ]
                                  }
                                }
                              },
                              "categories": {
                                "type": [
                                  "array",
                                  "null"
                                ],
                                "description": "list of categories, for which the discount coupons shall be available.",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "required": [
                                    "guid",
                                    "name"
                                  ],
                                  "properties": {
                                    "guid": {
                                      "$ref": "#/components/schemas/typeGuid"
                                    },
                                    "name": {
                                      "type": "string",
                                      "examples": [
                                        "Watch"
                                      ]
                                    }
                                  }
                                }
                              },
                              "brands": {
                                "type": [
                                  "array",
                                  "null"
                                ],
                                "description": "brands, for which the discount can be used.",
                                "items": {
                                  "$ref": "#/components/schemas/brandNamed"
                                }
                              },
                              "productFlags": {
                                "type": [
                                  "array",
                                  "null"
                                ],
                                "description": "discount parameters.",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "required": [
                                    "code",
                                    "title",
                                    "condition"
                                  ],
                                  "properties": {
                                    "code": {
                                      "type": "string",
                                      "description": "parameter code",
                                      "examples": [
                                        "akademiks"
                                      ]
                                    },
                                    "title": {
                                      "type": "string",
                                      "description": "parameter name",
                                      "examples": [
                                        "Akademiks"
                                      ]
                                    },
                                    "condition": {
                                      "type": "string",
                                      "description": "`required` or `forbidden`",
                                      "examples": [
                                        "required"
                                      ]
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Templates of discount coupons",
        "operationId": "getTemplatesOfDiscountCoupons",
        "description": "Templates of discount coupons within the e-shop. All templates are listed at a time. Without possibility of \npaging or filtering.",
        "tags": [
          "Discount coupons"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "guid",
                        "title",
                        "customerGroup",
                        "categories",
                        "brands",
                        "productFlags"
                      ],
                      "properties": {
                        "guid": {
                          "$ref": "#/components/schemas/typeGuid",
                          "description": "discount coupons template GUID"
                        },
                        "title": {
                          "type": "string",
                          "description": "name of discount coupons template",
                          "examples": [
                            "Luxury goods"
                          ]
                        },
                        "customerGroup": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "required": [
                            "id",
                            "name"
                          ],
                          "description": "group of users for whom the discount coupons shall be available.",
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "customer group ID",
                              "examples": [
                                1
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "customer group name",
                              "examples": [
                                "Velkoobchodní odběratel"
                              ]
                            }
                          }
                        },
                        "categories": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "description": "list of categories, for which the discount coupons shall be available.",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "guid",
                              "name"
                            ],
                            "properties": {
                              "guid": {
                                "$ref": "#/components/schemas/typeGuid"
                              },
                              "name": {
                                "type": "string",
                                "examples": [
                                  "Watch"
                                ]
                              }
                            }
                          }
                        },
                        "brands": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "description": "brands, for which the discount can be used.",
                          "items": {
                            "$ref": "#/components/schemas/brandNamed"
                          }
                        },
                        "productFlags": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "description": "discount parameters.",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "code",
                              "title",
                              "condition"
                            ],
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "parameter code",
                                "examples": [
                                  "akademiks"
                                ]
                              },
                              "title": {
                                "type": "string",
                                "description": "parameter name",
                                "examples": [
                                  "Akademiks"
                                ]
                              },
                              "condition": {
                                "type": "string",
                                "description": "`required` or `forbidden`",
                                "examples": [
                                  "required"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Discount coupons template insertion",
        "operationId": "createDiscountCouponsTemplate",
        "description": "",
        "tags": [
          "Discount coupons"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "title"
                    ],
                    "properties": {
                      "guid": {
                        "$ref": "#/components/schemas/typeGuidNullable",
                        "description": "Product GUID. Must be unique if set. Generated automatically if not set."
                      },
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64,
                        "description": "Product name. MinLength 1 character, MaxLength 64 characters. Mandatory.",
                        "examples": [
                          "product"
                        ]
                      },
                      "customerGroupId": {
                        "type": "integer",
                        "description": "Group must exists if set.",
                        "examples": [
                          1
                        ]
                      },
                      "categoryGuids": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "$ref": "#/components/schemas/typeGuid"
                        }
                      },
                      "brands": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "type": "string",
                          "examples": [
                            "citizen"
                          ]
                        }
                      },
                      "productFlags": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "code",
                            "condition"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "parameter code",
                              "examples": [
                                "akademiks"
                              ]
                            },
                            "condition": {
                              "type": "string",
                              "enum": [
                                "required",
                                "forbidden"
                              ],
                              "description": "`required` or `forbidden`",
                              "examples": [
                                "required"
                              ]
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/discount-coupons/templates/{guid}": {
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "discount-coupon-template-not-found",
                      "message": "Discount coupon template\n\"bffa3b98-d968-11e0-b04f-57a43310b768\" was not found.",
                      "instance": "bffa3b98-d968-11e0-b04f-57a43310b768"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "discount-coupon-template-used",
                      "message": "Discount coupon template\n\"bffa3b98-d968-11e0-b04f-57a43310b768\" cannot be deleted\nbecause it is used.",
                      "instance": "bffa3b98-d968-11e0-b04f-57a43310b768"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Discount coupons template deletion",
        "operationId": "deleteDiscountCouponsTemplate",
        "description": "Deletes discount coupon template as per entered `guid`. If successful,\nreturns the code 200.\n\nIf the discount coupon template does not exist within the e-shop, a 404\ncode is returned.\n\nIf the discount coupon template cannot be deleted, because it is used as\ntemplate of discount coupon, a 409 code is returned.",
        "tags": [
          "Discount coupons"
        ],
        "parameters": [
          {
            "name": "guid",
            "in": "path",
            "description": "discount coupon template guid",
            "required": true,
            "example": "b6e09a7a-6cb5-11eb-89aa-08002746ad91",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/xy-discounts": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "discounts",
                        "paginator"
                      ],
                      "properties": {
                        "discounts": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "id",
                              "title",
                              "validFrom",
                              "validTo",
                              "customerGroups",
                              "priority",
                              "includeUnregisteredCustomers"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "discount ID",
                                "examples": [
                                  1
                                ]
                              },
                              "title": {
                                "type": "string",
                                "description": "discount title",
                                "examples": [
                                  "18 + 4 free"
                                ]
                              },
                              "validFrom": {
                                "$ref": "#/components/schemas/typeDateNullable",
                                "description": "date of discount validity from",
                                "examples": [
                                  "2014-11-19"
                                ]
                              },
                              "validTo": {
                                "$ref": "#/components/schemas/typeDateNullable",
                                "description": "date of discount validity to",
                                "examples": [
                                  "2014-12-19"
                                ]
                              },
                              "customerGroups": {
                                "type": [
                                  "array",
                                  "null"
                                ],
                                "description": "customer groups connected to discount",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "required": [
                                    "code",
                                    "name"
                                  ],
                                  "properties": {
                                    "code": {
                                      "type": "string",
                                      "description": "customer group code",
                                      "examples": [
                                        "retail"
                                      ]
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "customer group name",
                                      "examples": [
                                        "Retail customer"
                                      ]
                                    }
                                  }
                                }
                              },
                              "includeUnregisteredCustomers": {
                                "type": "boolean",
                                "description": "defines if discount is valid for unregistered customers, default value is `false`",
                                "examples": [
                                  true
                                ]
                              },
                              "priority": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "priority of the discount",
                                "examples": [
                                  1
                                ]
                              },
                              "usageCount": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "number of how many times can be discount used",
                                "examples": [
                                  1000
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of X + Y discounts",
        "operationId": "getListOfXYDiscounts",
        "description": "",
        "tags": [
          "XY discounts"
        ],
        "parameters": [
          {
            "name": "customerGroupCode",
            "in": "query",
            "description": "customer group code, possible values can be get by customer group\nlist endpoint",
            "example": "retail",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validFrom",
            "in": "query",
            "description": "date of discount validity - lower limit",
            "example": "2028-05-28",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validTo",
            "in": "query",
            "description": "date of discount validity - upper limit",
            "example": "2028-05-28",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultItemsPerPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "discount"
                      ],
                      "properties": {
                        "discount": {
                          "$ref": "#/components/schemas/xyDiscount"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "X + Y discount insertion",
        "operationId": "createXYDiscount",
        "description": "",
        "tags": [
          "XY discounts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "title",
                      "xAmount",
                      "yAmount",
                      "xTargeting",
                      "yTargeting"
                    ],
                    "properties": {
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "description": "discount title",
                        "examples": [
                          "18 + 4 free"
                        ]
                      },
                      "validFrom": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "date of discount validity from",
                        "examples": [
                          "2014-11-19"
                        ]
                      },
                      "validTo": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "date of discount validity to",
                        "examples": [
                          "2014-12-19"
                        ]
                      },
                      "customerGroupCodes": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "minItems": 1,
                        "description": "customer groups connected to discount",
                        "items": {
                          "type": "string",
                          "examples": [
                            "retail"
                          ]
                        }
                      },
                      "includeUnregisteredCustomers": {
                        "type": "boolean",
                        "description": "defines if discount is valid for unregistered customers, default value is `false`.",
                        "examples": [
                          true
                        ]
                      },
                      "xAmount": {
                        "$ref": "#/components/schemas/typePositiveAmount",
                        "description": "discount amount in X axis",
                        "examples": [
                          "3.000"
                        ]
                      },
                      "yAmount": {
                        "$ref": "#/components/schemas/typePositiveAmount",
                        "description": "amount of products get by discount",
                        "examples": [
                          "1.000"
                        ]
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "discount description",
                        "examples": [
                          "Get 1 product for free when you buy 3 products!"
                        ]
                      },
                      "termsAndConditionsUrl": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "URL to terms and conditions",
                        "examples": [
                          "http://www.example.com/terms-and-conditions"
                        ]
                      },
                      "displayFlag": {
                        "type": "boolean",
                        "description": "whether or not to display flag. If not set, default value is `true`.",
                        "examples": [
                          true
                        ]
                      },
                      "flagColor": {
                        "$ref": "#/components/schemas/typeColor",
                        "description": "color of flag"
                      },
                      "displayBanner": {
                        "type": "boolean",
                        "description": "whether or not to display banner. If not set, default value is `true`.",
                        "examples": [
                          true
                        ]
                      },
                      "bannerColor": {
                        "$ref": "#/components/schemas/typeColor",
                        "description": "color of banner"
                      },
                      "usageCount": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "minimum": 1,
                        "description": "number of how many times can be discount used.",
                        "examples": [
                          1000
                        ]
                      },
                      "sortBefore": {
                        "type": "integer",
                        "description": "id of xy discount before which you want to move the xy discount from the request. Not possible to use with `sortAfter`.",
                        "examples": [
                          1
                        ]
                      },
                      "sortAfter": {
                        "type": "integer",
                        "description": "id of xy discount after which you want to move the  xy discount from the request. Not possible to use with `sortBefore`.",
                        "examples": [
                          1
                        ]
                      },
                      "xTargeting": {
                        "$ref": "#/components/schemas/xyDiscountTargetingPostRequest",
                        "description": "definition of products needed to get discount"
                      },
                      "yTargeting": {
                        "$ref": "#/components/schemas/xyDiscountTargetingPostRequest",
                        "description": "definition of products get by discount"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/xy-discounts/{id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "discount"
                      ],
                      "properties": {
                        "discount": {
                          "$ref": "#/components/schemas/xyDiscount"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Detail of X + Y discounts",
        "operationId": "getDetailOfXYDiscounts",
        "description": "",
        "tags": [
          "XY discounts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "discount ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "discount"
                      ],
                      "properties": {
                        "discount": {
                          "$ref": "#/components/schemas/xyDiscount"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "xy-discount-not-found",
                      "message": "X + Y discount with ID \"1\" not found.",
                      "instance": "1"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "X + Y discount update",
        "operationId": "updateXYDiscount",
        "description": "",
        "tags": [
          "XY discounts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "discount ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "description": "discount title",
                        "examples": [
                          "18 + 4 free"
                        ]
                      },
                      "validFrom": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "date of discount validity from",
                        "examples": [
                          "2014-11-19"
                        ]
                      },
                      "validTo": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "date of discount validity to",
                        "examples": [
                          "2014-12-19"
                        ]
                      },
                      "customerGroupCodes": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "description": "customer groups connected to discount",
                        "minItems": 1,
                        "items": {
                          "type": "string",
                          "examples": [
                            "retail"
                          ]
                        }
                      },
                      "includeUnregisteredCustomers": {
                        "type": "boolean",
                        "description": "defines if discount is valid for unregistered customers, default value is `false`.",
                        "examples": [
                          true
                        ]
                      },
                      "xAmount": {
                        "$ref": "#/components/schemas/typePositiveAmount",
                        "description": "discount amount in X axis",
                        "examples": [
                          "3.000"
                        ]
                      },
                      "yAmount": {
                        "$ref": "#/components/schemas/typePositiveAmount",
                        "description": "amount of products get by discount",
                        "examples": [
                          "1.000"
                        ]
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "discount description",
                        "examples": [
                          "Get 1 product for free when you buy 3 products!"
                        ]
                      },
                      "termsAndConditionsUrl": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "URL to terms and conditions",
                        "examples": [
                          "http://www.example.com/terms-and-conditions"
                        ]
                      },
                      "displayFlag": {
                        "type": "boolean",
                        "description": "whether or not to display flag. If not set, default value is `true`.",
                        "examples": [
                          true
                        ]
                      },
                      "flagColor": {
                        "$ref": "#/components/schemas/typeColor",
                        "description": "color of flag"
                      },
                      "displayBanner": {
                        "type": "boolean",
                        "description": "whether or not to display banner. If not set, default value is `true`.",
                        "examples": [
                          true
                        ]
                      },
                      "bannerColor": {
                        "$ref": "#/components/schemas/typeColor",
                        "description": "color of banner"
                      },
                      "usageCount": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "minimum": 1,
                        "description": "number of how many times can be discount used.",
                        "examples": [
                          1000
                        ]
                      },
                      "sortBefore": {
                        "type": "integer",
                        "description": "id of xy discount before which you want to move the xy discount from the request. Not possible to use with `sortAfter`.",
                        "examples": [
                          1
                        ]
                      },
                      "sortAfter": {
                        "type": "integer",
                        "description": "id of xy discount after which you want to move the  xy discount from the request. Not possible to use with `sortBefore`.",
                        "examples": [
                          1
                        ]
                      },
                      "xTargeting": {
                        "$ref": "#/components/schemas/xyDiscountTargetingPostRequest",
                        "description": "definition of products needed to get discount"
                      },
                      "yTargeting": {
                        "$ref": "#/components/schemas/xyDiscountTargetingPostRequest",
                        "description": "definition of products get by discount"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "xy-discount-not-found",
                      "message": "X + Y discount with ID \"1\" not found.",
                      "instance": "1"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Delete of X + Y discount",
        "operationId": "deleteXYDiscount",
        "description": "",
        "tags": [
          "XY discounts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "discount ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/xy-discounts/settings": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "combineWithLoyaltyDiscounts",
                        "combineWithVolumeDiscounts",
                        "combineWithQuantityDiscounts",
                        "enableMultipleDiscounts",
                        "categoryTargeting"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "combineWithLoyaltyDiscounts": {
                          "type": "boolean",
                          "description": "X+Y Discount can be combined with loyalty discount",
                          "examples": [
                            true
                          ]
                        },
                        "combineWithVolumeDiscounts": {
                          "type": "boolean",
                          "description": "X+Y Discount can be combined with volume discount",
                          "examples": [
                            true
                          ]
                        },
                        "combineWithQuantityDiscounts": {
                          "type": "boolean",
                          "description": "X+Y Discount can be combined with quantity discount",
                          "examples": [
                            true
                          ]
                        },
                        "enableMultipleDiscounts": {
                          "type": "boolean",
                          "description": "Multiple X+Y discounts can be applied at once",
                          "examples": [
                            true
                          ]
                        },
                        "categoryTargeting": {
                          "enum": [
                            "all-categories",
                            "primary-category"
                          ],
                          "description": "Enum, discount category targeting",
                          "examples": [
                            "all-categories"
                          ]
                        },
                        "enableInCashdesk": {
                          "type": "boolean",
                          "description": "Enable X+Y discounts in cashdesk, please note this option is not present for HU eshops",
                          "examples": [
                            true
                          ]
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "X + Y discounts settings",
        "operationId": "getXYDiscountsSettings",
        "description": "Lists & updates settings of X + Y discounts.\nPlease note, that `enableInCashdesk` setting is not supported on HU projects.",
        "tags": [
          "XY discounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "combineWithLoyaltyDiscounts",
                        "combineWithVolumeDiscounts",
                        "combineWithQuantityDiscounts",
                        "enableMultipleDiscounts",
                        "categoryTargeting"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "combineWithLoyaltyDiscounts": {
                          "type": "boolean",
                          "description": "X+Y Discount can be combined with loyalty discount",
                          "examples": [
                            true
                          ]
                        },
                        "combineWithVolumeDiscounts": {
                          "type": "boolean",
                          "description": "X+Y Discount can be combined with volume discount",
                          "examples": [
                            true
                          ]
                        },
                        "combineWithQuantityDiscounts": {
                          "type": "boolean",
                          "description": "X+Y Discount can be combined with quantity discount",
                          "examples": [
                            true
                          ]
                        },
                        "enableMultipleDiscounts": {
                          "type": "boolean",
                          "description": "Multiple X+Y discounts can be applied at once",
                          "examples": [
                            true
                          ]
                        },
                        "categoryTargeting": {
                          "enum": [
                            "all-categories",
                            "primary-category"
                          ],
                          "description": "Enum, discount category targeting",
                          "examples": [
                            "all-categories"
                          ]
                        },
                        "enableInCashdesk": {
                          "type": "boolean",
                          "description": "Enable X+Y discounts in cashdesk, please note this option is not present for HU eshops",
                          "examples": [
                            true
                          ]
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Does not have a value in the enumeration\n[\"all-categories\",\"primary-category\",null]",
                      "instance": "data.categoryTargeting"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "example": {
                    "data": null,
                    "errors": [
                      {
                        "errorCode": "invalid-request-data",
                        "message": "Does not have a value in the enumeration\n[\"all-categories\",\"primary-category\",null]",
                        "instance": "data.categoryTargeting"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "summary": "X + Y discount settings update",
        "operationId": "updateXYDiscountSettings",
        "description": "Updates settings for X + Y discounts. All settings are optional, but at\nleast one should be present.\n\nPlease note, that updating \"enableInCashdesk\" setting on HU projects\nwill throw an exception.\n\n\nIf you're targeting a discount to a specific category, right now, we\nonly include products that have\n\nthat category as their primary one. If you want to include all products\nin that category in the discount,\n\nnot just the ones in the primary category, please use\n`categoryTargeting` attribute with `all-categories` value.",
        "tags": [
          "XY discounts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "combineWithLoyaltyDiscounts": {
                        "type": "boolean",
                        "description": "X+Y Discount can be combined with loyalty discount",
                        "examples": [
                          true
                        ]
                      },
                      "combineWithVolumeDiscounts": {
                        "type": "boolean",
                        "description": "X+Y Discount can be combined with volume discount",
                        "examples": [
                          true
                        ]
                      },
                      "combineWithQuantityDiscounts": {
                        "type": "boolean",
                        "description": "X+Y Discount can be combined with quantity discount",
                        "examples": [
                          true
                        ]
                      },
                      "enableMultipleDiscounts": {
                        "type": "boolean",
                        "description": "Multiple X+Y discounts can be applied at once",
                        "examples": [
                          true
                        ]
                      },
                      "categoryTargeting": {
                        "enum": [
                          "all-categories",
                          "primary-category"
                        ],
                        "description": "Enum, discount category targeting",
                        "examples": [
                          "all-categories"
                        ]
                      },
                      "enableInCashdesk": {
                        "type": "boolean",
                        "description": "Enable X+Y discounts in cashdesk, please note this option is not present for HU eshops",
                        "examples": [
                          true
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/quantity-discounts": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "discounts",
                        "paginator"
                      ],
                      "properties": {
                        "discounts": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "id",
                              "title",
                              "validFrom",
                              "validTo",
                              "customerGroups",
                              "priority",
                              "includeUnregisteredCustomers",
                              "status",
                              "isActive"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "discount ID",
                                "examples": [
                                  1
                                ]
                              },
                              "title": {
                                "type": "string",
                                "description": "discount title",
                                "examples": [
                                  "18 + 4 free"
                                ]
                              },
                              "validFrom": {
                                "$ref": "#/components/schemas/typeDateNullable",
                                "description": "date of discount validity from",
                                "examples": [
                                  "2014-11-19"
                                ]
                              },
                              "validTo": {
                                "$ref": "#/components/schemas/typeDateNullable",
                                "description": "date of discount validity to",
                                "examples": [
                                  "2014-12-19"
                                ]
                              },
                              "customerGroups": {
                                "type": [
                                  "array",
                                  "null"
                                ],
                                "description": "customer groups connected to discount",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "required": [
                                    "code",
                                    "name"
                                  ],
                                  "properties": {
                                    "code": {
                                      "type": "string",
                                      "description": "customer group code",
                                      "examples": [
                                        "retail"
                                      ]
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "customer group name",
                                      "examples": [
                                        "Retail customer"
                                      ]
                                    }
                                  }
                                }
                              },
                              "includeUnregisteredCustomers": {
                                "type": "boolean",
                                "description": "defines if discount is valid for unregistered customers, default value is `false`",
                                "examples": [
                                  true
                                ]
                              },
                              "priority": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "priority of the discount",
                                "examples": [
                                  1
                                ]
                              },
                              "targetingLevel": {
                                "type": "string",
                                "description": "targeting level of the discount",
                                "enum": [
                                  "eshop",
                                  "product",
                                  "category",
                                  "brand"
                                ],
                                "examples": [
                                  "eshop"
                                ]
                              },
                              "status": {
                                "type": "string",
                                "description": "status of the discount",
                                "enum": [
                                  "available",
                                  "unavailable",
                                  "expired",
                                  "planned"
                                ],
                                "examples": [
                                  "active"
                                ]
                              },
                              "isActive": {
                                "type": "boolean",
                                "description": "defines if discount is in active or inactive stage",
                                "examples": [
                                  true
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of quantity discounts",
        "operationId": "getListOfQuantityDiscounts",
        "description": "Returns a list of quantity discounts with basic info.\nSupports [Paging](#section/basic-principles/paging).",
        "tags": [
          "Quantity discounts"
        ],
        "parameters": [
          {
            "name": "customerGroupCode",
            "in": "query",
            "description": "customer group code, possible values can be get by customer group list endpoint",
            "example": "retail",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validFrom",
            "in": "query",
            "description": "date of discount validity - lower limit",
            "example": "2028-05-28",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validTo",
            "in": "query",
            "description": "date of discount validity - upper limit",
            "example": "2028-05-28",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "status of discount, possible values are `available`, `unavailable`, `expired`, `planned`",
            "example": "available",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isActive",
            "in": "query",
            "description": "whether or not discount is active",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "includeUnregisteredCustomers",
            "in": "query",
            "description": "whether or not discount is valid for unregistered customers",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultItemsPerPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "discount"
                      ],
                      "properties": {
                        "discount": {
                          "$ref": "#/components/schemas/quantityDiscount"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Quantity discount with ID \"1\" not found.",
                      "instance": "data.sortAfter"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Quantity discount insertion",
        "operationId": "createQuantityDiscount",
        "description": "",
        "tags": [
          "Quantity discounts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "title",
                      "settings",
                      "targetingLevel"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Discount title.",
                        "examples": [
                          "25% discount for order of 100 units or more"
                        ]
                      },
                      "isActive": {
                        "type": "boolean",
                        "description": "Whether or not is the discount active. If not set, default value is `true`.",
                        "examples": [
                          true
                        ]
                      },
                      "validFrom": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "Date of discount validity from.",
                        "examples": [
                          "2014-11-19"
                        ]
                      },
                      "validTo": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "Date of discount validity to.",
                        "examples": [
                          "2014-12-19"
                        ]
                      },
                      "displayFlag": {
                        "type": "boolean",
                        "description": "Whether or not to display flag. If not set, default value is `true`.",
                        "examples": [
                          true
                        ]
                      },
                      "flagColor": {
                        "$ref": "#/components/schemas/typeColor",
                        "description": "Color of the flag. If not set, default value is `D00000`."
                      },
                      "customerGroupCodes": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "minItems": 1,
                        "uniqueItems": true,
                        "description": "Customer groups connected to discount.",
                        "items": {
                          "type": "string",
                          "examples": [
                            "retail"
                          ]
                        }
                      },
                      "includeUnregisteredCustomers": {
                        "type": "boolean",
                        "description": "Defines if discount is valid for unregistered customers, default value is `false`.",
                        "examples": [
                          true
                        ]
                      },
                      "targetingLevel": {
                        "type": "string",
                        "description": "Level of targeting.",
                        "enum": [
                          "eshop",
                          "product",
                          "category",
                          "brand"
                        ],
                        "examples": [
                          "eshop"
                        ]
                      },
                      "targeting": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "minProperties": 1,
                        "description": "Links the discount to the specific target/s. At least one of the parameters needs to be specified.",
                        "properties": {
                          "productGuids": {
                            "type": [
                              "array",
                              "null"
                            ],
                            "minItems": 1,
                            "uniqueItems": true,
                            "description": "Array of product guids.",
                            "items": {
                              "type": "string",
                              "examples": [
                                "356eb81e-d966-11e0-b04f-57a43310b768"
                              ]
                            }
                          },
                          "categoryGuids": {
                            "type": [
                              "array",
                              "null"
                            ],
                            "minItems": 1,
                            "uniqueItems": true,
                            "description": "Array of category guids.",
                            "items": {
                              "type": "string",
                              "examples": [
                                "07f7a4c1-d7b1-11e0-9a5c-feab5ed617ed"
                              ]
                            }
                          },
                          "brandCodes": {
                            "type": [
                              "array",
                              "null"
                            ],
                            "minItems": 1,
                            "uniqueItems": true,
                            "description": "Array of brand codes.",
                            "items": {
                              "type": "string",
                              "examples": [
                                "brand-1"
                              ]
                            }
                          }
                        }
                      },
                      "settings": {
                        "type": "array",
                        "minItems": 1,
                        "description": "Settings of the discount.",
                        "items": {
                          "type": "object",
                          "required": [
                            "amountFrom",
                            "discountType",
                            "discountValue"
                          ],
                          "additionalProperties": false,
                          "properties": {
                            "amountFrom": {
                              "type": "integer",
                              "description": "Amount/quantity of items from which the discount is applied.",
                              "examples": [
                                2
                              ]
                            },
                            "discountType": {
                              "type": "string",
                              "description": "Type of the discount.",
                              "examples": [
                                "percentual"
                              ]
                            },
                            "discountValue": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "required": [
                                    "priceRatio"
                                  ],
                                  "properties": {
                                    "priceRatio": {
                                      "type": "number",
                                      "pattern": "^[0-1]+\\.[0-9]{2}$",
                                      "description": "Price ratio of the discount. Calculate as `(100 - percentage) / 100`. Round to 2 decimal places.",
                                      "examples": [
                                        0.85
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      },
                      "sortBefore": {
                        "type": "integer",
                        "description": "Id of discount before which you want to move the discount from the request. Not possible to use with `sortAfter`.",
                        "examples": [
                          1
                        ]
                      },
                      "sortAfter": {
                        "type": "integer",
                        "description": "Id of discount after which you want to move the discount from the request. Not possible to use with `sortBefore`.",
                        "examples": [
                          1
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/quantity-discounts/snapshot": {
      "get": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "List of all quantity discounts",
        "operationId": "getListOfAllQuantityDiscounts",
        "description": "Using this endpoint, you can get list of all quantity discounts with detailed info of each article (like in Detail of quantity discount endpoint) asynchronously. \n\n\nSee how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each quantity discount taking one line of output file.\n\n\nOne quantity discount in response has the same format as in detail of quantity discount endpoint response. See [Quantity discount snapshot schema](/shoptet-api/openapi/snapshot/quantitydiscountsnapshot) for more details. \n\n\nResult file is compressed using GZIP.",
        "tags": [
          "Quantity discounts"
        ],
        "parameters": [
          {
            "name": "customerGroupCode",
            "in": "query",
            "description": "customer group code, possible values can be get by customer group list endpoint",
            "example": "retail",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validFrom",
            "in": "query",
            "description": "date of discount validity - lower limit",
            "example": "2028-05-28",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validTo",
            "in": "query",
            "description": "date of discount validity - upper limit",
            "example": "2028-05-28",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "status of discount, possible values are `available`, `unavailable`, `expired`, `planned`",
            "example": "available",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isActive",
            "in": "query",
            "description": "whether or not discount is active",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "includeUnregisteredCustomers",
            "in": "query",
            "description": "whether or not discount is valid for unregistered customers",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-snapshot-endpoint": true,
        "x-shoptet-response-ref": "#/definitions/quantityDiscountSnapshot"
      }
    },
    "/api/quantity-discounts/{id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "discount"
                      ],
                      "properties": {
                        "discount": {
                          "$ref": "#/components/schemas/quantityDiscount"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "quantity-discount-not-found",
                      "message": "Quantity discount with ID \"1\" not found.",
                      "instance": "1"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Detail of quantity discounts",
        "operationId": "getDetailOfQuantityDiscounts",
        "description": "",
        "tags": [
          "Quantity discounts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "discount ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "discount"
                      ],
                      "properties": {
                        "discount": {
                          "$ref": "#/components/schemas/quantityDiscount"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "quantity-discount-not-found",
                      "message": "Quantity discount with ID \"1\" not found.",
                      "instance": "1"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Quantity discount update",
        "operationId": "updateQuantityDiscount",
        "description": "",
        "tags": [
          "Quantity discounts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "discount ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "minProperties": 1,
                    "additionalProperties": false,
                    "properties": {
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Discount title.",
                        "examples": [
                          "25% discount for order of 100 units or more"
                        ]
                      },
                      "isActive": {
                        "type": "boolean",
                        "description": "Whether or not is the discount active. If not set, default value is `true`.",
                        "examples": [
                          true
                        ]
                      },
                      "validFrom": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "Date of discount validity from.",
                        "examples": [
                          "2014-11-19"
                        ]
                      },
                      "validTo": {
                        "$ref": "#/components/schemas/typeDateNullable",
                        "description": "Date of discount validity to.",
                        "examples": [
                          "2014-12-19"
                        ]
                      },
                      "displayFlag": {
                        "type": "boolean",
                        "description": "Whether or not to display flag. If not set, default value is `true`.",
                        "examples": [
                          true
                        ]
                      },
                      "flagColor": {
                        "$ref": "#/components/schemas/typeColor",
                        "description": "Color of the flag. If not set, default value is `D00000`."
                      },
                      "customerGroupCodes": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "minItems": 1,
                        "uniqueItems": true,
                        "description": "Customer groups connected to discount.",
                        "items": {
                          "type": "string",
                          "examples": [
                            "retail"
                          ]
                        }
                      },
                      "includeUnregisteredCustomers": {
                        "type": "boolean",
                        "description": "Defines if discount is valid for unregistered customers, default value is `false`.",
                        "examples": [
                          true
                        ]
                      },
                      "targetingLevel": {
                        "type": "string",
                        "description": "Level of targeting.",
                        "enum": [
                          "eshop",
                          "product",
                          "category",
                          "brand"
                        ],
                        "examples": [
                          "eshop"
                        ]
                      },
                      "targeting": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "minProperties": 1,
                        "description": "Links the discount to the specific target/s. At least one of the parameters needs to be specified.",
                        "properties": {
                          "productGuids": {
                            "type": [
                              "array",
                              "null"
                            ],
                            "minItems": 1,
                            "uniqueItems": true,
                            "description": "Array of product guids.",
                            "items": {
                              "type": "string",
                              "examples": [
                                "356eb81e-d966-11e0-b04f-57a43310b768"
                              ]
                            }
                          },
                          "categoryGuids": {
                            "type": [
                              "array",
                              "null"
                            ],
                            "minItems": 1,
                            "uniqueItems": true,
                            "description": "Array of category guids.",
                            "items": {
                              "type": "string",
                              "examples": [
                                "07f7a4c1-d7b1-11e0-9a5c-feab5ed617ed"
                              ]
                            }
                          },
                          "brandCodes": {
                            "type": [
                              "array",
                              "null"
                            ],
                            "minItems": 1,
                            "uniqueItems": true,
                            "description": "Array of brand codes.",
                            "items": {
                              "type": "string",
                              "examples": [
                                "brand-1"
                              ]
                            }
                          }
                        }
                      },
                      "settings": {
                        "type": "array",
                        "minItems": 1,
                        "description": "Settings of the discount.",
                        "items": {
                          "type": "object",
                          "required": [
                            "amountFrom",
                            "discountType",
                            "discountValue"
                          ],
                          "additionalProperties": false,
                          "properties": {
                            "amountFrom": {
                              "type": "integer",
                              "description": "Amount/quantity of items from which the discount is applied.",
                              "examples": [
                                2
                              ]
                            },
                            "discountType": {
                              "type": "string",
                              "description": "Type of the discount.",
                              "examples": [
                                "percentual"
                              ]
                            },
                            "discountValue": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "required": [
                                    "priceRatio"
                                  ],
                                  "properties": {
                                    "priceRatio": {
                                      "type": "number",
                                      "pattern": "^[0-1]+\\.[0-9]{2}$",
                                      "description": "Price ratio of the discount. Calculate as `(100 - percentage) / 100`. Round to 2 decimal places.",
                                      "examples": [
                                        0.85
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      },
                      "sortBefore": {
                        "type": "integer",
                        "description": "Id of discount before which you want to move the discount from the request. Not possible to use with `sortAfter`.",
                        "examples": [
                          1
                        ]
                      },
                      "sortAfter": {
                        "type": "integer",
                        "description": "Id of discount after which you want to move the discount from the request. Not possible to use with `sortBefore`.",
                        "examples": [
                          1
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "quantity-discount-not-found",
                      "message": "Quantity discount with ID \"1\" not found.",
                      "instance": "1"
                    },
                    {
                      "errorCode": "quantity-discount-deletion-failed",
                      "message": "Cannot delete quantity discount with id \"1\".",
                      "instance": "1"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Delete of quantity discount",
        "operationId": "deleteQuantityDiscount",
        "description": "",
        "tags": [
          "Quantity discounts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "discount ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/volume-discounts": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "discounts",
                        "paginator"
                      ],
                      "properties": {
                        "discounts": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "id",
                              "amount",
                              "currency",
                              "priceRatio",
                              "customerGroups"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "discount ID",
                                "examples": [
                                  1
                                ]
                              },
                              "amount": {
                                "$ref": "#/components/schemas/typeAmount",
                                "description": "amount of volume discount"
                              },
                              "priceRatio": {
                                "oneOf": [
                                  {
                                    "$ref": "#/components/schemas/typePriceRatio"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "description": "discount in the form of coefficient (0.7 = 70 % of the original price, i.e. 30 % discount)"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/typeCurrencyCodeNullable",
                                "description": "currency of volume discount"
                              },
                              "customerGroups": {
                                "type": [
                                  "array",
                                  "null"
                                ],
                                "description": "customer groups connected to discount",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "required": [
                                    "code",
                                    "name"
                                  ],
                                  "properties": {
                                    "code": {
                                      "type": "string",
                                      "description": "customer group code",
                                      "examples": [
                                        "retail"
                                      ]
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "customer group name",
                                      "examples": [
                                        "Retail customer"
                                      ]
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of volume discounts",
        "operationId": "getListOfVolumeDiscounts",
        "description": "",
        "tags": [
          "Volume discounts"
        ],
        "parameters": [
          {
            "name": "customerGroupCode",
            "in": "query",
            "description": "customer group code, possible values can be get by customer group\nlist endpoint",
            "example": "retail",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultItemsPerPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/articles": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "articles",
                        "paginator"
                      ],
                      "properties": {
                        "articles": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/articleList"
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of articles",
        "operationId": "getListOfArticles",
        "description": "Returns a list of articles with basic info. Supports [Paging](#section/basic-principles/paging)",
        "tags": [
          "Articles"
        ],
        "parameters": [
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 10.",
            "example": 10,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "article"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "article": {
                          "$ref": "#/components/schemas/article"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "errorCode": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          },
                          "instance": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Invalid \"defaultSectionId\" value \"123456789\". Use articles/sections endpoint to get a list of possible values.",
                      "instance": "integration-call"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "The property defaultSectionId is required",
                      "instance": "integration-call"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "File image123.jpg does not exist in temp upload storage.",
                      "instance": "data.sourceImageName"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Insert of article",
        "operationId": "createArticle",
        "description": "Creates a new article.",
        "tags": [
          "Articles"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "title",
                      "defaultSectionId"
                    ],
                    "properties": {
                      "title": {
                        "type": "string",
                        "description": "Title of the article",
                        "examples": [
                          "Test"
                        ]
                      },
                      "language": {
                        "type": "string",
                        "description": "Language of the article. Available and settable only if module Foreign languages is active and initialized.",
                        "examples": [
                          "cs"
                        ]
                      },
                      "defaultSectionId": {
                        "type": "integer",
                        "description": "Id of the section",
                        "examples": [
                          682
                        ]
                      },
                      "sectionIds": {
                        "type": "array",
                        "description": "Id of the section",
                        "minItems": 1,
                        "items": {
                          "type": "integer",
                          "examples": [
                            682
                          ]
                        }
                      },
                      "indexName": {
                        "type": "string",
                        "description": "ending part of article URL",
                        "examples": [
                          "test"
                        ]
                      },
                      "redirectUrl": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "canonical URL for redirecting",
                        "examples": [
                          "https://www.someurl.com"
                        ]
                      },
                      "content": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Content of the article",
                        "examples": [
                          "<p>Content of the article</p>"
                        ]
                      },
                      "metaTitle": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Meta title of the article",
                        "examples": [
                          "Test article"
                        ]
                      },
                      "metaKeywords": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "DEPRECATED - Keywords of the article",
                        "examples": [
                          "test"
                        ],
                        "deprecated": true
                      },
                      "metaDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Meta description of the article",
                        "examples": [
                          "Test article"
                        ]
                      },
                      "publishDate": {
                        "$ref": "#/components/schemas/typeDateTimeRequest",
                        "description": "Date of publishing - test. Deprecation of required timezone part of datetime, and will be removed in the future"
                      },
                      "visible": {
                        "type": "boolean",
                        "description": "Flag whether the article is visible on web",
                        "examples": [
                          true
                        ]
                      },
                      "access": {
                        "enum": [
                          "all",
                          "logged-in",
                          "logged-out",
                          "admin-only"
                        ],
                        "description": "Flag indicating, whether the article can be viewed by everyone (value of the flag is: 'all'), by logged in users only ('logged-in'), by logged out users only ('logged-out'), or by administrators only ('admin-only')",
                        "examples": [
                          "logged-in"
                        ]
                      },
                      "sourceImageName": {
                        "$ref": "#/components/schemas/typeFilenameNullable",
                        "description": "Name of file in [Files upload](#section/basic-principles/files-upload) storage to be set as article image. When set to null, image will be removed.",
                        "examples": [
                          "image.png"
                        ]
                      },
                      "sourceOgImageName": {
                        "$ref": "#/components/schemas/typeFilenameNullable",
                        "description": "Name of file in [Files upload](#section/basic-principles/files-upload) storage to be set as article open-graph image. When set to null, image will be removed.",
                        "examples": [
                          "image.png"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/articles/snapshot": {
      "get": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "List of all articles",
        "operationId": "getListAllArticles",
        "description": "Using this endpoint, you can get list of all articles with detailed info of each article (like in Detail of article endpoint) asynchronously. \n\n\nSee how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each article taking one line of output file.\n\n\nOne article in response has the same format as article detail response. See [Article snapshot schema](/shoptet-api/openapi/snapshot/articlesnapshot) for more details.\n\n\nResult file is compressed using GZIP.",
        "tags": [
          "Articles"
        ],
        "parameters": [
          {
            "name": "idFrom",
            "in": "query",
            "description": "Export articles with id bigger or equal than given value",
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "idTo",
            "in": "query",
            "description": "Export articles with id lower or equal than given value",
            "example": 10,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "articleLanguage",
            "in": "query",
            "description": "Export articles written in given language",
            "example": "cs",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "publishDateFrom",
            "in": "query",
            "description": "Export articles published after given datetime",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "publishDateTo",
            "in": "query",
            "description": "Export articles published before given datetime",
            "example": "2014-11-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeDateFrom",
            "in": "query",
            "description": "Export articles updated after given datetime",
            "example": "2014-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeDateTo",
            "in": "query",
            "description": "Export articles updated before given datetime",
            "example": "2014-11-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "visible",
            "in": "query",
            "description": "Filtering according to document visibility",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-snapshot-endpoint": true,
        "x-shoptet-response-ref": "#/definitions/articleSnapshot"
      }
    },
    "/api/articles/{articleId}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "article"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "article": {
                          "$ref": "#/components/schemas/article"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Detail of article",
        "operationId": "getDetailOfArticle",
        "description": "Returns a detail of the article.",
        "parameters": [
          {
            "name": "articleId",
            "in": "path",
            "description": "article ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "tags": [
          "Articles"
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "article"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "article": {
                          "$ref": "#/components/schemas/article"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "errorCode": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          },
                          "instance": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Invalid \"defaultSectionId\" value \"123456789\". Use articles/sections endpoint to get a list of possible values.",
                      "instance": "integration-call"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "The property defaultSectionId is required",
                      "instance": "integration-call"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "File image123.jpg does not exist in temp upload storage.",
                      "instance": "data.sourceImageName"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Update of article",
        "operationId": "updateArticle",
        "description": "Updates the article.",
        "parameters": [
          {
            "name": "articleId",
            "in": "path",
            "description": "article ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "tags": [
          "Articles"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "title": {
                        "type": "string",
                        "description": "Title of the article",
                        "examples": [
                          "Test"
                        ]
                      },
                      "language": {
                        "type": "string",
                        "description": "Language of the article. Available and settable only if module Foreign languages is active and initialized.",
                        "examples": [
                          "cs"
                        ]
                      },
                      "defaultSectionId": {
                        "type": "integer",
                        "description": "Id of the section",
                        "examples": [
                          682
                        ]
                      },
                      "sectionIds": {
                        "type": "array",
                        "description": "Id of the section",
                        "minItems": 1,
                        "items": {
                          "type": "integer",
                          "examples": [
                            682
                          ]
                        }
                      },
                      "indexName": {
                        "type": "string",
                        "description": "ending part of article URL",
                        "examples": [
                          "test"
                        ]
                      },
                      "redirectUrl": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "canonical URL for redirecting",
                        "examples": [
                          "https://www.someurl.com"
                        ]
                      },
                      "content": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Content of the article",
                        "examples": [
                          "<p>Content of the article</p>"
                        ]
                      },
                      "metaTitle": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Meta title of the article",
                        "examples": [
                          "Test article"
                        ]
                      },
                      "metaKeywords": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "DEPRECATED - Keywords of the article",
                        "examples": [
                          "test"
                        ],
                        "deprecated": true
                      },
                      "metaDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Meta description of the article",
                        "examples": [
                          "Test article"
                        ]
                      },
                      "publishDate": {
                        "$ref": "#/components/schemas/typeDateTimeRequest",
                        "description": "Date of publishing. Deprecation of required timezone part of datetime, and will be removed in the future"
                      },
                      "visible": {
                        "type": "boolean",
                        "description": "Flag whether the article is visible on web",
                        "examples": [
                          true
                        ]
                      },
                      "access": {
                        "enum": [
                          "all",
                          "logged-in",
                          "logged-out",
                          "admin-only"
                        ],
                        "description": "Flag indicating, whether the article can be viewed by everyone (value of the flag is: 'all'), by logged in users only ('logged-in'), by logged out users only ('logged-out'), or by administrators only ('admin-only')",
                        "examples": [
                          "logged-in"
                        ]
                      },
                      "sourceImageName": {
                        "$ref": "#/components/schemas/typeFilenameNullable",
                        "description": "Name of file in [Files upload](#section/basic-principles/files-upload) storage to be set as article image. When set to null, image will be removed.",
                        "examples": [
                          "image.png"
                        ]
                      },
                      "sourceOgImageName": {
                        "$ref": "#/components/schemas/typeFilenameNullable",
                        "description": "Name of file in [Files upload](#section/basic-principles/files-upload) storage to be set as article open-graph image. When set to null, image will be removed.",
                        "examples": [
                          "image.png"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Delete of article",
        "operationId": "deleteArticle",
        "description": "Deletes the article.",
        "parameters": [
          {
            "name": "articleId",
            "in": "path",
            "description": "article ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "tags": [
          "Articles"
        ]
      }
    },
    "/api/articles/sections": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "sections"
                      ],
                      "properties": {
                        "sections": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/articleSectionList"
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of article sections",
        "operationId": "getListOfArticleSections",
        "description": "Returns a list of article sections.",
        "tags": [
          "Articles"
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "articleSection"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "articleSection": {
                          "$ref": "#/components/schemas/articleSection"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "errorCode": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          },
                          "instance": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Parent section does not exist.",
                      "instance": "integration-call"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "The property title is required",
                      "instance": "integration-call"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "The maximum nesting depth of article section exceeded",
                      "instance": "integration-call"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Insert of article section",
        "operationId": "createArticleSection",
        "description": "Creates a new article section.",
        "tags": [
          "Articles"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "required": [
                      "title"
                    ],
                    "properties": {
                      "title": {
                        "type": "string",
                        "description": "article section title",
                        "examples": [
                          "Test"
                        ]
                      },
                      "language": {
                        "type": "string",
                        "description": "Article section language. Available and settable only if module Foreign languages is active and initialized.",
                        "examples": [
                          "cs"
                        ]
                      },
                      "parentId": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "ID of the parent article section. Maximum nesting depth of article section is 4 nodes.",
                        "examples": [
                          1
                        ]
                      },
                      "indexName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "ending part of article section URL",
                        "examples": [
                          "new-article"
                        ]
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "article section content",
                        "examples": [
                          "<p>Content of the article section</p>"
                        ]
                      },
                      "secondDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "article section second content",
                        "examples": [
                          "<p>Content of the second article section</p>"
                        ]
                      },
                      "limit": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Number of articles displayed in the listing",
                        "examples": [
                          4
                        ]
                      },
                      "homepageLimit": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Number of articles displayed on the homepage",
                        "examples": [
                          4
                        ]
                      },
                      "sorting": {
                        "enum": [
                          "alphabetically",
                          "newest-first",
                          "oldest-first"
                        ],
                        "description": "Article sorting in the listing",
                        "examples": [
                          "alphabetically"
                        ]
                      },
                      "perexLimit": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Number of character displayed in the article perex",
                        "examples": [
                          100
                        ]
                      },
                      "hidePublishDate": {
                        "type": "boolean",
                        "description": "Hide article publish date in the listing",
                        "examples": [
                          false
                        ]
                      },
                      "showPrevNext": {
                        "type": "boolean",
                        "description": "Show next/previous buttons in the listing",
                        "examples": [
                          true
                        ]
                      },
                      "showOnHomepage": {
                        "type": "boolean",
                        "description": "Show articles on the homepage",
                        "examples": [
                          false
                        ]
                      },
                      "linkText": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Link text (in the menu)",
                        "examples": [
                          "Test articles"
                        ]
                      },
                      "metaTitle": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "article meta title",
                        "examples": [
                          "Test articles"
                        ]
                      },
                      "metaDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "article meta description",
                        "examples": [
                          "Test articles"
                        ]
                      },
                      "visible": {
                        "type": "boolean",
                        "description": "flag whether the article section is visible on web",
                        "examples": [
                          true
                        ]
                      },
                      "access": {
                        "enum": [
                          "all",
                          "logged-in",
                          "logged-out"
                        ],
                        "description": "flag indicating, whether the article section can be viewed by everyone (value of the flag is: `all`), by logged in users only ('logged-in'), or by logged out users only ('logged-out')",
                        "examples": [
                          "logged-in"
                        ]
                      },
                      "sourceImageName": {
                        "$ref": "#/components/schemas/typeFilenameNullable",
                        "description": "Name of file in [Files upload](#section/basic-principles/files-upload) storage to be set as article section image. When set to null, image will be removed.",
                        "examples": [
                          "image.png"
                        ]
                      },
                      "sourceOgImageName": {
                        "$ref": "#/components/schemas/typeFilenameNullable",
                        "description": "Name of file in [Files upload](#section/basic-principles/files-upload) storage to be set as article section open-graph image. When set to null, image will be removed.",
                        "examples": [
                          "image.png"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/articles/sections/{articleSectionId}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "articleSection"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "articleSection": {
                          "$ref": "#/components/schemas/articleSection"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "article-section-not-found",
                      "message": "Article section with ID \"123\" not found.",
                      "instance": "123"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Detail of article section",
        "operationId": "getDetailOfArticleSection",
        "description": "Returns a detail of the article section.",
        "tags": [
          "Articles"
        ],
        "parameters": [
          {
            "name": "articleSectionId",
            "in": "path",
            "description": "article section ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "articleSection"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "articleSection": {
                          "$ref": "#/components/schemas/articleSection"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "article-section-not-found",
                      "message": "Article section with ID \"123\" not found.",
                      "instance": "123"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Update of article section",
        "operationId": "updateArticleSection",
        "description": "Updates the article section.",
        "parameters": [
          {
            "name": "articleSectionId",
            "in": "path",
            "description": "article section ID",
            "required": true,
            "example": 123,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "tags": [
          "Articles"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "title": {
                        "type": "string",
                        "description": "article section title",
                        "examples": [
                          "Test"
                        ]
                      },
                      "language": {
                        "type": "string",
                        "description": "Article section language. Available and settable only if module Foreign languages is active and initialized.",
                        "examples": [
                          "cs"
                        ]
                      },
                      "indexName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "ending part of article section URL",
                        "examples": [
                          "new-article"
                        ]
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "article section content",
                        "examples": [
                          "<p>Content of the article section</p>"
                        ]
                      },
                      "secondDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "article section second content",
                        "examples": [
                          "<p>Content of the second article section</p>"
                        ]
                      },
                      "limit": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Number of articles displayed in the listing",
                        "examples": [
                          4
                        ]
                      },
                      "homepageLimit": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Number of articles displayed on the homepage",
                        "examples": [
                          4
                        ]
                      },
                      "sorting": {
                        "enum": [
                          "alphabetically",
                          "newest-first",
                          "oldest-first"
                        ],
                        "description": "Article sorting in the listing",
                        "examples": [
                          "alphabetically"
                        ]
                      },
                      "perexLimit": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Number of character displayed in the article perex",
                        "examples": [
                          100
                        ]
                      },
                      "hidePublishDate": {
                        "type": "boolean",
                        "description": "Hide article publish date in the listing",
                        "examples": [
                          false
                        ]
                      },
                      "showPrevNext": {
                        "type": "boolean",
                        "description": "Show next/previous buttons in the listing",
                        "examples": [
                          true
                        ]
                      },
                      "showOnHomepage": {
                        "type": "boolean",
                        "description": "Show articles on the homepage",
                        "examples": [
                          false
                        ]
                      },
                      "linkText": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Link text (in the menu)",
                        "examples": [
                          "Test articles"
                        ]
                      },
                      "metaTitle": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "article meta title",
                        "examples": [
                          "Test articles"
                        ]
                      },
                      "metaDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "article meta description",
                        "examples": [
                          "Test articles"
                        ]
                      },
                      "visible": {
                        "type": "boolean",
                        "description": "flag whether the article section is visible on web",
                        "examples": [
                          true
                        ]
                      },
                      "access": {
                        "enum": [
                          "all",
                          "logged-in",
                          "logged-out"
                        ],
                        "description": "flag indicating, whether the article section can be viewed by everyone (value of the flag is: `all`), by logged in users only ('logged-in'), or by logged out users only ('logged-out')",
                        "examples": [
                          "logged-in"
                        ]
                      },
                      "sourceImageName": {
                        "$ref": "#/components/schemas/typeFilenameNullable",
                        "description": "Name of file in [Files upload](#section/basic-principles/files-upload) storage to be set as article section image. When set to null, image will be removed.",
                        "examples": [
                          "image.png"
                        ]
                      },
                      "sourceOgImageName": {
                        "$ref": "#/components/schemas/typeFilenameNullable",
                        "description": "Name of file in [Files upload](#section/basic-principles/files-upload) storage to be set as article section open-graph image. When set to null, image will be removed.",
                        "examples": [
                          "image.png"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "article-section-not-found",
                      "message": "Article section with ID \"123\" not found.",
                      "instance": "123"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "article-section-contains-articles",
                      "message": "Article section \"683\" cannot be deleted, because it contains 4 article(s) that would be deleted.",
                      "instance": "683"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Deletion of article section",
        "operationId": "deleteArticleSection",
        "description": "If the article section cannot be deleted, because it contains article(s), a\n409 code is returned.\n\nOptional parameter `force` with `true` value allows deletion of article section including permanent deletion of\narticle(s) having this section set as default.",
        "tags": [
          "Articles"
        ],
        "parameters": [
          {
            "name": "articleSectionId",
            "in": "path",
            "description": "article section ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "force",
            "in": "query",
            "description": "allows deletion of article section that contains article(s) if set to `true`",
            "required": false,
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/pages": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "pages",
                        "paginator"
                      ],
                      "properties": {
                        "pages": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/pageList"
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of pages",
        "operationId": "getListOfPages",
        "description": "Returns a list of pages.",
        "tags": [
          "Pages"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultItemsPerPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "page"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "page": {
                          "$ref": "#/components/schemas/page"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "errorCode": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          },
                          "instance": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "The property title is required",
                      "instance": "integration-call"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Insert of page",
        "operationId": "createPage",
        "description": "Creates a new page.",
        "tags": [
          "Pages"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "required": [
                      "title"
                    ],
                    "properties": {
                      "title": {
                        "minLength": 1,
                        "maxLength": 255,
                        "type": "string",
                        "description": "page title",
                        "examples": [
                          "Test"
                        ]
                      },
                      "indexName": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "ending part of page URL",
                        "examples": [
                          "new-page"
                        ],
                        "pattern": "^[a-zA-Z0-9\\-]*$"
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "page content",
                        "examples": [
                          "<p>Content of the page</p>"
                        ]
                      },
                      "linkText": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "page title in the menu",
                        "examples": [
                          "Test menu title"
                        ]
                      },
                      "metaTitle": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "page meta title",
                        "examples": [
                          "Test page"
                        ]
                      },
                      "metaDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "page meta description",
                        "examples": [
                          "Test page description"
                        ]
                      },
                      "canonicalUrl": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "canonical URL of the page",
                        "examples": [
                          "https://example.com/canonical-url"
                        ]
                      },
                      "visible": {
                        "type": "boolean",
                        "description": "flag whether the page is visible on web",
                        "examples": [
                          true
                        ]
                      },
                      "access": {
                        "enum": [
                          "all",
                          "logged-in",
                          "logged-out",
                          "admin-only"
                        ],
                        "description": "flag indicating, whether the page can be viewed by everyone (value of the flag is: `all`), by logged in users only ('logged-in'), by logged out users only ('logged-out'), or by administrators only ('admin-only')",
                        "examples": [
                          "logged-in"
                        ]
                      },
                      "sourceOgImageName": {
                        "$ref": "#/components/schemas/typeFilenameNullable",
                        "description": "Name of file in [Files upload](#section/basic-principles/files-upload) storage to be set as article open-graph image. When set to null, image will be removed.",
                        "examples": [
                          "image.png"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/pages/{pageId}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "page"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "page": {
                          "$ref": "#/components/schemas/page"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "article-page-not-found",
                      "message": "Page with ID \"1\" not found.",
                      "instance": "1"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Detail of page",
        "operationId": "getDetailOfPage",
        "description": "Returns a detail of the page.",
        "parameters": [
          {
            "name": "pageId",
            "in": "path",
            "description": "page ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "tags": [
          "Pages"
        ]
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null",
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": null,
                  "errors": null
                }
              }
            }
          }
        },
        "summary": "Delete of page",
        "operationId": "deletePage",
        "description": "Deletes the page.",
        "parameters": [
          {
            "name": "pageId",
            "in": "path",
            "description": "page ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "tags": [
          "Pages"
        ]
      },
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "page"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "page": {
                          "$ref": "#/components/schemas/page"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "article-page-not-found",
                      "message": "Page with ID \"1\" not found.",
                      "instance": "1"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Update of page",
        "operationId": "updatePage",
        "description": "Updates the page.",
        "parameters": [
          {
            "name": "pageId",
            "in": "path",
            "description": "page ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "tags": [
          "Pages"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "title": {
                        "minLength": 1,
                        "maxLength": 255,
                        "type": "string",
                        "description": "page title",
                        "examples": [
                          "Test"
                        ]
                      },
                      "indexName": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "ending part of page URL",
                        "examples": [
                          "new-page"
                        ],
                        "pattern": "^[a-zA-Z0-9\\-]*$"
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "page content",
                        "examples": [
                          "<p>Content of the page</p>"
                        ]
                      },
                      "linkText": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "page title in the menu",
                        "examples": [
                          "Test menu title"
                        ]
                      },
                      "metaTitle": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "page meta title",
                        "examples": [
                          "Test page"
                        ]
                      },
                      "metaDescription": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "page meta description",
                        "examples": [
                          "Test page description"
                        ]
                      },
                      "canonicalUrl": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "canonical URL of the page",
                        "examples": [
                          "https://example.com/canonical-url"
                        ]
                      },
                      "visible": {
                        "type": "boolean",
                        "description": "flag whether the page is visible on web",
                        "examples": [
                          true
                        ]
                      },
                      "access": {
                        "enum": [
                          "all",
                          "logged-in",
                          "logged-out",
                          "admin-only"
                        ],
                        "description": "flag indicating, whether the page can be viewed by everyone (value of the flag is: `all`), by logged in users only ('logged-in'), by logged out users only ('logged-out'), or by administrators only ('admin-only')",
                        "examples": [
                          "logged-in"
                        ]
                      },
                      "sourceOgImageName": {
                        "$ref": "#/components/schemas/typeFilenameNullable",
                        "description": "Name of file in [Files upload](#section/basic-principles/files-upload) storage to be set as article open-graph image. When set to null, image will be removed.",
                        "examples": [
                          "image.png"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/discussions-posts": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "discussion",
                        "paginator"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "discussion": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/discussionPost"
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Module \"Discussion\" is not active.",
                      "instance": "discussion"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "List of discussion posts",
        "operationId": "getListOfDiscussionPosts",
        "description": "List of discussion posts, filterable by product GUID, article ID, page ID, customer GUID, author's e-mail, and creation date. Requires \"discussion\" module to be active.",
        "tags": [
          "Discussions"
        ],
        "parameters": [
          {
            "name": "productGuid",
            "in": "query",
            "description": "guid of the product associated to discussion",
            "example": "356eb81e-d966-11e0-b04f-57a43310b768",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "articleId",
            "in": "query",
            "description": "identifier of the article associated to discussion",
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageId",
            "in": "query",
            "description": "identifier of the page associated to discussion",
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "customerGuid",
            "in": "query",
            "description": "guid of the customer associated to discussion",
            "example": "443cad54-73bc-11e8-8216-002590dad85e",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userEmail",
            "in": "query",
            "description": "e-mail of the post's author",
            "example": "john.doe@example.com",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationDateFrom",
            "in": "query",
            "description": "date and time of the post creation - lower limit",
            "example": "2022-12-24T16:00:00+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationDateTo",
            "in": "query",
            "description": "date and time of the post creation - upper limit",
            "example": "2022-12-31T23:59:59+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default and max value is 100.",
            "example": 98,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "One of productGuid, articleId, and pageId is required. Skipped.",
                      "instance": "data[0]"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Only one of productGuid, articleId, and pageId is allowed. Skipped.",
                      "instance": "data[1]"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Product \\\"c5112055-d7c0-11e0-9a5c-feab5ed617ed\\\" does not exist. Skipped.",
                      "instance": "data[0].productGuid"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Module \"Discussion\" is not active.",
                      "instance": "discussion"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "There must be a maximum of 100 items in the array",
                      "instance": "data"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Must be at most 128 characters long.",
                      "instance": "data[0].name"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Invalid email",
                      "instance": "data[0].email"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Creation of discussion posts",
        "operationId": "createDiscussionPosts",
        "description": "Allows the creation of multiple discussion posts at once. The limit of items per request is defined to 100.\n\n\nDiscussions can be created for: products, articles, and pages. Requires \"discussion\" module to be active.\n\n\nRequest is processing all the items. If there are some errors in item definitions, only these items are skipped and summarized in response errors. Valid items are processed even if some error items are skipped.\n\n\nIf at least one item is processed successfully, the response code is `201`. If all the items contain errors, the response code is `400`. If basic validation of items fails, the response code is `422` and the request is not processed.",
        "tags": [
          "Discussions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "array",
                    "maxItems": 100,
                    "items": {
                      "type": "object",
                      "required": [
                        "email",
                        "content",
                        "authorized"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "parentId": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1,
                          "description": "Discussion post parent identifier.",
                          "examples": [
                            1
                          ]
                        },
                        "productGuid": {
                          "oneOf": [
                            {
                              "$ref": "#/components/schemas/typeGuidUnlimited"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Discussion post product identifier."
                        },
                        "articleId": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1,
                          "description": "Discussion post article identifier.",
                          "examples": [
                            2
                          ]
                        },
                        "pageId": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1,
                          "description": "Discussion post page identifier.",
                          "examples": [
                            3
                          ]
                        },
                        "customerGuid": {
                          "oneOf": [
                            {
                              "$ref": "#/components/schemas/typeGuidUnlimited"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Discussion post customer identifier."
                        },
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "maxLength": 128,
                          "description": "Name of the author.",
                          "examples": [
                            "John Doe"
                          ]
                        },
                        "email": {
                          "type": "string",
                          "maxLength": 100,
                          "format": "email",
                          "description": "Email of the author.",
                          "examples": [
                            "john.doe@example.com"
                          ]
                        },
                        "title": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "maxLength": 255,
                          "description": "Title of the post.",
                          "examples": [
                            "Some title"
                          ]
                        },
                        "content": {
                          "type": "string",
                          "minLength": 1,
                          "description": "Content of the post.",
                          "examples": [
                            "Some content"
                          ]
                        },
                        "creationDate": {
                          "$ref": "#/components/schemas/typeDateTimeNullable",
                          "description": "Date and time of the post creation. If not provided, current date and time is used."
                        },
                        "authorized": {
                          "type": "boolean",
                          "description": "Flag whether the post is authorized (visible on the web).",
                          "examples": [
                            true
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/discussions-posts/{id}": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "discussion"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "discussion": {
                          "$ref": "#/components/schemas/discussionPost"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Module \\\"Discussion\\\" is not active.",
                      "instance": "discussion"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "discussion-post-not-found",
                      "message": "Discussion post with id \"999\" was not found.",
                      "instance": "1"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Must be at least 1 characters long",
                      "instance": "data.name"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Must be at least 1 characters long",
                      "instance": "data.email"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Invalid email",
                      "instance": "data.email"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Must be no more than 100 characters long",
                      "instance": "data.email"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Must be no more than 255 characters long",
                      "instance": "data.title"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Must be at least 1 characters long",
                      "instance": "data.content"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Does not match the regex pattern ^[0-9]{4}-[01][0-9]-[0123][0-9]T[012][0-9]:[0-5][0-9]:[0-5][0-9]\\+[0-9]{4}$",
                      "instance": "data.creationDate"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "String value found, but a boolean is required",
                      "instance": "data.authorized"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Discussion post update",
        "operationId": "updateDiscussionPost",
        "description": "Updates discussion post's data. Requires \"discussion\" module to be active.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Discussion post id",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "tags": [
          "Discussions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 128,
                        "description": "Name of the author.",
                        "examples": [
                          "John Doe"
                        ]
                      },
                      "email": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100,
                        "format": "email",
                        "description": "Email of the author.",
                        "examples": [
                          "john.doe@example.com"
                        ]
                      },
                      "title": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "maxLength": 255,
                        "description": "Title of the post.",
                        "examples": [
                          "Some title"
                        ]
                      },
                      "content": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Content of the post.",
                        "examples": [
                          "Some content"
                        ]
                      },
                      "creationDate": {
                        "$ref": "#/components/schemas/typeDateTimeNullable",
                        "description": "Date and time of the discussion post creation."
                      },
                      "authorized": {
                        "type": "boolean",
                        "description": "Flag whether the post is authorized (visible on the web).",
                        "examples": [
                          true
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": false
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Module \"Discussion\" is not active.",
                      "instance": "discussion"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Removal of discussion post",
        "operationId": "deleteDiscussionById",
        "description": "Deletes discussion post. Requires \"discussion\" module to be active.",
        "tags": [
          "Discussions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of discussion",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/system/jobs": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobs",
                        "paginator"
                      ],
                      "properties": {
                        "jobs": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "jobId",
                              "endpoint",
                              "creationTime",
                              "completionTime",
                              "status",
                              "validUntil"
                            ],
                            "properties": {
                              "jobId": {
                                "type": "string",
                                "description": "job unique code.",
                                "examples": [
                                  "3ax1844"
                                ]
                              },
                              "endpoint": {
                                "type": "string",
                                "description": "called endpoint by service",
                                "examples": [
                                  "/api/products/images"
                                ]
                              },
                              "creationTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "time of job creation"
                              },
                              "completionTime": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "time of job completion"
                              },
                              "status": {
                                "type": "string",
                                "description": "job status",
                                "examples": [
                                  "completed"
                                ]
                              },
                              "validUntil": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "validity of job result"
                              },
                              "language": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Available only if module Foreign languages is active and initialized.",
                                "examples": [
                                  "cs"
                                ]
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of jobs",
        "operationId": "getListOfJobs",
        "description": "List of jobs in queue. Using the \"status\" parameter to filter by completed|pending|running|failed|expired|killed. \nWithout this filter it will show all statuses. Also you can filter results depends on time of creation and completion.",
        "tags": [
          "Jobs"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "description": "supported values: `completed`, `pending`, `running`, `failed`,\n`expired`, `killed`",
            "example": "completed",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeFrom",
            "in": "query",
            "description": "date and time of job creation - lower limit",
            "example": "2018-05-28T14:17:00+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "creationTimeTo",
            "in": "query",
            "description": "date and time of job creation - upper limit",
            "example": "2018-05-28T14:17:00+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "completionTimeFrom",
            "in": "query",
            "description": "date and time of job completion - lower limit",
            "example": "2018-05-28T14:17:00+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "completionTimeTo",
            "in": "query",
            "description": "date and time of job completion - upper limit",
            "example": "2018-05-28T14:17:00+02:00",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemsPerPage",
            "in": "query",
            "description": "Returned items per page. Default value is 100. Max value is 500.",
            "example": 50,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/system/jobs/{jobId}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "job"
                      ],
                      "properties": {
                        "job": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "jobId",
                            "endpoint",
                            "creationTime",
                            "completionTime",
                            "duration",
                            "status",
                            "resultUrl",
                            "log",
                            "validUntil"
                          ],
                          "properties": {
                            "jobId": {
                              "type": "string",
                              "description": "job unique code.",
                              "examples": [
                                "3ax1844"
                              ]
                            },
                            "endpoint": {
                              "type": "string",
                              "description": "called endpoint by service",
                              "examples": [
                                "/api/products/images"
                              ]
                            },
                            "creationTime": {
                              "$ref": "#/components/schemas/typeDateTimeNullable",
                              "description": "time of job creation"
                            },
                            "completionTime": {
                              "$ref": "#/components/schemas/typeDateTimeNullable",
                              "description": "time of job completion"
                            },
                            "duration": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "duration of job in seconds with ms",
                              "examples": [
                                "20.123"
                              ]
                            },
                            "status": {
                              "type": "string",
                              "description": "job status",
                              "examples": [
                                "completed"
                              ]
                            },
                            "resultUrl": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "URL to the result of the job",
                              "examples": [
                                "https://eshop.domain.com/api-results/3ax1844-lrmsrf0.json"
                              ]
                            },
                            "validUntil": {
                              "$ref": "#/components/schemas/typeDateTimeNullable",
                              "description": "validity of job result"
                            },
                            "log": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "content of log produced by job processing",
                              "examples": [
                                "Some really long text"
                              ]
                            },
                            "language": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Available only if module Foreign languages is active and initialized.",
                              "examples": [
                                "cs"
                              ]
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "job-detail-try-counter-exceeded-limit",
                      "message": "You have exceeded the limit of job detail request for\nunprocessed job \"1xv8s4c\". Please wait for job:finished\nevent after job is completed!",
                      "instance": "1xv8s4c"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "job-not-found",
                      "message": "Job with ID \"1xv8s4c\" not found.",
                      "instance": "1xv8s4c"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Job detail",
        "operationId": "getJobDetail",
        "description": "Returns information about job. If job is completed, it will contain\nadditional information about job result.\n\n\nReturns 404 if job does not exist.\n\nReturns 403 response if job detail of unprocessed job is requested more\nthan 10 times.",
        "tags": [
          "Jobs"
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "description": "",
            "required": true,
            "example": "3ax1844",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/system/files": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "images"
                      ],
                      "properties": {
                        "images": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "filename of uploaded file",
                                "examples": [
                                  "image.jpg"
                                ]
                              },
                              "created": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "datetime when file was uploaded"
                              }
                            }
                          }
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "filename of uploaded file",
                                "examples": [
                                  "image.jpg"
                                ]
                              },
                              "created": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "datetime when file was uploaded"
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of uploaded files",
        "operationId": "getListOfUploadedFiles",
        "description": "Retrieves your uploaded files that can be copied in supported endpoints\nto entities within e-shop.",
        "tags": [
          "Files"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "jobId"
                      ],
                      "properties": {
                        "jobId": {
                          "examples": [
                            "ad24xod"
                          ],
                          "description": "token of job",
                          "type": "string"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "Batch files upload",
        "operationId": "uploadFiles",
        "description": "**This endpoint has been only renamed from \"File upload\" after we created\nnew synchronous endpoint one file upload. Url and structure is unchanged**\n\nPerforms file upload asynchronously.\n\nPlease note that order of files matter (result of job respects the order\nof images in request).\n\n\nIn case of specifying filename, keep in mind that extension is checked\nwhether it respects file type.\n\n\nThe result can be found in job detail in `resultUrl`. The result is\nformed as normal API response:\n\n\n```\n\n{\n    \"data\": {\n        \"images\":[\n            {\n                \"index\": 0,\n                \"md5\": \"072c1a2005e17dcd3a3cca3d2c769264\",\n                \"name\": \"kocka.png\",\n                \"created\": \"2023-01-16T13:19:32+0100\",\n                \"sourceUrl\": \"https://example.com/image.png\"\n            }\n        ]\n    },\n    \"errors\": [\n        {\n            \"errorCode\": \"file-upload-size-limit\",\n            \"message\": \"Uploaded file size limit exceeded. Limit is 2 MB.\",\n            \"instance\": \"data[1]\"\n        }\n    ]\n}\n\n```\n\n\nIn the result's `images` section, there are successfully uploaded images\nwith their info and with `index` field which is order of the image in\nthe request (0-based indexing).\n\n\nIn the result's `errors` section, there are errors which occurred during\nsome images upload and with number in brackets in `data[0]` in\n`instance`, which is order of the image in the request (0-based\nindexing).\n\n\nSee more about [Files upload](#section/basic-principles/files-upload)\n\n\nSee how [Asynchronous\nrequests](https://developers.shoptet.com/asynchronous-requests/) work on\nour developer's portal.\n\n\nCurrently maximum of 50 files can be uploaded in one request. Current\nfilesize limit per file is 2MB.",
        "tags": [
          "Files"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 50,
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "sourceUrl"
                      ],
                      "properties": {
                        "sourceUrl": {
                          "type": "string",
                          "description": "source URL of the image you want to upload.",
                          "examples": [
                            "https://example.com/file.png"
                          ]
                        },
                        "name": {
                          "$ref": "#/components/schemas/typeFilename",
                          "description": "desired filename for the file to be saved as. May be suffixed with number in case of duplication. Generated when not set.",
                          "examples": [
                            "amazing-filename.png"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "x-shoptet-async-endpoint": true
      }
    },
    "/api/system/file": {
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "image": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "name"
                          ],
                          "properties": {
                            "name": {
                              "type": "string",
                              "description": "filename of saved file, used for assign file in 'source*' parameters.",
                              "examples": [
                                "file.png"
                              ]
                            },
                            "created": {
                              "$ref": "#/components/schemas/typeDateTimeNullable",
                              "description": "datetime when file was uploaded"
                            }
                          }
                        },
                        "file": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "name"
                          ],
                          "properties": {
                            "name": {
                              "type": "string",
                              "description": "filename of saved file, used for assign file in 'source*' parameters.",
                              "examples": [
                                "file.pdf"
                              ]
                            },
                            "created": {
                              "$ref": "#/components/schemas/typeDateTimeNullable",
                              "description": "datetime when file was uploaded"
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "file-not-found",
                      "message": "File with URL \"https://example.com/image.png\" not found.",
                      "instance": "https://example.com/image.png"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Does not match the regex pattern ^[0-9a-zA-Z\\\\-.]+$",
                      "instance": "data.name"
                    },
                    {
                      "errorCode": "file-upload-error",
                      "message": "File upload failed.",
                      "instance": "payload"
                    },
                    {
                      "errorCode": "file-upload-size-limit",
                      "message": "Uploaded file size limit exceeded. Limit is 2 MB.",
                      "instance": "payload"
                    },
                    {
                      "errorCode": "file-upload-invalid-type",
                      "message": "Unsupported filetype.",
                      "instance": "payload"
                    },
                    {
                      "errorCode": "file-upload-invalid-chars",
                      "message": "Filename contains invalid characters or extension is missing.",
                      "instance": "payload"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "File upload",
        "operationId": "uploadFile",
        "description": "**This is new endpoint - older asynchronous endpoint has been only renamed\nto \"Batch files upload\" in documentation, url and structure is unchanged**\n\n**Please, do not use this endpoint for batch file upload!**\n\nPerforms one file upload synchronously in same way as asynchronous files \nupload.\n\n\nIn the result's `image` section, there are successfully uploaded image\nwith current unique name and upload datetime.\n\n\nSee more about [Files upload](#section/basic-principles/files-upload)\n\n\nIn case of image upload, response tag is \"image\", any other file types has response key \"file\" as here:\n\n\nIMAGE: JPG, PNG, GIF\n\n\n```\n{\n    \"data\": {\n        \"image\": {\n            \"name\": \"image.jpg\",\n            \"created\": \"2025-03-31T20:28:55+0200\"\n        }\n    },\n    \"errors\": null\n}\n```\n\nANY OTHER FILE TYPE\n\n\n```\n{\n    \"data\": {\n        \"file\": {\n            \"name\": \"file.pdf\",\n            \"created\": \"2025-03-31T20:28:55+0200\"\n        }\n    },\n    \"errors\": null\n}\n```\n\n\nCurrent filesize limit is 2MB.",
        "tags": [
          "Files"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "sourceUrl"
                    ],
                    "properties": {
                      "sourceUrl": {
                        "type": "string",
                        "description": "source URL of the image you want to upload.",
                        "examples": [
                          "https://example.com/file.png"
                        ]
                      },
                      "name": {
                        "$ref": "#/components/schemas/typeFilename",
                        "description": "desired filename for the file to be saved as. May be suffixed with number in case of duplication. Generated when not set.",
                        "examples": [
                          "amazing-filename.png"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/system/endpoints": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "endpoints"
                      ],
                      "properties": {
                        "endpoints": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "endpoint",
                              "description",
                              "group",
                              "access",
                              "action"
                            ],
                            "properties": {
                              "endpoint": {
                                "type": "string",
                                "description": "endpoint identifier",
                                "examples": [
                                  "orders"
                                ]
                              },
                              "description": {
                                "type": "string",
                                "description": "localized endpoint name",
                                "examples": [
                                  "List of orders"
                                ]
                              },
                              "group": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "id",
                                  "description"
                                ],
                                "properties": {
                                  "id": {
                                    "type": "integer",
                                    "description": "endpoint group ID",
                                    "examples": [
                                      2
                                    ]
                                  },
                                  "description": {
                                    "type": "string",
                                    "description": "localized group name",
                                    "examples": [
                                      "Orders"
                                    ]
                                  }
                                }
                              },
                              "access": {
                                "type": "string",
                                "enum": [
                                  "read",
                                  "write",
                                  "both"
                                ],
                                "description": "read/write rights. Possible values: `read`, `write`, `both`",
                                "examples": [
                                  "read"
                                ]
                              },
                              "action": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "enum": [
                                  "add",
                                  "edit",
                                  "delete",
                                  null
                                ],
                                "examples": [
                                  "add"
                                ],
                                "description": "action for approval of endpoints. Possible values [`insert`, `delete`, `update`], or `NULL` for endpoints already approved."
                              }
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of available endpoints",
        "operationId": "getListOfAvailableEndpoints",
        "description": "List of endpoints available within the systems. Using the \"status\" parameter, you can list the approved \nendpoints, or endpoints pending approval. In default state, without the parameter, the endpoint returns \nthe approved endpoints.",
        "tags": [
          "Endpoints"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "description": "supported values: `approved`, `pending`",
            "example": "approved",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/reviews/products": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "reviews",
                        "paginator"
                      ],
                      "properties": {
                        "reviews": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "guid",
                              "date",
                              "orderCode",
                              "rating",
                              "productName",
                              "productGuid",
                              "description",
                              "fullName",
                              "email",
                              "customerGuid",
                              "authorized",
                              "visible",
                              "reaction",
                              "updated"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Review id.",
                                "examples": [
                                  1
                                ]
                              },
                              "guid": {
                                "$ref": "#/components/schemas/typeGuid"
                              },
                              "date": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "Review creation date."
                              },
                              "orderCode": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Order code related to review. Can be null.",
                                "examples": [
                                  "2011000002"
                                ]
                              },
                              "rating": {
                                "type": "integer",
                                "description": "Number from 1 to 5 representing starts of review's rating.",
                                "examples": [
                                  5
                                ]
                              },
                              "productName": {
                                "type": "string",
                                "description": "Product name related to review.",
                                "examples": [
                                  "Snack"
                                ]
                              },
                              "productGuid": {
                                "oneOf": [
                                  {
                                    "$ref": "#/components/schemas/typeGuidUnlimited"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "description": "Product guid related to review."
                              },
                              "description": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "examples": [
                                  "Snack was very good"
                                ]
                              },
                              "fullName": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Fullname of review's author. Can be null.",
                                "examples": [
                                  "John Doe"
                                ]
                              },
                              "email": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Email of the review author. If it's a registered customer and the review email is empty, it's filled with the customer's main account email. Can be null.",
                                "examples": [
                                  "johndoe@email.tld"
                                ]
                              },
                              "customerGuid": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Customer guid related to review. Can be null.",
                                "examples": [
                                  "443cad54-73bc-11e8-8216-002590dad85e"
                                ]
                              },
                              "authorized": {
                                "type": "boolean",
                                "examples": [
                                  true
                                ]
                              },
                              "visible": {
                                "type": "boolean",
                                "examples": [
                                  false
                                ]
                              },
                              "reaction": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "reactionCreated",
                                  "reactionFullName",
                                  "reactionEmail",
                                  "reactionText"
                                ],
                                "properties": {
                                  "reactionCreated": {
                                    "$ref": "#/components/schemas/typeDateTimeNullable",
                                    "description": "Date of creation of reaction. Can be null."
                                  },
                                  "reactionFullName": {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "examples": [
                                      "John Doe"
                                    ]
                                  },
                                  "reactionEmail": {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "examples": [
                                      "johndoe@email.tld"
                                    ]
                                  },
                                  "reactionText": {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "examples": [
                                      "Thank you for your review!"
                                    ]
                                  }
                                }
                              },
                              "updated": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "Timestamp whenever the rating is changed"
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "summary": "List of products reviews",
        "operationId": "getListOfProductsReviews",
        "description": "Returns list of product's reviews.",
        "tags": [
          "Reviews"
        ],
        "parameters": [
          {
            "name": "dateFrom",
            "in": "query",
            "description": "Filter reviews with creation date after date",
            "required": true,
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "Filter reviews with creation date before date",
            "required": true,
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changeTimeFrom",
            "in": "query",
            "description": "Filter reviews changed after this date (included)",
            "required": true,
            "example": "2019-09-05T00:00:00%2B0000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productGuid",
            "in": "query",
            "description": "Product identifier to filter reviews by.",
            "required": true,
            "example": "91670fd3-5b3d-11e7-819d-002590dc5efc",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderCode",
            "in": "query",
            "description": "Order identifier to filter reviews by.",
            "required": true,
            "example": "2011000002",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultItemsPerPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "guid",
                        "date",
                        "orderCode",
                        "rating",
                        "productName",
                        "productGuid",
                        "description",
                        "fullName",
                        "email",
                        "customerGuid",
                        "authorized",
                        "visible",
                        "reaction",
                        "updated"
                      ],
                      "properties": {
                        "guid": {
                          "$ref": "#/components/schemas/typeGuid"
                        },
                        "date": {
                          "$ref": "#/components/schemas/typeDateTimeNullable",
                          "description": "Review creation date."
                        },
                        "orderCode": {
                          "type": [
                            "null",
                            "string"
                          ],
                          "description": "Order code related to review. Can be null.",
                          "examples": [
                            "2011000002"
                          ]
                        },
                        "rating": {
                          "type": "integer",
                          "description": "Number from 1 to 5 representing starts of review's rating.",
                          "examples": [
                            5
                          ]
                        },
                        "productName": {
                          "type": "string",
                          "description": "Product name related to review.",
                          "examples": [
                            "Snack"
                          ]
                        },
                        "productGuid": {
                          "oneOf": [
                            {
                              "$ref": "#/components/schemas/typeGuidUnlimited"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Product guid related to review."
                        },
                        "description": {
                          "type": [
                            "null",
                            "string"
                          ],
                          "examples": [
                            "Snack was very good"
                          ]
                        },
                        "fullName": {
                          "type": [
                            "null",
                            "string"
                          ],
                          "description": "Fullname of review's author. Can be null.",
                          "examples": [
                            "John Doe"
                          ]
                        },
                        "email": {
                          "type": [
                            "null",
                            "string"
                          ],
                          "description": "Email of the review author. If it's a registered customer and the review email is empty, it's filled with the customer's main account email. Can be null.",
                          "examples": [
                            "johndoe@email.tld"
                          ]
                        },
                        "ipAddress": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "IP address of the client who made the review. Can be null.",
                          "examples": [
                            "213.46.237.24"
                          ]
                        },
                        "customerGuid": {
                          "type": [
                            "null",
                            "string"
                          ],
                          "description": "Customer guid related to review. Can be null.",
                          "examples": [
                            "443cad54-73bc-11e8-8216-002590dad85e"
                          ]
                        },
                        "authorized": {
                          "type": "boolean",
                          "examples": [
                            true
                          ]
                        },
                        "visible": {
                          "type": "boolean",
                          "examples": [
                            false
                          ]
                        },
                        "reaction": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "reactionCreated",
                            "reactionFullName",
                            "reactionEmail",
                            "reactionText"
                          ],
                          "properties": {
                            "reactionCreated": {
                              "$ref": "#/components/schemas/typeDateTimeNullable",
                              "description": "Date of creation of reaction. Can be null."
                            },
                            "reactionFullName": {
                              "type": [
                                "null",
                                "string"
                              ],
                              "examples": [
                                "John Doe"
                              ]
                            },
                            "reactionEmail": {
                              "type": [
                                "null",
                                "string"
                              ],
                              "examples": [
                                "johndoe@email.tld"
                              ]
                            },
                            "reactionText": {
                              "type": [
                                "null",
                                "string"
                              ],
                              "examples": [
                                "Thank you for your review!"
                              ]
                            }
                          }
                        },
                        "updated": {
                          "$ref": "#/components/schemas/typeDateTimeNullable",
                          "description": "Timestamp whenever the rating is changed"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Method requires active rating module in eshop.",
                      "instance": "rating"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "product-not-found",
                      "message": "Product with guid \"92a9d61e-7481-11e8-8216-002590dad85e\" not found",
                      "instance": "1009d61e-7481-11e8-8216-002590dad5TG"
                    },
                    {
                      "errorCode": "customer-not-found",
                      "message": "Customer with guid \"92a9d61e-7481-11e8-8216-002590dad85e\" not found",
                      "instance": "92a9d61e-7481-11e8-8216-002590dad85e"
                    },
                    {
                      "errorCode": "order-not-found",
                      "message": "Order \"20202020\" not found.",
                      "instance": "20202020"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "errorCode": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          },
                          "instance": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "The property productGuid is required",
                      "instance": "data.productGuid"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "The property rate is required",
                      "instance": "data.rating"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Invalid value number \"6\". Value must be from 1 to 5.",
                      "instance": "data.rating"
                    },
                    {
                      "errorCode": "rating-already-voted",
                      "message": "You have already submitted a review from this IP address.",
                      "instance": "ipAddress"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Product review insertion",
        "operationId": "createProductReview",
        "description": "Importing product reviews with option to backdate them",
        "tags": [
          "Reviews"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "productGuid",
                      "rating"
                    ],
                    "properties": {
                      "productGuid": {
                        "oneOf": [
                          {
                            "$ref": "#/components/schemas/typeGuidUnlimited"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "Product guid related to review."
                      },
                      "date": {
                        "$ref": "#/components/schemas/typeDateTimeNullable",
                        "description": "Review creation date."
                      },
                      "fullName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "minLength": 1,
                        "maxLength": 64,
                        "description": "full name (can be `null`)",
                        "examples": [
                          "Jan Novak"
                        ]
                      },
                      "email": {
                        "type": "string",
                        "minLength": 5,
                        "maxLength": 100,
                        "description": "email address",
                        "examples": [
                          "jan.novak@gmail.com"
                        ]
                      },
                      "description": {
                        "type": [
                          "null",
                          "string"
                        ],
                        "examples": [
                          "Snack was very good"
                        ]
                      },
                      "rating": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 5,
                        "description": "Number from 1 to 5 representing starts of review's rating.",
                        "examples": [
                          5
                        ]
                      },
                      "customerGuid": {
                        "type": [
                          "null",
                          "string"
                        ],
                        "description": "Customer guid related to review. Can be null.",
                        "examples": [
                          "443cad54-73bc-11e8-8216-002590dad85e"
                        ]
                      },
                      "orderCode": {
                        "type": [
                          "null",
                          "string"
                        ],
                        "description": "Order code related to review. Can be null.",
                        "examples": [
                          "2011000002"
                        ]
                      },
                      "ipAddress": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "maxLength": 255,
                        "description": "IP address of the client who made the review",
                        "examples": [
                          "213.46.237.24"
                        ]
                      },
                      "reaction": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "reactionCreated": {
                            "$ref": "#/components/schemas/typeDateTimeNullable",
                            "description": "Date of creation of reaction. Can be null."
                          },
                          "reactionFullName": {
                            "type": [
                              "null",
                              "string"
                            ],
                            "examples": [
                              "John Doe"
                            ]
                          },
                          "reactionEmail": {
                            "type": [
                              "null",
                              "string"
                            ],
                            "minLength": 5,
                            "maxLength": 100,
                            "examples": [
                              "johndoe@email.tld"
                            ]
                          },
                          "reactionText": {
                            "type": [
                              "null",
                              "string"
                            ],
                            "examples": [
                              "Thank you for your review!"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/reviews/products/{reviewId}": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "guid",
                        "date",
                        "orderCode",
                        "rating",
                        "productName",
                        "productGuid",
                        "description",
                        "fullName",
                        "email",
                        "customerGuid",
                        "authorized",
                        "visible",
                        "reaction",
                        "updated"
                      ],
                      "properties": {
                        "guid": {
                          "$ref": "#/components/schemas/typeGuid"
                        },
                        "date": {
                          "$ref": "#/components/schemas/typeDateTimeNullable",
                          "description": "Review creation date."
                        },
                        "orderCode": {
                          "type": [
                            "null",
                            "string"
                          ],
                          "description": "Order code related to review. Can be null.",
                          "examples": [
                            "2011000002"
                          ]
                        },
                        "rating": {
                          "type": "integer",
                          "description": "Number from 1 to 5 representing starts of review's rating.",
                          "examples": [
                            5
                          ]
                        },
                        "productName": {
                          "type": "string",
                          "description": "Product name related to review.",
                          "examples": [
                            "Snack"
                          ]
                        },
                        "productGuid": {
                          "oneOf": [
                            {
                              "$ref": "#/components/schemas/typeGuidUnlimited"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Product guid related to review."
                        },
                        "description": {
                          "type": [
                            "null",
                            "string"
                          ],
                          "examples": [
                            "Snack was very good"
                          ]
                        },
                        "fullName": {
                          "type": [
                            "null",
                            "string"
                          ],
                          "description": "Fullname of review's author. Can be null.",
                          "examples": [
                            "John Doe"
                          ]
                        },
                        "email": {
                          "type": [
                            "null",
                            "string"
                          ],
                          "description": "Email of the review author. If it's a registered customer and the review email is empty, it's filled with the customer's main account email. Can be null.",
                          "examples": [
                            "johndoe@email.tld"
                          ]
                        },
                        "ipAddress": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "IP address of the client who made the review. Can be null.",
                          "examples": [
                            "213.46.237.24"
                          ]
                        },
                        "customerGuid": {
                          "type": [
                            "null",
                            "string"
                          ],
                          "description": "Customer guid related to review. Can be null.",
                          "examples": [
                            "443cad54-73bc-11e8-8216-002590dad85e"
                          ]
                        },
                        "authorized": {
                          "type": "boolean",
                          "examples": [
                            true
                          ]
                        },
                        "visible": {
                          "type": "boolean",
                          "examples": [
                            false
                          ]
                        },
                        "reaction": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "reactionCreated",
                            "reactionFullName",
                            "reactionEmail",
                            "reactionText"
                          ],
                          "properties": {
                            "reactionCreated": {
                              "$ref": "#/components/schemas/typeDateTimeNullable",
                              "description": "Date of creation of reaction. Can be null."
                            },
                            "reactionFullName": {
                              "type": [
                                "null",
                                "string"
                              ],
                              "examples": [
                                "John Doe"
                              ]
                            },
                            "reactionEmail": {
                              "type": [
                                "null",
                                "string"
                              ],
                              "examples": [
                                "johndoe@email.tld"
                              ]
                            },
                            "reactionText": {
                              "type": [
                                "null",
                                "string"
                              ],
                              "examples": [
                                "Thank you for your review!"
                              ]
                            }
                          }
                        },
                        "updated": {
                          "$ref": "#/components/schemas/typeDateTimeNullable",
                          "description": "Timestamp whenever the rating is changed"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Method requires active rating module in eshop.",
                      "instance": "rating"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "product-review-not-found",
                      "message": "Product review with ID \"1\" not found.",
                      "instance": "1"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Product review update",
        "operationId": "updateProductReview",
        "description": "Updates the product review. This endpoint is available only when the 'Rating' module is active.",
        "parameters": [
          {
            "name": "reviewId",
            "in": "path",
            "description": "review ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "tags": [
          "Reviews"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "description": {
                        "type": [
                          "null",
                          "string"
                        ],
                        "description": "Text of the review. Can be null only if 'Comment is required' setting is disabled.",
                        "examples": [
                          "Snack was very good"
                        ]
                      },
                      "fullName": {
                        "type": [
                          "null",
                          "string"
                        ],
                        "maxLength": 64,
                        "description": "Fullname of review's author. Can be null only if 'Comment is required' setting is disabled.",
                        "examples": [
                          "John Doe"
                        ]
                      },
                      "authorized": {
                        "type": "boolean",
                        "examples": [
                          false
                        ],
                        "description": "flag whether the review is authorized"
                      },
                      "visible": {
                        "type": "boolean",
                        "examples": [
                          false
                        ],
                        "description": "flag whether the review is visible on web"
                      },
                      "reaction": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "reactionFullName": {
                            "type": [
                              "null",
                              "string"
                            ],
                            "maxLength": 255,
                            "description": "Fullname of reaction author. Can be null.",
                            "examples": [
                              "John Doe"
                            ]
                          },
                          "reactionEmail": {
                            "type": [
                              "null",
                              "string"
                            ],
                            "minLength": 1,
                            "maxLength": 100,
                            "description": "Email of the reaction author.",
                            "examples": [
                              "johndoe@email.tld"
                            ]
                          },
                          "reactionText": {
                            "type": [
                              "null",
                              "string"
                            ],
                            "description": "Text of the reaction.",
                            "examples": [
                              "Thank you for your review!"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/reviews/project": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "reviews",
                        "paginator"
                      ],
                      "properties": {
                        "reviews": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "date",
                              "orderCode",
                              "rating",
                              "description",
                              "fullName",
                              "email",
                              "customerGuid",
                              "visible",
                              "reaction"
                            ],
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Review id.",
                                "examples": [
                                  1
                                ]
                              },
                              "date": {
                                "$ref": "#/components/schemas/typeDateTimeNullable",
                                "description": "Review creation date."
                              },
                              "orderCode": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Order code related to review. Can be null.",
                                "examples": [
                                  "2011000002"
                                ]
                              },
                              "rating": {
                                "type": "integer",
                                "description": "Number from 1 to 5 representing starts of review's rating.",
                                "examples": [
                                  5
                                ]
                              },
                              "description": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "examples": [
                                  "Snack was very good"
                                ]
                              },
                              "fullName": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Fullname of review's author. Can be null.",
                                "examples": [
                                  "John Doe"
                                ]
                              },
                              "email": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Email of the review author. If it's a registered customer and the review email is empty, it's filled with the customer's main account email. Can be null.",
                                "examples": [
                                  "johndoe@email.tld"
                                ]
                              },
                              "customerGuid": {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "description": "Customer guid related to review. Can be null.",
                                "examples": [
                                  "443cad54-73bc-11e8-8216-002590dad85e"
                                ]
                              },
                              "visible": {
                                "type": "boolean",
                                "description": "flag, whether the review is visible",
                                "examples": [
                                  false
                                ]
                              },
                              "reaction": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "reactionCreated",
                                  "reactionFullName",
                                  "reactionEmail",
                                  "reactionText"
                                ],
                                "properties": {
                                  "reactionCreated": {
                                    "$ref": "#/components/schemas/typeDateTimeNullable",
                                    "description": "Date of creation of reaction. Can be null."
                                  },
                                  "reactionFullName": {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "examples": [
                                      "John Doe"
                                    ]
                                  },
                                  "reactionEmail": {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "examples": [
                                      "johndoe@email.tld"
                                    ]
                                  },
                                  "reactionText": {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "examples": [
                                      "Thank you for your review!"
                                    ]
                                  }
                                }
                              }
                            }
                          }
                        },
                        "paginator": {
                          "$ref": "#/components/schemas/paginator"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Method requires active rating module in project.",
                      "instance": "rating"
                    },
                    {
                      "errorCode": "rating-not-enabled",
                      "message": "The project must have store ratings enabled. They are currently disabled.",
                      "instance": "settings"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "List of project reviews",
        "operationId": "getListOfProjectReviews",
        "description": "Returns a list of the project reviews. This endpoint is available only when the 'Rating' module is active. Also, the project must have store ratings enabled in the administration settings.\nThe endpoint supports [Paging](#section/basic-principles/paging).",
        "tags": [
          "Reviews"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultItemsPerPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultPageParameter"
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "review"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "review": {
                          "$ref": "#/components/schemas/reviewProject"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Method requires active rating module in project.",
                      "instance": "rating"
                    },
                    {
                      "errorCode": "rating-not-enabled",
                      "message": "The project must have store ratings enabled. They are currently disabled.",
                      "instance": "settings"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "customer-not-found",
                      "message": "Customer with guid \"92a9d61e-7481-11e8-8216-002590dad85e\" not found",
                      "instance": "92a9d61e-7481-11e8-8216-002590dad85e"
                    },
                    {
                      "errorCode": "order-not-found",
                      "message": "Order \"20202020\" not found.",
                      "instance": "20202020"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "errorCode": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          },
                          "instance": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "invalid-request-data",
                      "message": "The property rate is required",
                      "instance": "data.rating"
                    },
                    {
                      "errorCode": "invalid-request-data",
                      "message": "Invalid value number \"6\". Value must be from 1 to 5.",
                      "instance": "data.rating"
                    },
                    {
                      "errorCode": "rating-already-voted",
                      "message": "You have already submitted a review from this IP address.",
                      "instance": "ipAddress"
                    },
                    {
                      "errorCode": "rating-advanced-fullname-comment-required",
                      "message": "The store rating must include fullName and description when option \"Comments required\" is enabled.",
                      "instance": "settings"
                    },
                    {
                      "errorCode": "order-customer-mismatch",
                      "message": "Order with code \"2018000073\" is not related to the customer with guid \"747fb32d-73bc-11e8-8216-002590dad85e\"",
                      "instance": "orderCode, customerGuid"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Project review insertion",
        "operationId": "createProjectReview",
        "description": "Creates a new project review. This endpoint is available only when the 'Rating' module is active. Also, the e-shop must have store ratings enabled in the administration settings.",
        "tags": [
          "Reviews"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "required": [
                      "rating"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "date": {
                        "$ref": "#/components/schemas/typeDateTimeNullable",
                        "description": "Review creation date. Can be null"
                      },
                      "orderCode": {
                        "type": [
                          "null",
                          "string"
                        ],
                        "description": "Order code related to review. Can be null.",
                        "examples": [
                          "2011000002"
                        ]
                      },
                      "rating": {
                        "type": "integer",
                        "description": "Number from 1 to 5 representing stars of review's rating.",
                        "examples": [
                          5
                        ]
                      },
                      "description": {
                        "minLength": 1,
                        "type": [
                          "null",
                          "string"
                        ],
                        "description": "Text of the review. Can be null only if 'Comment is required' setting is disabled.",
                        "examples": [
                          "Snack was very good"
                        ]
                      },
                      "fullName": {
                        "type": [
                          "null",
                          "string"
                        ],
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Fullname of review's author. Can be null only if 'Comment is required' setting is disabled.",
                        "examples": [
                          "John Doe"
                        ]
                      },
                      "email": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "description": "Email of the review author.",
                        "examples": [
                          "johndoe@email.tld"
                        ]
                      },
                      "customerGuid": {
                        "type": [
                          "null",
                          "string"
                        ],
                        "description": "Customer guid related to review. Can be null.",
                        "examples": [
                          "443cad54-73bc-11e8-8216-002590dad85e"
                        ]
                      },
                      "visible": {
                        "type": "boolean",
                        "examples": [
                          false
                        ],
                        "description": "Flag whether the review is visible on web."
                      },
                      "ipAddress": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "maxLength": 255,
                        "description": "IP address of the client who made the review.",
                        "examples": [
                          "213.46.237.24"
                        ]
                      },
                      "reaction": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "reactionCreated": {
                            "$ref": "#/components/schemas/typeDateTimeNullable",
                            "description": "Date of creation of reaction. Can be null."
                          },
                          "reactionFullName": {
                            "type": [
                              "null",
                              "string"
                            ],
                            "maxLength": 255,
                            "description": "Fullname of reaction author. Can be null.",
                            "examples": [
                              "John Doe"
                            ]
                          },
                          "reactionEmail": {
                            "type": [
                              "null",
                              "string"
                            ],
                            "minLength": 1,
                            "maxLength": 100,
                            "description": "Email of the reaction author.",
                            "examples": [
                              "johndoe@email.tld"
                            ]
                          },
                          "reactionText": {
                            "type": [
                              "null",
                              "string"
                            ],
                            "description": "Text of the reaction.",
                            "examples": [
                              "Thank you for your review!"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ]
      }
    },
    "/api/reviews/project/{reviewId}": {
      "patch": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "review"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "review": {
                          "$ref": "#/components/schemas/reviewProject"
                        }
                      }
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  },
                  "required": [
                    "data",
                    "errors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "missing-module",
                      "message": "Method requires active rating module in project.",
                      "instance": "rating"
                    },
                    {
                      "errorCode": "rating-not-enabled",
                      "message": "The project must have store ratings enabled. They are currently disabled.",
                      "instance": "settings"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "errors": {
                      "$ref": "#/components/schemas/Errors"
                    }
                  }
                },
                "example": {
                  "data": null,
                  "errors": [
                    {
                      "errorCode": "project-review-not-found",
                      "message": "Project review with ID \"1\" not found.",
                      "instance": "1"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Project review update",
        "operationId": "updateProjectReview",
        "description": "Updates the project review. This endpoint is available only when the 'Rating' module is active. Also, the project must have store ratings enabled in the administration settings.",
        "parameters": [
          {
            "name": "reviewId",
            "in": "path",
            "description": "review ID",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/DefaultContentType"
          }
        ],
        "tags": [
          "Reviews"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "properties": {
                      "description": {
                        "type": [
                          "null",
                          "string"
                        ],
                        "description": "Text of the review. Can be null only if 'Comment and name is required' setting is disabled.",
                        "examples": [
                          "Snack was very good"
                        ]
                      },
                      "fullName": {
                        "type": [
                          "null",
                          "string"
                        ],
                        "maxLength": 255,
                        "description": "Fullname of review's author. Can be null only if 'Comment and name is required' setting is disabled.",
                        "examples": [
                          "John Doe"
                        ]
                      },
                      "visible": {
                        "type": "boolean",
                        "examples": [
                          false
                        ],
                        "description": "Flag whether the review is visible on web."
                      },
                      "reaction": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "reactionFullName": {
                            "type": [
                              "null",
                              "string"
                            ],
                            "maxLength": 255,
                            "description": "Fullname of reaction author. Can be null.",
                            "examples": [
                              "John Doe"
                            ]
                          },
                          "reactionEmail": {
                            "type": [
                              "null",
                              "string"
                            ],
                            "minLength": 1,
                            "maxLength": 100,
                            "description": "Email of the reaction author.",
                            "examples": [
                              "johndoe@email.tld"
                            ]
                          },
                          "reactionText": {
                            "type": [
                              "null",
                              "string"
                            ],
                            "description": "Text of the reaction.",
                            "examples": [
                              "Thank you for your review!"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "shoptetAccessToken": {
        "type": "apiKey",
        "in": "header",
        "name": "Shoptet-Access-Token"
      },
      "shoptetPrivateApiToken": {
        "type": "apiKey",
        "in": "header",
        "name": "Shoptet-Private-Api-Token"
      }
    },
    "parameters": {
      "DefaultContentType": {
        "name": "Content-Type",
        "in": "header",
        "required": true,
        "schema": {
          "type": "string",
          "default": "application/json"
        }
      },
      "DefaultItemsPerPageParameter": {
        "name": "itemsPerPage",
        "in": "query",
        "description": "Returned items per page. Default and max value is 20.",
        "example": 15,
        "schema": {
          "type": "integer"
        }
      },
      "DefaultPageParameter": {
        "name": "page",
        "in": "query",
        "description": "Page number to return. Default value is 1.",
        "example": 3,
        "schema": {
          "type": "integer"
        }
      }
    },
    "schemas": {
      "Errors": {
        "type": [
          "array",
          "null"
        ],
        "items": {
          "type": "object",
          "properties": {
            "errorCode": {
              "type": "string",
              "description": "Short text error identification",
              "examples": [
                "example-error-code"
              ]
            },
            "message": {
              "type": "string",
              "description": "Descriptive error message",
              "examples": [
                "Example error message"
              ]
            },
            "instance": {
              "type": "string",
              "description": "Identification of the entity referenced",
              "examples": [
                "instance"
              ]
            }
          },
          "required": [
            "errorCode",
            "message",
            "instance"
          ],
          "additionalProperties": false
        }
      },
      "typeConstSymbol": {
        "type": "string",
        "pattern": "^[0-9]{1,4}$",
        "description": "Const symbol. Only numbers are allowed (max length 4).",
        "examples": [
          "0308"
        ]
      },
      "typeConstSymbolNullable": {
        "type": [
          "string",
          "null"
        ],
        "pattern": "^[0-9]{1,4}$",
        "description": "Const symbol. Only numbers are allowed (max length 4).",
        "examples": [
          "0308"
        ]
      },
      "salesChannelCurrency": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "code",
          "title",
          "symbol",
          "isSymbolOnLeft",
          "precision",
          "decimalSeparator",
          "thousandSeparator",
          "documentPrecision",
          "rounding"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Currency id.",
            "examples": [
              1
            ]
          },
          "code": {
            "$ref": "#/components/schemas/typeCurrencyCode"
          },
          "title": {
            "type": "string",
            "description": "Currency title.",
            "examples": [
              "Koruna"
            ]
          },
          "symbol": {
            "type": "string",
            "description": "Currency symbol.",
            "examples": [
              "Kč"
            ]
          },
          "isSymbolOnLeft": {
            "type": "boolean",
            "description": "Whether the currency symbol is on left side.",
            "examples": [
              false
            ]
          },
          "precision": {
            "type": "integer",
            "description": "Currency precision.",
            "examples": [
              2
            ]
          },
          "priority": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Currency priority.",
            "examples": [
              1
            ]
          },
          "decimalSeparator": {
            "type": "string",
            "description": "Currency decimal separator.",
            "examples": [
              ","
            ]
          },
          "thousandSeparator": {
            "type": [
              "string",
              "null"
            ],
            "description": "Currency thousand separator.",
            "examples": [
              "."
            ]
          },
          "documentPrecision": {
            "type": "integer",
            "description": "Document precision.",
            "examples": [
              0
            ]
          },
          "rounding": {
            "type": "integer",
            "description": "Currency rounding.",
            "examples": [
              3
            ]
          }
        }
      },
      "typeCurrency": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "title",
          "symbol",
          "isSymbolOnLeft",
          "precision",
          "decimalSeparator"
        ],
        "properties": {
          "code": {
            "$ref": "#/components/schemas/typeCurrencyCode"
          },
          "title": {
            "type": "string",
            "description": "Currency title.",
            "examples": [
              "Koruna"
            ]
          },
          "symbol": {
            "type": "string",
            "description": "Currency symbol.",
            "examples": [
              "Kč"
            ]
          },
          "isSymbolOnLeft": {
            "type": "boolean",
            "description": "Whether the currency symbol is on left side.",
            "examples": [
              false
            ]
          },
          "precision": {
            "type": "integer",
            "description": "Currency precision.",
            "examples": [
              2
            ]
          },
          "priority": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Currency priority.",
            "examples": [
              1
            ]
          },
          "decimalSeparator": {
            "type": "string",
            "description": "Currency decimal separator.",
            "examples": [
              ","
            ]
          },
          "thousandSeparator": {
            "type": "string",
            "description": "Currency thousand separator.",
            "examples": [
              "."
            ]
          },
          "isDefault": {
            "type": "boolean",
            "description": "Whether the language is default.",
            "examples": [
              true
            ]
          }
        }
      },
      "typeLanguage": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "name",
          "dateFormat",
          "timeFormat",
          "isVisible",
          "isBlocked"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "Language code.",
            "examples": [
              "cs"
            ]
          },
          "name": {
            "type": "string",
            "description": "Language name.",
            "examples": [
              "Čeština"
            ]
          },
          "dateFormat": {
            "type": "string",
            "description": "Date format of language.",
            "examples": [
              "Y. n. j."
            ]
          },
          "timeFormat": {
            "type": "string",
            "description": "Time format of language.",
            "examples": [
              "H:i"
            ]
          },
          "isVisible": {
            "type": "boolean",
            "description": "Whether the language is visible.",
            "examples": [
              true
            ]
          },
          "isBlocked": {
            "type": "boolean",
            "description": "Whether the language is blocked.",
            "examples": [
              false
            ]
          },
          "priority": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Language priority.",
            "examples": [
              3
            ]
          },
          "isDefault": {
            "type": "boolean",
            "description": "Whether the language is default.",
            "examples": [
              true
            ]
          }
        }
      },
      "salesChannelLanguage": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "indexName",
          "dateFormat",
          "timeFormat",
          "isVisible",
          "isBlocked",
          "priority",
          "locale"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Language id.",
            "examples": [
              1
            ]
          },
          "name": {
            "type": "string",
            "description": "Language name.",
            "examples": [
              "Čeština"
            ]
          },
          "indexName": {
            "type": "string",
            "description": "Language index name.",
            "examples": [
              "cs"
            ]
          },
          "dateFormat": {
            "type": "string",
            "description": "Date format of language.",
            "examples": [
              "Y. n. j."
            ]
          },
          "timeFormat": {
            "type": "string",
            "description": "Time format of language.",
            "examples": [
              "H:i"
            ]
          },
          "isVisible": {
            "type": "boolean",
            "description": "Whether the language is visible.",
            "examples": [
              true
            ]
          },
          "isBlocked": {
            "type": "boolean",
            "description": "Whether the language is blocked.",
            "examples": [
              false
            ]
          },
          "priority": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Language priority.",
            "examples": [
              3
            ]
          },
          "locale": {
            "type": "string",
            "description": "Locale of language.",
            "examples": [
              "cs_CZ"
            ]
          }
        }
      },
      "typeAmount": {
        "type": "string",
        "pattern": "^(-)?[0-9]+\\.[0-9]{3}$",
        "examples": [
          "1.000"
        ]
      },
      "typeAmountNullable": {
        "type": [
          "string",
          "null"
        ],
        "pattern": "^(-)?[0-9]+\\.[0-9]{3}$",
        "examples": [
          "1.000"
        ]
      },
      "typePositiveAmount": {
        "type": "string",
        "pattern": "^[0-9]+\\.[0-9]{3}$",
        "examples": [
          "1.000"
        ]
      },
      "typePositiveAmountNullable": {
        "type": [
          "string",
          "null"
        ],
        "pattern": "^[0-9]+\\.[0-9]{3}$",
        "examples": [
          "1.000"
        ]
      },
      "typePrice": {
        "type": "string",
        "pattern": "^(-)?[0-9]+\\.[0-9]{2}$",
        "examples": [
          "21.00"
        ]
      },
      "typePriceNullable": {
        "type": [
          "string",
          "null"
        ],
        "pattern": "^(-)?[0-9]+\\.[0-9]{2}$",
        "examples": [
          "21.00"
        ]
      },
      "typePriceRatio": {
        "type": "string",
        "pattern": "[0-9]+\\.[0-9]{4}$",
        "examples": [
          "0.7800"
        ]
      },
      "typeProductPriceRatio": {
        "type": "string",
        "pattern": "[0-9]+\\.[0-9]{3}$",
        "examples": [
          "0.780"
        ],
        "description": "price ratio. The price of the product shall be calculated by multiplying the price and this coefficient. The price ratio affects only the price (`price`), the special discounted price (`actionPrice`) is not affected by the ratio. This ratio has 3 decimal places and can be greater than 1,000"
      },
      "typeVatRate": {
        "type": "string",
        "pattern": "^[0-9]+\\.[0-9]{2}$",
        "examples": [
          "21.00"
        ]
      },
      "typeCurrencyCode": {
        "type": "string",
        "pattern": "^[a-zA-Z]{3}$",
        "description": "Currency code. List of available currencies within the e-shop can be found in endpoint `GET /api/eshop`.",
        "examples": [
          "CZK"
        ]
      },
      "typeCurrencyCodeNullable": {
        "type": [
          "string",
          "null"
        ],
        "pattern": "^[a-zA-Z]{3}$",
        "description": "currency code. List of available currencies within the e-shop can be found in endpoint `GET /api/eshop`.",
        "examples": [
          "CZK"
        ]
      },
      "typeDimension": {
        "type": "string",
        "pattern": "^[0-9]{1,4}\\.[0-9]{1}$",
        "examples": [
          "10.0"
        ]
      },
      "typeWeight": {
        "type": "string",
        "pattern": "^[0-9]{1,6}\\.[0-9]{3}$",
        "description": "weight in kg, unpacked (can be `null`). 3 decimal places. Maximum value 999999.",
        "examples": [
          "1.234"
        ]
      },
      "typeWeightUnlimited": {
        "type": [
          "string",
          "null"
        ],
        "pattern": "^[0-9]+\\.[0-9]{3}$",
        "description": "weight in kg, unpacked, 3 decimal places. Maximum value 999999.",
        "examples": [
          "1.234"
        ]
      },
      "typeWeightRequest": {
        "type": [
          "string",
          "null"
        ],
        "pattern": "^[0-9]{1,5}\\.[0-9]{3}$",
        "examples": [
          "15.500"
        ]
      },
      "typeDate": {
        "type": "string",
        "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
        "format": "date",
        "examples": [
          "2017-04-04"
        ]
      },
      "typeDateNullable": {
        "type": [
          "string",
          "null"
        ],
        "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
        "format": "date",
        "examples": [
          "2017-04-04"
        ]
      },
      "typeDateTime": {
        "type": "string",
        "pattern": "^[0-9]{4}-[01][0-9]-[0123][0-9]T[012][0-9]:[0-5][0-9]:[0-5][0-9]\\+[0-9]{4}$",
        "examples": [
          "2018-05-29T09:02:27+0200"
        ]
      },
      "typeDateTimeNullable": {
        "type": [
          "string",
          "null"
        ],
        "pattern": "^[0-9]{4}-[01][0-9]-[0123][0-9]T[012][0-9]:[0-5][0-9]:[0-5][0-9]\\+[0-9]{4}$",
        "examples": [
          "2018-05-29T09:02:27+0200"
        ]
      },
      "typeDateTimeRequest": {
        "type": [
          "string",
          "null"
        ],
        "pattern": "^[0-9]{4}-[01][0-9]-[0123][0-9]T[012][0-9]:[0-5][0-9]:[0-5][0-9](\\+[0-9]{4})?$",
        "examples": [
          "2018-05-29T09:02:27"
        ]
      },
      "typeExchangeRate": {
        "type": "string",
        "pattern": "^[0-9]+\\.[0-9]{8}$",
        "description": "currency rate of the receipt for the default currency of the shop. This value is saved together with the price and reflects the historical value valid in the instant of the order creation. If the shop changes the default currency, the value still refers to the original currency!",
        "examples": [
          "1.04568087"
        ]
      },
      "typeCustomerFieldValue": {
        "type": "string",
        "enum": [
          "required",
          "optional",
          "hidden"
        ],
        "examples": [
          "required",
          "optional",
          "hidden"
        ]
      },
      "typeUnitRatio": {
        "type": "string",
        "pattern": "^[0-9]+\\.[0-9]{9}$",
        "description": "Unit ratio",
        "examples": [
          "0.001"
        ]
      },
      "typeGuid": {
        "type": "string",
        "maxLength": 36,
        "pattern": "^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$",
        "examples": [
          "1b02cb8e-d7b5-11e0-9a5c-feab5ed617ed"
        ]
      },
      "typeGuidNullable": {
        "type": [
          "string",
          "null"
        ],
        "maxLength": 36,
        "pattern": "^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$",
        "examples": [
          "1b02cb8e-d7b5-11e0-9a5c-feab5ed617ed"
        ]
      },
      "typeGuidUnlimited": {
        "type": "string",
        "maxLength": 36,
        "examples": [
          "1b02cb8e-d7b5-11e0-9a5c-feab5ed617ed"
        ]
      },
      "typeNonEmptyString": {
        "type": "string",
        "minLength": 1
      },
      "typeFilename": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255,
        "pattern": "^[0-9a-zA-Z_\\-.]+$"
      },
      "typeFilenameNullable": {
        "type": [
          "string",
          "null"
        ],
        "minLength": 1,
        "maxLength": 255,
        "pattern": "^[0-9a-zA-Z_\\-.]+$",
        "examples": [
          "image.png"
        ]
      },
      "typeColor": {
        "type": [
          "string",
          "null"
        ],
        "pattern": "^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$",
        "examples": [
          "FF00FF",
          "#FF00FF",
          "#ffffff"
        ]
      },
      "typeVariantCodeRequest": {
        "type": "string",
        "pattern": "^[a-zA-Z0-9_\\/ \\-\\.]+$",
        "minLength": 1,
        "maxLength": 64,
        "description": "Variant's code. Must be unique if set. After processing it will be converted to uppercase. Generated automatically if not set.",
        "examples": [
          "0035"
        ]
      },
      "paginator": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "totalCount",
          "page",
          "pageCount",
          "itemsOnPage",
          "itemsPerPage"
        ],
        "properties": {
          "totalCount": {
            "type": "integer",
            "description": "total number of available records",
            "examples": [
              55
            ]
          },
          "page": {
            "type": "integer",
            "description": "current page",
            "examples": [
              1
            ]
          },
          "pageCount": {
            "type": "integer",
            "description": "total available of pages",
            "examples": [
              3
            ]
          },
          "itemsOnPage": {
            "type": "integer",
            "description": "number of currently returned records",
            "examples": [
              20
            ]
          },
          "itemsPerPage": {
            "type": "integer",
            "description": "required number of records per page",
            "examples": [
              20
            ]
          }
        }
      },
      "itemSurchargeParameters": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "parameterName": {
              "type": "object",
              "additionalProperties": false,
              "description": "surcharge parameter name's information",
              "properties": {
                "code": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "parameters name code, can be null if already deleted",
                  "examples": [
                    "priplatek"
                  ]
                },
                "name": {
                  "type": "string",
                  "description": "parameters name",
                  "examples": [
                    "Příplatek"
                  ]
                },
                "subscription": {
                  "type": [
                    "boolean",
                    "null"
                  ],
                  "description": "indicates whether this surcharge parameter is a subscription (recurring payment)",
                  "examples": [
                    true,
                    false
                  ]
                }
              }
            },
            "parameterValue": {
              "type": "object",
              "additionalProperties": false,
              "description": "surcharge parameter value's information",
              "properties": {
                "valueIndex": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "parameters value code, can be null if already deleted",
                  "examples": [
                    "zlaty"
                  ]
                },
                "description": {
                  "type": "string",
                  "description": "parameters value name",
                  "examples": [
                    "Zlatý"
                  ]
                },
                "price": {
                  "$ref": "#/components/schemas/typePriceNullable",
                  "description": "parameters value additional price",
                  "examples": [
                    "100.00"
                  ]
                }
              }
            }
          }
        }
      },
      "itemSpecificSurchargeParameters": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "relationId",
            "name",
            "price"
          ],
          "additionalProperties": false,
          "properties": {
            "relationId": {
              "type": "string",
              "description": "id which identifies relation between item and surcharge. Can be used to delete surcharge parameter related to item.",
              "examples": [
                "abc123"
              ]
            },
            "name": {
              "type": "string",
              "description": "full name of surcharge parameter.",
              "examples": [
                "Povinný - příplatek"
              ]
            },
            "price": {
              "$ref": "#/components/schemas/typePriceNullable",
              "description": "price of surcharge parameter",
              "examples": [
                "123.00"
              ]
            }
          }
        }
      },
      "productFlags": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "code",
            "title",
            "system"
          ],
          "properties": {
            "code": {
              "type": "string",
              "description": "flag identifier",
              "examples": [
                "action"
              ]
            },
            "title": {
              "type": "string",
              "description": "flag title",
              "examples": [
                "Action"
              ]
            },
            "system": {
              "type": "boolean",
              "description": "is it a system flag common for all e-shops?",
              "examples": [
                true
              ]
            }
          }
        }
      },
      "itemSurchargeParametersWithoutPrice": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "parameterName": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "code": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": {
                  "type": "string"
                },
                "subscription": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                }
              }
            },
            "parameterValue": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "valueIndex": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "itemSpecificSurchargeParametersWithoutPrice": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "relationId",
            "name"
          ],
          "additionalProperties": false,
          "properties": {
            "relationId": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          }
        }
      },
      "surchargeParameterValue": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "valueIndex",
          "description",
          "price",
          "priority"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Id of surcharge parameter value. This identifier is used on eshop frontend.",
            "examples": [
              23
            ]
          },
          "valueIndex": {
            "type": "string",
            "description": "Code (identifier) of parameter's value",
            "examples": [
              "zlaty"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description (name) of parameter's value",
            "examples": [
              "Zlatý"
            ]
          },
          "price": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "Price of parameter's value"
          },
          "priority": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Priority of parameter's value",
            "examples": [
              1
            ]
          }
        }
      },
      "productSurchargeParameter": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "name",
          "displayName",
          "description",
          "priority",
          "required",
          "currency",
          "includingVat",
          "values"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "parameter identifier",
            "examples": [
              "potisk"
            ]
          },
          "name": {
            "type": "string",
            "description": "parameter name",
            "examples": [
              "S potiskem"
            ]
          },
          "displayName": {
            "type": [
              "string",
              "null"
            ],
            "description": "parameter display name",
            "examples": [
              "Příplatek za potisk"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "parameter description",
            "examples": [
              "Ozdobný potisk"
            ]
          },
          "priority": {
            "type": [
              "integer",
              "null"
            ],
            "description": "parameter priority",
            "examples": [
              1
            ]
          },
          "required": {
            "type": "boolean",
            "description": "Is value for parameter required?",
            "examples": [
              true
            ]
          },
          "currency": {
            "type": "string",
            "description": "Currency of price in parameter's values",
            "examples": [
              "CZK"
            ]
          },
          "includingVat": {
            "type": "boolean",
            "description": "Is price in parameter's values including VAT?",
            "examples": [
              true
            ]
          },
          "subscription": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "indicates whether this surcharge parameter is a subscription (recurring payment)",
            "examples": [
              true,
              false
            ]
          },
          "values": {
            "type": "array",
            "description": "Possible parameter's values",
            "items": {
              "$ref": "#/components/schemas/productSurchargeParameterValue"
            }
          }
        }
      },
      "productSurchargeParameterValue": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "valueIndex",
          "description",
          "price",
          "priority",
          "visible"
        ],
        "properties": {
          "valueIndex": {
            "type": "string",
            "description": "Code (identifier) of parameter's value",
            "examples": [
              "zlaty"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description (name) of parameter's value",
            "examples": [
              "Zlatý"
            ]
          },
          "price": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "Price of parameter's value",
            "examples": [
              "100.00"
            ]
          },
          "priority": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Priority of parameter's value",
            "examples": [
              1
            ]
          },
          "visible": {
            "type": "boolean",
            "description": "Is parameter value visible?",
            "examples": [
              true
            ]
          }
        }
      },
      "productRequestSurchargeParameter": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "values"
        ],
        "properties": {
          "code": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "parameter identifier, language dependent",
            "examples": [
              "pp-1"
            ]
          },
          "values": {
            "type": "array",
            "minItems": 1,
            "description": "Product surcharge parameter values.",
            "items": {
              "$ref": "#/components/schemas/productRequestSurchargeParameterValue"
            }
          }
        }
      },
      "productRequestSurchargeParameterValue": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "valueIndex"
        ],
        "properties": {
          "valueIndex": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "parameter value identifier, language dependent",
            "examples": [
              "hodnota-01"
            ]
          },
          "price": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "surcharge amount which is added to the product price for the customer when this parameter is chosen.",
            "examples": [
              "650.00"
            ]
          },
          "visible": {
            "type": "boolean",
            "description": "flag, whether the parameter value is visible",
            "examples": [
              true
            ]
          }
        }
      },
      "productFilteringParameterValue": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "valueIndex",
          "name",
          "priority",
          "color",
          "image"
        ],
        "description": "Possible parameter's values",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Parameter value id",
            "examples": [
              1
            ]
          },
          "valueIndex": {
            "type": [
              "string",
              "null"
            ],
            "description": "Code (identifier) of parameter's value",
            "examples": [
              "ag"
            ]
          },
          "name": {
            "type": "string",
            "description": "Description (name) of parameter's value",
            "examples": [
              "Gold"
            ]
          },
          "priority": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Parameter value priority",
            "examples": [
              1
            ]
          },
          "color": {
            "type": [
              "string",
              "null"
            ],
            "description": "Hex code of color",
            "examples": [
              "#34ff34"
            ]
          },
          "image": {
            "type": [
              "string",
              "null"
            ],
            "description": "Url of image",
            "examples": [
              "https://www.domena-eshopu.cz/user/parameters/100.jpg"
            ]
          }
        }
      },
      "productVariantParameterValue": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "paramValue",
          "rawValue",
          "color",
          "image",
          "valuePriority"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Parameter value id",
            "examples": [
              1
            ]
          },
          "paramValue": {
            "type": "string",
            "description": "Description (name) of parameter's value",
            "examples": [
              "Color Red"
            ]
          },
          "rawValue": {
            "type": "string",
            "description": "Code (identifier) of parameter's value",
            "examples": [
              "color-red"
            ]
          },
          "color": {
            "type": [
              "string",
              "null"
            ],
            "description": "Hex code of color",
            "examples": [
              "#34ff34"
            ]
          },
          "image": {
            "type": [
              "string",
              "null"
            ],
            "description": "Url of image",
            "examples": [
              "https://www.domena-eshopu.cz/user/parameters/100.jpg"
            ]
          },
          "valuePriority": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Parameter value priority",
            "examples": [
              1
            ]
          }
        }
      },
      "consumptionTax": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "price",
          "currency",
          "isVisible",
          "created",
          "updated"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Consumption tax id.",
            "examples": [
              1
            ]
          },
          "name": {
            "type": "string",
            "description": "Consumption tax name.",
            "examples": [
              "ABC"
            ]
          },
          "price": {
            "$ref": "#/components/schemas/typePrice",
            "description": "Consumption tax amount.",
            "examples": [
              "50.00"
            ]
          },
          "currency": {
            "type": "string",
            "description": "Consumption tax currency.",
            "examples": [
              "EUR"
            ]
          },
          "isVisible": {
            "type": "boolean",
            "description": "Flag, whether the consumption tax is visible in documents or not.",
            "examples": [
              false
            ]
          },
          "created": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "Consumption tax creation date.",
            "examples": [
              "2018-08-02T17:22:02+0200"
            ]
          },
          "updated": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "Consumption tax update date.",
            "examples": [
              "2018-08-02T17:22:02+0200"
            ]
          }
        }
      },
      "measureUnit": {
        "type": [
          "object",
          "null"
        ],
        "additionalProperties": false,
        "required": [
          "packagingUnitId",
          "packagingAmount",
          "measureUnitId",
          "measureAmount"
        ],
        "properties": {
          "packagingUnitId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Packaging unit id",
            "examples": [
              22
            ]
          },
          "packagingAmount": {
            "$ref": "#/components/schemas/typePositiveAmountNullable",
            "description": "amount being in a package",
            "examples": [
              "1.000"
            ]
          },
          "measureUnitId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Measure unit id",
            "examples": [
              1
            ]
          },
          "measureAmount": {
            "$ref": "#/components/schemas/typePositiveAmountNullable",
            "description": "referential amount",
            "examples": [
              "1"
            ]
          }
        }
      },
      "recyclingFee": {
        "type": [
          "object",
          "null"
        ],
        "additionalProperties": false,
        "required": [
          "category",
          "fee"
        ],
        "properties": {
          "category": {
            "$ref": "#/components/schemas/typeNonEmptyString",
            "description": "Recycling fee category name.",
            "examples": [
              "shoes"
            ]
          },
          "fee": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "Recycling fee."
          },
          "unit": {
            "enum": [
              "pcs",
              "kg"
            ],
            "description": "Recycling fee unit.",
            "examples": [
              "pcs"
            ]
          }
        }
      },
      "recyclingFeeCategory": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "category",
          "fee",
          "unit",
          "currency"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Recycling fee category id.",
            "examples": [
              1
            ]
          },
          "category": {
            "type": "string",
            "description": "Recycling fee category name.",
            "examples": [
              "Cups"
            ]
          },
          "fee": {
            "$ref": "#/components/schemas/typePrice",
            "description": "Recycling fee amount."
          },
          "unit": {
            "enum": [
              "pcs",
              "kg"
            ],
            "description": "Recycling fee unit.",
            "examples": [
              "pcs"
            ]
          },
          "currency": {
            "type": "string",
            "description": "Currency code of recycling fee.",
            "examples": [
              "EUR"
            ]
          }
        }
      },
      "productConsumptionTax": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "price",
          "currency"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Consumption tax identifier.",
            "examples": [
              1
            ]
          },
          "name": {
            "type": "string",
            "description": "Consumption tax name.",
            "examples": [
              "Tobacco"
            ]
          },
          "price": {
            "$ref": "#/components/schemas/typePrice",
            "description": "Consumption tax price."
          },
          "currency": {
            "type": "string",
            "description": "Currency code of consumption tax.",
            "examples": [
              "CZK"
            ]
          }
        }
      },
      "billingMethod": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "unique identifier of billing method",
            "examples": [
              3
            ]
          },
          "name": {
            "type": "string",
            "description": "designation of the billing method; see also [Invoice billing methods](#section/code-lists/invoice-billing-methods) code list.",
            "examples": [
              "Cash"
            ]
          }
        }
      },
      "itemPrice": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "withVat",
          "withoutVat",
          "vat",
          "vatRate"
        ],
        "properties": {
          "withVat": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "price including tax",
            "examples": [
              "121.00"
            ]
          },
          "withoutVat": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "price excluding tax",
            "examples": [
              "100.00"
            ]
          },
          "vat": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "VAT value, two decimal places"
          },
          "vatRate": {
            "$ref": "#/components/schemas/typeVatRate",
            "description": "VAT rate"
          }
        }
      },
      "productPrices": {
        "type": [
          "object"
        ],
        "additionalProperties": false,
        "properties": {
          "purchasePrice": {
            "type": "object",
            "additionalProperties": false,
            "description": "purchase price of the product variant. Currently for preview only! Will be used as replace for buy price. Please watch API news.",
            "required": [
              "price",
              "vatRate",
              "includingVat"
            ],
            "properties": {
              "price": {
                "$ref": "#/components/schemas/typePriceNullable",
                "description": "purchase price of the product variant",
                "examples": [
                  "500.00"
                ]
              },
              "vatRate": {
                "$ref": "#/components/schemas/typeVatRate",
                "description": "VAT rate",
                "examples": [
                  21
                ]
              },
              "includingVat": {
                "type": "boolean",
                "description": "flag, whether the purchase price is including VAT",
                "examples": [
                  true
                ]
              }
            }
          }
        }
      },
      "cartPrice": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "withVat",
          "withoutVat",
          "vat"
        ],
        "properties": {
          "withVat": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "Total price with VAT",
            "examples": [
              "121.00"
            ]
          },
          "withoutVat": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "Total price without VAT",
            "examples": [
              "100.00"
            ]
          },
          "vat": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "Total price VAT (not VAT rate)",
            "examples": [
              "21.00"
            ]
          }
        }
      },
      "paymentMethod": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "guid",
          "name"
        ],
        "properties": {
          "guid": {
            "$ref": "#/components/schemas/typeGuidNullable",
            "description": "payment method identifier (can be `null`)",
            "examples": [
              "1b02cb8e-d7b5-11e0-9a5c-feab5ed617ed"
            ]
          },
          "name": {
            "type": "string",
            "description": "description of payment method",
            "examples": [
              "Cash"
            ]
          }
        }
      },
      "shipping": {
        "type": [
          "object",
          "null"
        ],
        "additionalProperties": false,
        "required": [
          "guid",
          "name"
        ],
        "properties": {
          "guid": {
            "$ref": "#/components/schemas/typeGuid",
            "description": "transport type identifier"
          },
          "name": {
            "type": "string",
            "description": "description of transport method (Czech post, PPL, in person..)",
            "examples": [
              "PPL"
            ]
          }
        }
      },
      "stockList": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "title",
          "isDeliveryPoint",
          "visibleOnEshop",
          "deliveryPointTitle",
          "deliveryPointAddress"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "stock unique ID",
            "examples": [
              1
            ]
          },
          "title": {
            "type": "string",
            "description": "stock name",
            "examples": [
              "Main stock"
            ]
          },
          "isDeliveryPoint": {
            "type": "boolean",
            "description": "flag, whether the stock is also a distribution point",
            "examples": [
              false
            ]
          },
          "deliveryPointTitle": {
            "type": [
              "string",
              "null"
            ],
            "description": "name of the distribution point (can be `null`)",
            "examples": [
              "Main delivery point"
            ]
          },
          "deliveryPointAddress": {
            "type": [
              "string",
              "null"
            ],
            "description": "address of the distribution point (can be `null`)",
            "examples": [
              "Main street 123, Prague"
            ]
          }
        }
      },
      "stock": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "title",
          "isDeliveryPoint",
          "visibleOnEshop",
          "deliveryPointTitle",
          "deliveryPointAddress",
          "type",
          "parentStockId"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "stock unique ID",
            "examples": [
              1
            ]
          },
          "title": {
            "type": "string",
            "description": "stock name",
            "examples": [
              "Main stock"
            ]
          },
          "isDeliveryPoint": {
            "type": "boolean",
            "description": "flag, whether the stock is also a distribution point",
            "examples": [
              false
            ]
          },
          "deliveryPointTitle": {
            "type": [
              "string",
              "null"
            ],
            "description": "name of the distribution point (can be `null`)",
            "examples": [
              "Main delivery point"
            ]
          },
          "deliveryPointAddress": {
            "type": [
              "string",
              "null"
            ],
            "description": "address of the distribution point (can be `null`)",
            "examples": [
              "Main street 123, Prague"
            ]
          },
          "type": {
            "enum": [
              "internalPhysical",
              "internalVirtual",
              "external",
              null
            ],
            "description": "Stock type, enum, determines if stock is `internalPhysical` (default setting, same as current ordinary stock), `internalVirtual` (logical subdivision of an internal physical stock, child with a parent stock - see `parentStockid`) or `external` (external standalone warehouse)",
            "examples": [
              "internalVirtual"
            ]
          },
          "parentStockId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Parent stock ID",
            "examples": [
              1
            ]
          }
        }
      },
      "availabilityShort": {
        "type": [
          "object",
          "null"
        ],
        "additionalProperties": false,
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "availability unique ID",
            "examples": [
              -1
            ]
          },
          "name": {
            "type": "string",
            "description": "availability name",
            "examples": [
              "Sold out"
            ]
          }
        }
      },
      "supplier": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "guid",
          "name"
        ],
        "properties": {
          "guid": {
            "$ref": "#/components/schemas/typeGuid",
            "description": "supplier unique ID"
          },
          "name": {
            "type": "string",
            "description": "supplier name",
            "examples": [
              "Willy Wonka"
            ]
          }
        }
      },
      "brand": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "guid",
          "name",
          "indexName",
          "description",
          "brandWeb",
          "showInCategoriesMenu",
          "showInBrandList",
          "metaTitle",
          "metaDescription"
        ],
        "properties": {
          "guid": {
            "type": "string",
            "description": "brand GUID",
            "examples": [
              "1b02cb8e-d7b5-11e0-9a5c-feab5ed617ed"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of brand",
            "examples": [
              "Willy Wonka"
            ]
          },
          "indexName": {
            "type": "string",
            "description": "Unique index name of brand",
            "examples": [
              "willy-wonka"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of brand. May contain HTML character",
            "examples": [
              "<p>Brand new chocolate <strong>everyday</strong></p>"
            ]
          },
          "brandWeb": {
            "type": [
              "string",
              "null"
            ],
            "description": "URL of brand website",
            "examples": [
              "https://www.willywonka.com"
            ]
          },
          "postalAddress": {
            "type": [
              "string",
              "null"
            ],
            "description": "GPSR, postal address",
            "examples": [
              "Chocolate Factory, 1234 Candy Lane, Sweet City, SC 56789"
            ]
          },
          "contactEmail": {
            "type": [
              "string",
              "null"
            ],
            "description": "GPSR, contact email",
            "examples": [
              "willywonka@shoptet.cz"
            ]
          },
          "europeanResellerPostalAddress": {
            "type": [
              "string",
              "null"
            ],
            "description": "GPSR, european reseller postal address",
            "examples": [
              "Chocolate Factory, 1234 Candy Lane, Sweet City, SC 56789"
            ]
          },
          "europeanResellerContactEmail": {
            "type": [
              "string",
              "null"
            ],
            "description": "GPSR, reseller contact email",
            "examples": [
              "europeanreseller@shoptet.cz"
            ]
          },
          "manufacturingCompanyName": {
            "type": [
              "string",
              "null"
            ],
            "description": "GPSR, manufacturing company name",
            "examples": [
              "Shoptet a.s."
            ]
          },
          "europeanResellerManufacturingCompanyName": {
            "type": [
              "string",
              "null"
            ],
            "description": "GPSR, reseller manufacturing company name",
            "examples": [
              "Shoptet a.s."
            ]
          },
          "showInCategoriesMenu": {
            "type": "boolean",
            "description": "Is this brand shown in categories menu?",
            "examples": [
              true
            ]
          },
          "showInBrandList": {
            "type": "boolean",
            "description": "Is this brand shown in brand list?",
            "examples": [
              false
            ]
          },
          "metaTitle": {
            "type": [
              "string",
              "null"
            ],
            "description": "Meta title of brand",
            "examples": [
              "Willy Wonka"
            ]
          },
          "metaDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "Meta description of brand",
            "examples": [
              "Willy Wonka - Chocolate Factory"
            ]
          }
        }
      },
      "brandCreate": {
        "type": "object",
        "additionalProperties": false,
        "minProperties": 1,
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "Brand name",
            "examples": [
              "Willy Wonka"
            ]
          },
          "indexName": {
            "type": [
              "string",
              "null"
            ],
            "description": "unique index name of brand",
            "examples": [
              "willy-wonka"
            ]
          },
          "brandWeb": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 200,
            "description": "Brand website",
            "examples": [
              "https://willywonka.com"
            ]
          },
          "postalAddress": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 65535,
            "description": "GPSR, postal address",
            "examples": [
              "Chocolate Factory, 1234 Candy Lane, Sweet City, SC 56789"
            ]
          },
          "contactEmail": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 100,
            "description": "GPSR, contact email",
            "examples": [
              "willywonka@shoptet.cz"
            ]
          },
          "europeanResellerPostalAddress": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 65535,
            "description": "GPSR, european reseller postal address",
            "examples": [
              "Chocolate Factory, 1234 Candy Lane, Sweet City, SC 56789"
            ]
          },
          "europeanResellerContactEmail": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 100,
            "description": "GPSR, reseller contact email",
            "examples": [
              "europeanreseller@shoptet.cz"
            ]
          },
          "manufacturingCompanyName": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 255,
            "description": "GPSR, manufacturing company name",
            "examples": [
              "Shoptet a.s."
            ]
          },
          "europeanResellerManufacturingCompanyName": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 255,
            "description": "GPSR, Reseller manufacturing company name",
            "examples": [
              "Shoptet a.s."
            ]
          },
          "showInCategoriesMenu": {
            "type": "boolean",
            "description": "Is this brand shown in categories menu? Default is false",
            "examples": [
              true
            ]
          },
          "showInBrandList": {
            "type": "boolean",
            "description": "Is this brand shown in brand list? Default is false",
            "examples": [
              true
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of brand. May contain HTML characters",
            "examples": [
              "<p>Brand new chocolate <strong>everyday</strong></p>"
            ]
          },
          "metaTitle": {
            "type": [
              "string",
              "null"
            ],
            "description": "Meta title of brand",
            "examples": [
              "Willy Wonka"
            ]
          },
          "metaDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "Meta description of brand",
            "examples": [
              "Brand new chocolate everyday"
            ]
          }
        }
      },
      "brandNamed": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "name"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "unique brand code",
            "examples": [
              "willy-wonka"
            ]
          },
          "name": {
            "type": "string",
            "description": "brand name",
            "examples": [
              "Willy Wonka"
            ]
          }
        }
      },
      "webhook": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "event",
          "url",
          "created",
          "updated"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "notification unique ID",
            "examples": [
              992801
            ]
          },
          "event": {
            "type": "string",
            "description": "event, see [Webhook event types](#section/code-lists/webhook-event-types) code list",
            "examples": [
              "order:create"
            ]
          },
          "url": {
            "type": "string",
            "description": "webhook URL",
            "examples": [
              "https://myapplication.tld/orders.php"
            ]
          },
          "created": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "webhook registration date"
          },
          "updated": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "webhook update date (can be `null`)"
          }
        }
      },
      "webhookNotification": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "webhookId",
          "webhookUrl",
          "event",
          "eventCreated",
          "created",
          "attempted",
          "attempts",
          "status",
          "active",
          "data"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "notification unique ID",
            "examples": [
              992801
            ]
          },
          "webhookId": {
            "type": "integer",
            "description": "link to webhook, which invoked the notification",
            "examples": [
              10201
            ]
          },
          "webhookUrl": {
            "type": "string",
            "description": "webhook URL in the instant, when the notification was created",
            "examples": [
              "https://myapplication.tld/orders.php"
            ]
          },
          "event": {
            "type": "string",
            "description": "event, see [Webhook event types](#section/code-lists/webhook-event-types) code list",
            "examples": [
              "order:create"
            ]
          },
          "eventCreated": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "time of event creation - notification"
          },
          "created": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date and time, when the webhook notification was created"
          },
          "attempted": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date and time of last notification delivery attempt at webhook URL (can be `null`)"
          },
          "attempts": {
            "type": "integer",
            "description": "number of implemented attempts to deliver the notification",
            "examples": [
              3
            ]
          },
          "status": {
            "type": "string",
            "description": "results of the last attempt to deliver the notification",
            "examples": [
              "failed"
            ]
          },
          "active": {
            "type": "boolean",
            "description": "flag that the notification was not delivered yet, and the number of attempts did not reach the maximum amount The notification will be resent to the target URL",
            "examples": [
              true
            ]
          },
          "data": {
            "$ref": "#/components/schemas/notificationData",
            "description": "content of sent notification"
          }
        }
      },
      "notificationData": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "eshopId",
          "event",
          "eventCreated",
          "eventInstance"
        ],
        "properties": {
          "eshopId": {
            "type": "integer",
            "description": "number of (id) e-shop",
            "examples": [
              1
            ]
          },
          "event": {
            "type": "string",
            "examples": [
              "order:create"
            ]
          },
          "eventCreated": {
            "$ref": "#/components/schemas/typeDateTimeNullable"
          },
          "eventInstance": {
            "type": "string",
            "description": "Identification of the entity that the notification concerns. For example order number, product GUID, etc.",
            "examples": [
              "c9e976a5-340b-11e4-b500-ac162d8a2454"
            ]
          }
        }
      },
      "price": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "vat",
          "toPay",
          "currencyCode",
          "withoutVat",
          "withVat",
          "exchangeRate"
        ],
        "properties": {
          "vat": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "VAT value, two decimal places",
            "examples": [
              "42.00"
            ]
          },
          "toPay": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "total price to pay",
            "examples": [
              "242.00"
            ]
          },
          "currencyCode": {
            "$ref": "#/components/schemas/typeCurrencyCode"
          },
          "withoutVat": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "price excluding tax",
            "examples": [
              "200.00"
            ]
          },
          "withVat": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "price including tax",
            "examples": [
              "242.00"
            ]
          },
          "exchangeRate": {
            "$ref": "#/components/schemas/typeExchangeRate"
          },
          "invoicingExchangeRate": {
            "$ref": "#/components/schemas/typeExchangeRate"
          },
          "partialPaymentAmount": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "can be value expressed in percents or as exact money value expression (with up to two decimal places) - depends on partialPaymentType value",
            "examples": [
              "100.00"
            ]
          },
          "partialPaymentType": {
            "type": "string",
            "description": "'percents' = partial payment as percentage from total price | 'absolute' = exact expression of partial payment in money",
            "examples": [
              "percents"
            ]
          }
        }
      },
      "address": {
        "type": [
          "object",
          "null"
        ],
        "additionalProperties": false,
        "required": [
          "company",
          "fullName",
          "street",
          "houseNumber",
          "city",
          "district",
          "additional",
          "zip",
          "countryCode",
          "regionName",
          "regionShortcut"
        ],
        "properties": {
          "company": {
            "type": [
              "string",
              "null"
            ],
            "description": "name of purchaser''s company (or `null`)",
            "examples": [
              "Shoptet s.r.o."
            ]
          },
          "fullName": {
            "type": [
              "string",
              "null"
            ],
            "description": "name of purchaser (or `null`)",
            "examples": [
              "John Doe"
            ]
          },
          "street": {
            "type": [
              "string",
              "null"
            ],
            "description": "street of purchaser (or `null`)",
            "examples": [
              "French"
            ]
          },
          "houseNumber": {
            "type": [
              "string",
              "null"
            ],
            "description": "street number (or `null`)",
            "examples": [
              "123"
            ]
          },
          "city": {
            "type": [
              "string",
              "null"
            ],
            "description": "city/town (village) (or `null`)",
            "examples": [
              "Praha 2"
            ]
          },
          "district": {
            "type": [
              "string",
              "null"
            ],
            "description": "county (or `null`)",
            "examples": [
              "Praha 2"
            ]
          },
          "additional": {
            "type": [
              "string",
              "null"
            ],
            "description": "additional address information (or `null`)",
            "examples": [
              "4. floor"
            ]
          },
          "zip": {
            "type": [
              "string",
              "null"
            ],
            "description": "ZIP or postal code (or `null`)",
            "examples": [
              "120 00"
            ]
          },
          "countryCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "tree-character ISO country code (ISO 4217)",
            "examples": [
              "CZ"
            ]
          },
          "regionName": {
            "type": [
              "string",
              "null"
            ],
            "description": "region name (or `null`)",
            "examples": [
              "Capital city"
            ]
          },
          "regionShortcut": {
            "type": [
              "string",
              "null"
            ],
            "description": "region abbreviation (or `null`)",
            "examples": [
              "CC"
            ]
          }
        }
      },
      "billingAddress": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "company",
          "fullName",
          "street",
          "houseNumber",
          "city",
          "district",
          "additional",
          "zip",
          "countryCode",
          "regionName",
          "regionShortcut",
          "companyId",
          "taxId",
          "vatId"
        ],
        "properties": {
          "company": {
            "type": [
              "string",
              "null"
            ],
            "description": "name of purchaser''s company (or `null`)",
            "examples": [
              "Shoptet s.r.o."
            ]
          },
          "fullName": {
            "type": [
              "string",
              "null"
            ],
            "description": "name of purchaser (or `null`)",
            "examples": [
              "John Doe"
            ]
          },
          "street": {
            "type": [
              "string",
              "null"
            ],
            "description": "street of purchaser (or `null`)",
            "examples": [
              "French"
            ]
          },
          "houseNumber": {
            "type": [
              "string",
              "null"
            ],
            "description": "street number (or `null`)",
            "examples": [
              "123"
            ]
          },
          "city": {
            "type": [
              "string",
              "null"
            ],
            "description": "city/town (village) (or `null`)",
            "examples": [
              "Praha 2"
            ]
          },
          "district": {
            "type": [
              "string",
              "null"
            ],
            "description": "county (or `null`)",
            "examples": [
              "Praha 2"
            ]
          },
          "additional": {
            "type": [
              "string",
              "null"
            ],
            "description": "additional address information (or `null`)",
            "examples": [
              "4. floor"
            ]
          },
          "zip": {
            "type": [
              "string",
              "null"
            ],
            "description": "ZIP or postal code (or `null`)",
            "examples": [
              "120 00"
            ]
          },
          "countryCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "tree-character ISO country code (ISO 4217)",
            "examples": [
              "CZ"
            ]
          },
          "regionName": {
            "type": [
              "string",
              "null"
            ],
            "description": "region name (or `null`)",
            "examples": [
              "Capital city"
            ]
          },
          "regionShortcut": {
            "type": [
              "string",
              "null"
            ],
            "description": "region abbreviation (or `null`)",
            "examples": [
              "CC"
            ]
          },
          "companyId": {
            "type": [
              "string",
              "null"
            ],
            "description": "Company registration number. (can be `null`)",
            "examples": [
              "12345678"
            ]
          },
          "vatId": {
            "type": [
              "string",
              "null"
            ],
            "description": "VAT identification number. (can be `null`)",
            "examples": [
              "CZ289324675"
            ]
          },
          "vatIdValidationStatus": {
            "enum": [
              "unverified",
              "verified",
              "waiting",
              null
            ],
            "description": "Info, whether VAT ID has been verified, enum [`unverified`, `verified`, `waiting`]",
            "examples": [
              "verified"
            ]
          },
          "taxId": {
            "type": [
              "string",
              "null"
            ],
            "description": "TAX identification number. For Czech address, taxId is same as vatId. (can be `null`)",
            "examples": [
              "CZ289324675"
            ]
          }
        }
      },
      "billingAddressCustomer": {
        "type": "object",
        "additionalProperties": false,
        "minProperties": 1,
        "properties": {
          "company": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 255,
            "description": "company (can be `null`)",
            "examples": [
              "Lard shop"
            ]
          },
          "fullName": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 255,
            "description": "full name (can be `null`)",
            "examples": [
              "John Lard"
            ]
          },
          "street": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 255,
            "description": "street (can be `null`)",
            "examples": [
              "Lard street"
            ]
          },
          "houseNumber": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 255,
            "description": "house number (can be `null`)",
            "examples": [
              "123"
            ]
          },
          "city": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 255,
            "description": "city/town (can be `null`)",
            "examples": [
              "Lard city"
            ]
          },
          "district": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 255,
            "description": "region (can be `null`)",
            "examples": [
              "Prague-East"
            ]
          },
          "additional": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 255,
            "description": "additional address information (can be `null`)",
            "examples": [
              "4. floor"
            ]
          },
          "zip": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 255,
            "description": "ZIP or postal code (can be `null`)",
            "examples": [
              "120 00"
            ]
          },
          "countryCode": {
            "type": "string",
            "minLength": 1,
            "description": "country (can be `null`)",
            "examples": [
              "CZ"
            ]
          },
          "regionName": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 255,
            "description": "region name (can be `null`)",
            "examples": [
              "Capital city"
            ]
          },
          "companyId": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 18,
            "description": "Company registration number of the customer, if purchasing as a company. Optional.",
            "examples": [
              "12345678"
            ]
          },
          "vatId": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 16,
            "description": "VAT identification number of the customer, if purchasing as a company. Optional.",
            "examples": [
              "CZ123456"
            ]
          },
          "taxId": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 16,
            "description": "TAX identification number of the customer, if purchasing on the company. For Czech address, taxId must be the same as vatId, or left empty. Optional.",
            "examples": [
              "CZ123456"
            ]
          }
        }
      },
      "deliveryAddressCustomer": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "guid",
          "company",
          "fullName",
          "street",
          "houseNumber",
          "city",
          "district",
          "additional",
          "zip",
          "countryCode",
          "regionName",
          "regionShortcut"
        ],
        "properties": {
          "guid": {
            "type": "string",
            "description": "customer delivery address identification",
            "examples": [
              "c9e976a5-340b-11e4-b500-ac162d8a2454"
            ]
          },
          "company": {
            "type": [
              "string",
              "null"
            ],
            "description": "company (can be `null`)",
            "examples": [
              "Lard shop"
            ]
          },
          "fullName": {
            "type": [
              "string",
              "null"
            ],
            "description": "full name (can be `null`)",
            "examples": [
              "John Lard"
            ]
          },
          "street": {
            "type": [
              "string",
              "null"
            ],
            "description": "street (can be `null`)",
            "examples": [
              "Lard street"
            ]
          },
          "houseNumber": {
            "type": [
              "string",
              "null"
            ],
            "description": "house number (can be `null`)",
            "examples": [
              "5647"
            ]
          },
          "city": {
            "type": [
              "string",
              "null"
            ],
            "description": "city/town (can be `null`)",
            "examples": [
              "Čelákovice"
            ]
          },
          "district": {
            "type": [
              "string",
              "null"
            ],
            "description": "region (can be `null`)",
            "examples": [
              "Prague-East"
            ]
          },
          "additional": {
            "type": [
              "string",
              "null"
            ],
            "description": "additional info (can be `null`)",
            "examples": [
              "Arcade"
            ]
          },
          "zip": {
            "type": [
              "string",
              "null"
            ],
            "description": "ZIP/postal code (can be `null`)",
            "examples": [
              "25088"
            ]
          },
          "countryCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "country (can be `null`)",
            "examples": [
              "CZ"
            ]
          },
          "regionName": {
            "type": [
              "string",
              "null"
            ],
            "description": "region name (can be `null`)",
            "examples": [
              "Central Bohemia"
            ]
          },
          "regionShortcut": {
            "type": [
              "string",
              "null"
            ],
            "description": "region abbreviation (can be `null`)",
            "examples": [
              "StK"
            ]
          },
          "isDefault": {
            "type": "boolean",
            "examples": [
              true
            ]
          }
        }
      },
      "documentItemsWithPrice": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "productGuid",
          "code",
          "itemType",
          "name",
          "variantName",
          "brand",
          "amount",
          "amountUnit",
          "remark",
          "priceRatio",
          "weight",
          "additionalField",
          "itemPrice",
          "unitPrice",
          "buyPrice",
          "purchasePrice",
          "itemId"
        ],
        "properties": {
          "productGuid": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/typeGuidUnlimited"
              },
              {
                "type": "null"
              }
            ],
            "description": "global unique permanent product identifier (can be `null`)"
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "description": "variant code (product) (can be `null`)",
            "examples": [
              "159"
            ]
          },
          "itemType": {
            "type": "string",
            "description": "item type",
            "examples": [
              "product"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ],
            "description": "product name (can be `null`)",
            "examples": [
              "Flying carpet"
            ]
          },
          "variantName": {
            "type": [
              "string",
              "null"
            ],
            "description": "variant name (can be `null`)",
            "examples": [
              "Red Flying carpet"
            ]
          },
          "brand": {
            "type": [
              "string",
              "null"
            ],
            "description": "brand name (can be `null`)",
            "examples": [
              "Flying carpets Inc."
            ]
          },
          "amount": {
            "$ref": "#/components/schemas/typeAmountNullable",
            "description": "quantity"
          },
          "amountUnit": {
            "type": [
              "string",
              "null"
            ],
            "description": "unit of quantity (can be `null`)",
            "examples": [
              "pcs"
            ]
          },
          "remark": {
            "type": [
              "string",
              "null"
            ],
            "description": "remark (can be `null`)",
            "examples": [
              "This is a remark"
            ]
          },
          "priceRatio": {
            "$ref": "#/components/schemas/typePriceRatio",
            "description": "discount - 0.7800 = discount 22%; 1.0000 = no discount"
          },
          "weight": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/typeWeight"
              },
              {
                "type": "null"
              }
            ]
          },
          "additionalField": {
            "type": [
              "string",
              "null"
            ],
            "description": "additional info (can be `null`)",
            "examples": [
              "additional info"
            ]
          },
          "itemPrice": {
            "$ref": "#/components/schemas/itemPrice",
            "description": "item price"
          },
          "unitPrice": {
            "$ref": "#/components/schemas/itemPrice",
            "description": "unit price"
          },
          "buyPrice": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/itemPrice"
              },
              {
                "type": "null"
              }
            ],
            "description": "buy price of the part, can be `null`.",
            "deprecated": true
          },
          "purchasePrice": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/itemPrice"
              },
              {
                "type": "null"
              }
            ],
            "description": "purchase price of the part, can be `null`."
          },
          "displayPrices": {
            "type": "array",
            "description": "in some cases, one item is displayed as multiple lines in the administration or a printout. This array contains one or more rows representing the printout version of the item.",
            "items": {
              "$ref": "#/components/schemas/itemPrice"
            }
          },
          "itemId": {
            "type": "integer",
            "description": "item identifier for manipulation with this item",
            "examples": [
              123
            ]
          },
          "surchargeParameters": {
            "$ref": "#/components/schemas/itemSurchargeParameters"
          },
          "specificSurchargeParameters": {
            "$ref": "#/components/schemas/itemSpecificSurchargeParameters"
          },
          "itemPriceVatBreakdown": {
            "type": [
              "array",
              "null"
            ],
            "description": "Detailed VAT list displaying tax amounts for each VAT rate used in the document. Applied for non product items.",
            "items": {
              "$ref": "#/components/schemas/itemPrice"
            }
          }
        }
      },
      "inStoreAddress": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "countryCode",
          "city",
          "zipCode",
          "street"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "in-store address unique ID",
            "examples": [
              1
            ]
          },
          "countryCode": {
            "type": "string",
            "description": "country code",
            "examples": [
              "CZ"
            ]
          },
          "city": {
            "type": "string",
            "description": "city",
            "examples": [
              "Prague"
            ]
          },
          "zipCode": {
            "type": "string",
            "description": "ZIP code",
            "examples": [
              "11000"
            ]
          },
          "street": {
            "type": "string",
            "description": "street",
            "examples": [
              "Main street 123"
            ]
          }
        }
      },
      "inStoreContact": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "email",
          "phone",
          "openingHour",
          "transport"
        ],
        "properties": {
          "email": {
            "type": [
              "string",
              "null"
            ],
            "description": "in-store contact email",
            "examples": [
              "jan.novak@shoptet.cz"
            ]
          },
          "phone": {
            "type": [
              "string",
              "null"
            ],
            "description": "in-store contact phone",
            "examples": [
              "+420123456789"
            ]
          },
          "openingHour": {
            "type": [
              "string",
              "null"
            ],
            "description": "in-store opening hours",
            "examples": [
              "Mon-Fri 9:00-18:00"
            ]
          },
          "transport": {
            "type": [
              "string",
              "null"
            ],
            "description": "in-store transport information",
            "examples": [
              "Near the central station"
            ]
          }
        }
      },
      "invoiceItem": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "productGuid",
          "itemId",
          "code",
          "itemType",
          "name",
          "variantName",
          "brand",
          "amount",
          "amountUnit",
          "remark",
          "priceRatio",
          "weight",
          "additionalField",
          "itemPrice",
          "unitPrice",
          "buyPrice",
          "purchasePrice",
          "consumptionTax"
        ],
        "properties": {
          "productGuid": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/typeGuidUnlimited"
              },
              {
                "type": "null"
              }
            ],
            "description": "global unique permanent product identifier."
          },
          "itemId": {
            "type": "integer",
            "description": "item identifier for manipulation with this item",
            "examples": [
              123
            ]
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "description": "variant code (product)",
            "examples": [
              "159"
            ]
          },
          "itemType": {
            "type": "string",
            "description": "item type",
            "examples": [
              "product"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ],
            "description": "product name",
            "examples": [
              "Flying carpet"
            ]
          },
          "variantName": {
            "type": [
              "string",
              "null"
            ],
            "description": "variant name",
            "examples": [
              "Red Flying carpet"
            ]
          },
          "brand": {
            "type": [
              "string",
              "null"
            ],
            "description": "brand (or manufacturer, possibly)",
            "examples": [
              "Flying carpets Inc."
            ]
          },
          "amount": {
            "$ref": "#/components/schemas/typeAmountNullable",
            "description": "quantity",
            "examples": [
              "3.45"
            ]
          },
          "amountUnit": {
            "type": [
              "string",
              "null"
            ],
            "description": "unit of quantity",
            "examples": [
              "ks"
            ]
          },
          "remark": {
            "type": [
              "string",
              "null"
            ],
            "description": "remark",
            "examples": [
              "This is a remark"
            ]
          },
          "priceRatio": {
            "$ref": "#/components/schemas/typePriceRatio",
            "description": "discount - 0.7800 = discount 22%; 1.0000 = no discount"
          },
          "weight": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/typeWeight"
              },
              {
                "type": "null"
              }
            ]
          },
          "additionalField": {
            "type": [
              "string",
              "null"
            ],
            "description": "additional info",
            "examples": [
              "additional info"
            ]
          },
          "itemPrice": {
            "$ref": "#/components/schemas/itemPrice",
            "description": "item price"
          },
          "unitPrice": {
            "$ref": "#/components/schemas/itemPrice",
            "description": "unit price"
          },
          "buyPrice": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/itemPrice"
              },
              {
                "type": "null"
              }
            ],
            "description": "buy price of the part, can be `null`.",
            "deprecated": true
          },
          "purchasePrice": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/itemPrice"
              },
              {
                "type": "null"
              }
            ],
            "description": "purchase price of the part, can be `null`."
          },
          "displayPrices": {
            "type": "array",
            "description": "in some cases, one item is displayed as multiple lines in the administration or a printout. This array contains one or more rows representing the printout version of the item.",
            "items": {
              "$ref": "#/components/schemas/itemPrice"
            }
          },
          "recyclingFee": {
            "$ref": "#/components/schemas/recyclingFee",
            "description": "recycling fee including category and price (or possibly `null`)"
          },
          "surchargeParameters": {
            "$ref": "#/components/schemas/itemSurchargeParameters",
            "description": "items surcharge parameters, filled in item creation. Cannot be edited."
          },
          "specificSurchargeParameters": {
            "$ref": "#/components/schemas/itemSpecificSurchargeParameters",
            "description": "List of specific surcharge parameters for item detail."
          },
          "consumptionTax": {
            "$ref": "#/components/schemas/documentConsumptionTax",
            "description": "consumption tax of invoice item"
          },
          "itemPriceVatBreakdown": {
            "type": [
              "array",
              "null"
            ],
            "description": "Detailed VAT list displaying tax amounts for each VAT rate used in the invoice. Applied for non product items.",
            "items": {
              "$ref": "#/components/schemas/itemPrice"
            }
          }
        }
      },
      "documentConsumptionTax": {
        "type": [
          "object",
          "null"
        ],
        "additionalProperties": false,
        "required": [
          "currency",
          "price"
        ],
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/typeCurrencyCode"
          },
          "price": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "consumption tax value"
          }
        }
      },
      "consumptionTaxId": {
        "type": [
          "integer",
          "null"
        ],
        "description": "ID of the consumption tax. You can send this parameter, only if consumption tax module is enabled.",
        "examples": [
          1
        ]
      },
      "deliveryNoteItem": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "productGuid",
          "itemType",
          "name",
          "variantName",
          "brand",
          "amount",
          "amountUnit",
          "remark",
          "code"
        ],
        "properties": {
          "productGuid": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/typeGuidUnlimited"
              },
              {
                "type": "null"
              }
            ],
            "description": "global unique permanent product identifier"
          },
          "itemType": {
            "type": "string",
            "description": "item type",
            "examples": [
              "product"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ],
            "description": "product name",
            "examples": [
              "Flying carpet"
            ]
          },
          "variantName": {
            "type": [
              "string",
              "null"
            ],
            "description": "variant name",
            "examples": [
              "Red Flying carpet"
            ]
          },
          "brand": {
            "type": [
              "string",
              "null"
            ],
            "description": "brand (or manufacturer, possibly)",
            "examples": [
              "Flying carpets Inc."
            ]
          },
          "amount": {
            "$ref": "#/components/schemas/typeAmountNullable",
            "description": "quantity"
          },
          "amountUnit": {
            "type": [
              "string",
              "null"
            ],
            "description": "unit of quantity",
            "examples": [
              "ks"
            ]
          },
          "remark": {
            "type": [
              "string",
              "null"
            ],
            "description": "remark",
            "examples": [
              "This is a remark"
            ]
          },
          "weight": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/typeWeight"
              },
              {
                "type": "null"
              }
            ]
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "description": "variant code (product)",
            "examples": [
              "159"
            ]
          },
          "surchargeParameters": {
            "$ref": "#/components/schemas/itemSurchargeParametersWithoutPrice"
          },
          "specificSurchargeParameters": {
            "$ref": "#/components/schemas/itemSpecificSurchargeParametersWithoutPrice"
          }
        }
      },
      "eshop": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "bankAccount",
          "iban",
          "bic",
          "vatPayer"
        ],
        "properties": {
          "bankAccount": {
            "type": [
              "string",
              "null"
            ],
            "description": "e-shop bank account (can be `null`)",
            "examples": [
              "123456789/1234"
            ]
          },
          "iban": {
            "type": [
              "string",
              "null"
            ],
            "description": "e-shop IBAN (can be `null`)",
            "examples": [
              "CZ6508000000192000145399"
            ]
          },
          "bic": {
            "type": [
              "string",
              "null"
            ],
            "description": "bank code - SWIFT (can be `null`)",
            "examples": [
              "CNBACZPPXXX"
            ]
          },
          "vatPayer": {
            "type": "boolean",
            "description": "VAT payer (can be `null`)",
            "examples": [
              true
            ]
          }
        }
      },
      "documentCustomer": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "guid",
          "phone",
          "email",
          "remark"
        ],
        "properties": {
          "guid": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/typeGuidUnlimited"
              },
              {
                "type": "null"
              }
            ],
            "description": "customer identifier (can be `null`)"
          },
          "phone": {
            "type": [
              "string",
              "null"
            ],
            "description": "customer phone (can be `null`)",
            "examples": [
              "603481066"
            ]
          },
          "email": {
            "type": [
              "string",
              "null"
            ],
            "description": "customer e-mail (can be `null`)",
            "examples": [
              "example@example.com"
            ]
          },
          "remark": {
            "type": [
              "string",
              "null"
            ],
            "description": "remark for the customer (can be `null`)",
            "examples": [
              "This is a remark"
            ]
          }
        }
      },
      "actionPrice": {
        "type": [
          "object",
          "null"
        ],
        "additionalProperties": false,
        "description": "special discounted price.",
        "required": [
          "price",
          "fromDate",
          "toDate"
        ],
        "properties": {
          "price": {
            "$ref": "#/components/schemas/typePrice",
            "description": "special discounted price. It is only used if set and if the validity date is set too, form (`fromDate`) to (`toData`).",
            "examples": [
              "189.00"
            ]
          },
          "fromDate": {
            "$ref": "#/components/schemas/typeDateNullable",
            "description": "date from which the special discounted price is valid."
          },
          "toDate": {
            "$ref": "#/components/schemas/typeDateNullable",
            "description": "date to which the special discounted price is valid."
          }
        }
      },
      "pricelist": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "price list identifier",
            "examples": [
              1
            ]
          },
          "name": {
            "type": "string",
            "description": "price list name",
            "examples": [
              "Hlavní ceník"
            ]
          }
        }
      },
      "variantPrice": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "price",
          "commonPrice",
          "buyPrice",
          "priceRatio",
          "actionPrice"
        ],
        "properties": {
          "price": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "Price, at which the customer can purchase the product. It can be loaded by the special discounted price and influenced by the price ratio.",
            "examples": [
              "650.00"
            ]
          },
          "commonPrice": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "standard price, use for information and comparison to competitors.",
            "examples": [
              "750.00"
            ]
          },
          "buyPrice": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "purchase price.",
            "examples": [
              "500.00"
            ]
          },
          "priceRatio": {
            "$ref": "#/components/schemas/typeProductPriceRatio"
          },
          "actionPrice": {
            "$ref": "#/components/schemas/actionPrice"
          }
        }
      },
      "productOrderableAmount": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "minimumAmount",
          "maximumAmount"
        ],
        "properties": {
          "minimumAmount": {
            "$ref": "#/components/schemas/typePositiveAmountNullable",
            "description": "minimum orderable quantity.",
            "examples": [
              2
            ]
          },
          "maximumAmount": {
            "$ref": "#/components/schemas/typePositiveAmountNullable",
            "description": "maximum orderable quantity.",
            "examples": [
              9
            ]
          }
        }
      },
      "priceSales": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "minPriceRatio",
          "freeShipping",
          "freeBilling",
          "loyaltyDiscount",
          "volumeDiscount",
          "quantityDiscount",
          "discountCoupon"
        ],
        "properties": {
          "minPriceRatio": {
            "$ref": "#/components/schemas/typeProductPriceRatio",
            "description": "3 decimal places accuracy, (from `0.0000` to `1.0000`), maximum permitted discount.",
            "examples": [
              0.78
            ]
          },
          "freeShipping": {
            "type": "boolean",
            "description": "flag, whether the product will have a free transport after it is placed in the cart.",
            "examples": [
              true
            ]
          },
          "freeBilling": {
            "type": "boolean",
            "description": "flag, whether the product will have a free payment after it is placed in the cart.",
            "examples": [
              true
            ]
          },
          "loyaltyDiscount": {
            "type": "boolean",
            "description": "flag, whether the loyalty discount should be used.",
            "examples": [
              true
            ]
          },
          "volumeDiscount": {
            "type": "boolean",
            "description": "flag, whether the volume discount should be used.",
            "examples": [
              true
            ]
          },
          "quantityDiscount": {
            "type": "boolean",
            "description": "flag, whether the volume/multibuy discount should be used.",
            "examples": [
              true
            ]
          },
          "discountCoupon": {
            "type": "boolean",
            "description": "flag, whether a discount coupon can be applied.",
            "examples": [
              true
            ]
          }
        }
      },
      "productVariantParameterValues": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "paramValue"
          ],
          "properties": {
            "paramValue": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "description": "Name of parameter value. Maximal length of 255 characters.",
              "examples": [
                "Red"
              ]
            },
            "rawValue": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9\\-]*$",
              "description": "Url friendly name of parameter value. Maximal length of 255 characters.",
              "examples": [
                "red"
              ]
            },
            "color": {
              "$ref": "#/components/schemas/typeColor",
              "description": "Color hex code. Minimal length of 1 character. Maximal length of 8 characters.",
              "examples": [
                "FF00FF00"
              ]
            },
            "image": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 255,
              "description": "Image name. Image needs to exist in your file folder.",
              "examples": [
                "car-001.jpg"
              ]
            },
            "valuePriority": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "description": "Parameter value priority.",
              "examples": [
                1
              ]
            }
          }
        }
      },
      "productFilteringParameterValues": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "name"
          ],
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "description": "Name of parameter value.",
              "examples": [
                "Bavlna"
              ]
            },
            "valueIndex": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9\\-]*$",
              "description": "Url friendly name of parameter value.",
              "examples": [
                "bavlna"
              ]
            },
            "priority": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "description": "Parameter value priority.",
              "examples": [
                1
              ]
            },
            "color": {
              "$ref": "#/components/schemas/typeColor",
              "description": "Color hex code."
            },
            "image": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 255,
              "description": "Image name. Image needs to exist in your file folder.",
              "examples": [
                "car-001.jpg"
              ]
            }
          }
        }
      },
      "product": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "guid",
          "type",
          "brand",
          "visibility",
          "creationTime",
          "changeTime",
          "shortDescription",
          "description",
          "metaDescription",
          "url",
          "defaultCategory",
          "variants",
          "supplier",
          "internalNote"
        ],
        "properties": {
          "guid": {
            "$ref": "#/components/schemas/typeGuidUnlimited",
            "description": "unique product indicator"
          },
          "type": {
            "type": "string",
            "description": "product type (`product`, `bazar`...) - see also [Product types](#section/code-lists/product-types) code list",
            "examples": [
              "product"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ],
            "description": "product name",
            "examples": [
              "Pelle 1978"
            ]
          },
          "indexName": {
            "type": "string",
            "description": "String which defines product url.",
            "examples": [
              "baleriny-modre-s-puntiky"
            ]
          },
          "brand": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/brandNamed"
              },
              {
                "type": "null"
              }
            ],
            "description": "product brand (or manufacturer, possibly)"
          },
          "supplier": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/supplier"
              },
              {
                "type": "null"
              }
            ],
            "description": "product supplier"
          },
          "visibility": {
            "type": "string",
            "description": "visibility of product (`normal`, `hidden` ...) - see also [Product visibility](#section/code-lists/product-visibility) code list",
            "examples": [
              "normal"
            ]
          },
          "creationTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date and time of product creation (date in ISO 8601 format)"
          },
          "changeTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date and time of last product change (date in ISO 8601 format)"
          },
          "shortDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "short product description",
            "examples": [
              "A high quality jacket, although its fairly bold design is not to everyone's taste, it has its fans, so you can find it in our offer too. For kids, why not."
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "product description. May contain html.",
            "examples": [
              "<p>As it is often the case with jackets for kids, the emphasis is primarily on durability and quality workmanship. It is clear that it will be put through its paces, which the manufacturer has borne in mind. As previously stated, the manufacturer could also afford a less conservative design for a kids product, combining bold colors with a company logo on the front and back.</p>\n\n<ul>\n\t<li>Body - 60% Nylon, 40% wool</li>\n<li>Inside - 100% Polyester</li>\n</ul>"
            ]
          },
          "metaDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "product label from meta tag.",
            "examples": [
              "Pelle 1978. A high quality jacket, although its fairly bold design is not to everyone's taste .... "
            ]
          },
          "url": {
            "type": [
              "string",
              "null"
            ],
            "description": "URL of the product in the e-shop",
            "examples": [
              "https://www.domena-eshopu.cz/hodinky/citizen-chronograph-eco-drive/"
            ]
          },
          "conditionGrade": {
            "type": [
              "string",
              "null"
            ],
            "description": "Grade condition of second-hand product. It contains value only for `bazar` type, otherwise, it is `null`.",
            "examples": [
              "used"
            ]
          },
          "conditionDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "Condition description of second-hand product. It contains value only for `bazar` type, otherwise, it is `null`.",
            "examples": [
              "Without original package"
            ]
          },
          "internalNote": {
            "type": [
              "string",
              "null"
            ],
            "description": "product internal note",
            "examples": [
              "This product is not in stock, but it is possible to order it."
            ]
          },
          "preauthorizationRequired": {
            "type": "boolean",
            "description": "whether the preauthorization is required; available only if shoptet pay module is enabled",
            "examples": [
              true
            ]
          },
          "defaultCategory": {
            "type": "object",
            "additionalProperties": false,
            "description": "default product category",
            "required": [
              "guid",
              "name",
              "visible"
            ],
            "properties": {
              "guid": {
                "$ref": "#/components/schemas/typeGuidNullable",
                "description": "category unique identifier (can be `null`)"
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "category description",
                "examples": [
                  "Watches"
                ]
              },
              "visible": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "whether the parameter is visible",
                "examples": [
                  true
                ]
              }
            }
          },
          "categories": {
            "type": "array",
            "description": "information about available product categories",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "guid",
                "name",
                "parentGuid"
              ],
              "properties": {
                "guid": {
                  "$ref": "#/components/schemas/typeGuidNullable",
                  "description": "category unique identifier (can be `null`)"
                },
                "name": {
                  "type": "string",
                  "description": "category name",
                  "examples": [
                    "Watches"
                  ]
                },
                "parentGuid": {
                  "$ref": "#/components/schemas/typeGuidNullable",
                  "description": "parent category unique identifier (can be `null`)",
                  "examples": [
                    "c9e976a5-340b-11e4-b500-ac162d8a2454"
                  ]
                }
              }
            }
          },
          "descriptiveParameters": {
            "type": "array",
            "description": "product description parameters",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "name",
                "value",
                "description",
                "priority"
              ],
              "properties": {
                "name": {
                  "type": "string",
                  "description": "parameter name",
                  "examples": [
                    "Material"
                  ]
                },
                "value": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "value of the descriptive parameter",
                  "examples": [
                    "flannel"
                  ]
                },
                "description": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "parameter name description",
                  "examples": [
                    "Material of the product"
                  ]
                },
                "priority": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "parameter priority",
                  "examples": [
                    1
                  ]
                }
              }
            }
          },
          "additionalName": {
            "type": [
              "string",
              "null"
            ],
            "description": "Additional part of product name",
            "examples": [
              "+ free gift"
            ]
          },
          "xmlFeedName": {
            "type": [
              "string",
              "null"
            ],
            "description": "Name of xml feed",
            "examples": [
              "our-feed.xml"
            ]
          },
          "metaTitle": {
            "type": "string",
            "description": "Meta (seo) title",
            "examples": [
              "Nice product title"
            ]
          },
          "adult": {
            "type": "boolean",
            "description": "Flag, whether the product is for adults only",
            "examples": [
              true
            ]
          },
          "atypicalBilling": {
            "type": "boolean",
            "description": "(Moved to variant) - Has atypical billing?",
            "deprecated": true
          },
          "atypicalShipping": {
            "type": "boolean",
            "description": "(Moved to variant) - Has atypical shipping?",
            "examples": [
              true
            ],
            "deprecated": true
          },
          "allowIPlatba": {
            "type": "boolean",
            "description": "Is Cofidis payment allowed?",
            "examples": [
              true
            ]
          },
          "allowOnlinePayments": {
            "type": "boolean",
            "description": "Are online Payments allowed?",
            "examples": [
              true
            ]
          },
          "sizeIdName": {
            "type": [
              "string",
              "null"
            ],
            "description": "Name for sizeid.com",
            "examples": [
              "adidas - man - shoes (ID 142)"
            ]
          },
          "voteAverageScore": {
            "$ref": "#/components/schemas/typeAmountNullable",
            "description": "Average score of product reviews",
            "examples": [
              2.6
            ]
          },
          "voteCount": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Count of product reviews",
            "examples": [
              16
            ]
          },
          "isVariant": {
            "type": "boolean",
            "description": "define if product has multiple variants.",
            "examples": [
              true
            ]
          },
          "variants": {
            "type": "array",
            "description": "information about available product variants. For a product without variants, this field contains just one element with product details.",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "code",
                "ean",
                "stock",
                "unit",
                "weight",
                "width",
                "height",
                "depth",
                "visible",
                "price",
                "commonPrice",
                "includingVat",
                "vatRate",
                "currencyCode",
                "minStockSupply",
                "actionPrice",
                "manufacturerCode",
                "pluCode",
                "isbn",
                "serialNo",
                "mpn",
                "negativeStockAllowed",
                "amountDecimalPlaces"
              ],
              "properties": {
                "code": {
                  "type": "string",
                  "description": "unique identification of the product variant",
                  "examples": [
                    "0035"
                  ]
                },
                "ean": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "product variant bar code",
                  "examples": [
                    "4010355051486"
                  ]
                },
                "stock": {
                  "$ref": "#/components/schemas/typeAmountNullable",
                  "description": "quantity of goods in stock",
                  "examples": [
                    "1.000"
                  ]
                },
                "unit": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "unit of goods quantity",
                  "examples": [
                    "ks"
                  ]
                },
                "weight": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/typeWeight"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "weight in kg",
                  "examples": [
                    "0.500"
                  ]
                },
                "width": {
                  "$ref": "#/components/schemas/typeDimension",
                  "description": "width of the product in cm"
                },
                "height": {
                  "$ref": "#/components/schemas/typeDimension",
                  "description": "height of the product in cm"
                },
                "depth": {
                  "$ref": "#/components/schemas/typeDimension",
                  "description": "depth of the product in cm"
                },
                "visible": {
                  "type": "boolean",
                  "description": "flag, whether the variant is visible",
                  "examples": [
                    true
                  ]
                },
                "price": {
                  "$ref": "#/components/schemas/typePriceNullable",
                  "description": "price",
                  "examples": [
                    "650.00"
                  ]
                },
                "commonPrice": {
                  "$ref": "#/components/schemas/typePriceNullable",
                  "description": "standard price",
                  "examples": [
                    "750.00"
                  ]
                },
                "manufacturerCode": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "manufacturer code",
                  "examples": [
                    "OKI"
                  ]
                },
                "pluCode": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "PLU code",
                  "examples": [
                    "0828"
                  ]
                },
                "isbn": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "ISBN code",
                  "examples": [
                    "978-80-251-0000-0"
                  ]
                },
                "serialNo": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "serial number",
                  "examples": [
                    "123456"
                  ]
                },
                "mpn": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "manufacturer part number",
                  "examples": [
                    "H2G2-42"
                  ]
                },
                "includingVat": {
                  "type": "boolean",
                  "description": "flag, whether the price is including VAT",
                  "examples": [
                    true
                  ]
                },
                "vatRate": {
                  "type": "string",
                  "description": "VAT rate in percent",
                  "examples": [
                    "21.00"
                  ]
                },
                "currencyCode": {
                  "type": "string",
                  "description": "currency code",
                  "examples": [
                    "CZK"
                  ]
                },
                "minStockSupply": {
                  "$ref": "#/components/schemas/typeAmountNullable",
                  "description": "minimum stock supply",
                  "examples": [
                    "10.000"
                  ]
                },
                "actionPrice": {
                  "$ref": "#/components/schemas/actionPrice",
                  "description": "special discounted price"
                },
                "image": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "main image of variant (if set, otherwise the product's main image is to be used).",
                  "examples": [
                    "1.png"
                  ]
                },
                "isProductDefaultImage": {
                  "type": "boolean",
                  "description": "Determines whether the default product image is given (true) or the product variant image (false).",
                  "examples": [
                    true
                  ]
                },
                "name": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "name composed of the variant parameters, as seen in the e-shop. For products without variants this is `null`. Requires `include=variantParameters` parameter.",
                  "examples": [
                    "Color: Red, size: 50 cm, shape: Square"
                  ]
                },
                "amountDecimalPlaces": {
                  "type": "integer",
                  "description": "Number of decimal places for amount",
                  "examples": [
                    0
                  ]
                },
                "parameters": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "paramName",
                      "paramIndex",
                      "paramValue",
                      "rawValue",
                      "color",
                      "image",
                      "valuePriority"
                    ],
                    "properties": {
                      "paramName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "human readable name of the variant parameter.",
                        "examples": [
                          "Color"
                        ]
                      },
                      "paramIndex": {
                        "type": "string",
                        "description": "name of the variant parameter without diacritics and spaces",
                        "examples": [
                          "color"
                        ]
                      },
                      "paramValue": {
                        "type": "string",
                        "description": "human readable value of the variant parameter",
                        "examples": [
                          "Red"
                        ]
                      },
                      "displayName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Parameter display name",
                        "examples": [
                          "Barva"
                        ]
                      },
                      "rawValue": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "value of the parameter without variant, without diacritics and spaces.",
                        "examples": [
                          "red"
                        ]
                      },
                      "color": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "parameter value as color hexadecimal code.",
                        "examples": [
                          "fffeee"
                        ]
                      },
                      "image": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "URL of the image that serves as the parameter value.",
                        "examples": [
                          "image.jpg"
                        ]
                      },
                      "valuePriority": {
                        "type": "integer",
                        "description": "priority of the parameter value.",
                        "examples": [
                          1
                        ]
                      }
                    }
                  }
                },
                "measureUnit": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "additionalProperties": false,
                  "description": "product measure unit",
                  "required": [
                    "packagingAmount",
                    "packagingUnitId",
                    "packagingUnitName",
                    "measureAmount",
                    "measureUnitId",
                    "measureUnitName",
                    "measurePrice"
                  ],
                  "properties": {
                    "packagingUnitId": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "description": "packaging unit identifier",
                      "examples": [
                        22
                      ]
                    },
                    "packagingUnitName": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "packaging unit name",
                      "examples": [
                        "g"
                      ]
                    },
                    "packagingAmount": {
                      "$ref": "#/components/schemas/typeAmountNullable",
                      "description": "amount being in a package",
                      "examples": [
                        "64"
                      ]
                    },
                    "measureUnitId": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "description": "measure unit identifier",
                      "examples": [
                        -22
                      ]
                    },
                    "measureUnitName": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "measure unit name",
                      "examples": [
                        "kg"
                      ]
                    },
                    "measureAmount": {
                      "$ref": "#/components/schemas/typeAmountNullable",
                      "description": "referential amount",
                      "examples": [
                        "1"
                      ]
                    },
                    "measurePrice": {
                      "$ref": "#/components/schemas/typePriceNullable",
                      "description": "price of package for referential amount",
                      "examples": [
                        "3937.5"
                      ]
                    }
                  }
                },
                "availability": {
                  "$ref": "#/components/schemas/availabilityShort",
                  "description": "product availability"
                },
                "availabilityWhenSoldOut": {
                  "$ref": "#/components/schemas/availabilityShort",
                  "description": "product availability when not stocked"
                },
                "negativeStockAllowed": {
                  "type": "string",
                  "enum": [
                    "yes-global",
                    "no-global",
                    "yes"
                  ],
                  "description": "is negative stock buying allowed? Possible values `yes-global` - yes, set globally, `no-global` - no, `yes` - globally no, but per this variant yes.",
                  "examples": [
                    "yes-global"
                  ]
                },
                "recyclingFee": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/recyclingFeeCategory"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "recycling fee including category and fee"
                },
                "consumptionTax": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/productConsumptionTax"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "consumption tax"
                },
                "heurekaCPC": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Heureka cost per click",
                  "examples": [
                    "0.0"
                  ]
                },
                "zboziCZ": {
                  "type": "object",
                  "additionalProperties": false,
                  "description": "Information from zbozi.cz",
                  "required": [
                    "maximalCPC",
                    "maximalSearchCPC",
                    "hidden"
                  ],
                  "properties": {
                    "maximalCPC": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Zbozi.cz maximal cost per click",
                      "examples": [
                        "0.0"
                      ]
                    },
                    "maximalSearchCPC": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Zbozi.cz maximal search cost per click",
                      "examples": [
                        "0.0"
                      ]
                    },
                    "hidden": {
                      "type": [
                        "boolean",
                        "null"
                      ],
                      "examples": [
                        true
                      ]
                    }
                  }
                },
                "atypicalBilling": {
                  "type": "boolean",
                  "description": "Has atypical billing?",
                  "examples": [
                    true
                  ]
                },
                "atypicalShipping": {
                  "type": "boolean",
                  "description": "Has atypical shipping?",
                  "examples": [
                    true
                  ]
                },
                "boxRestriction": {
                  "type": "boolean",
                  "description": "When enabled, pickup lockers cannot be selected in the cart.",
                  "examples": [
                    true
                  ]
                },
                "perStockAmounts": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "description": "Variant amounts/claims per individual stocks.",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "stockId",
                      "amount",
                      "claim",
                      "location",
                      "lastAmountUpdate"
                    ],
                    "properties": {
                      "stockId": {
                        "type": "integer",
                        "description": "stock unique ID",
                        "examples": [
                          1
                        ]
                      },
                      "amount": {
                        "$ref": "#/components/schemas/typeAmountNullable",
                        "description": "amount of items, products",
                        "examples": [
                          "50.000"
                        ]
                      },
                      "claim": {
                        "$ref": "#/components/schemas/typeAmountNullable",
                        "description": "requirements on stock quantity",
                        "examples": [
                          "5.000"
                        ]
                      },
                      "location": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "stock position, can be `null`",
                        "examples": [
                          "Location 4"
                        ]
                      },
                      "lastAmountUpdate": {
                        "$ref": "#/components/schemas/typeDateTimeNullable",
                        "description": "date and time of last change of stock quantity (ISO 8601 format), can be `null`",
                        "examples": [
                          "2024-01-04T10:55:55+0100"
                        ]
                      }
                    }
                  }
                },
                "perPricelistPrices": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "description": "Variant prices per individual pricelists.",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "code",
                      "currencyCode",
                      "includingVat",
                      "vatRate",
                      "price",
                      "sales",
                      "orderableAmount",
                      "pricelistId"
                    ],
                    "properties": {
                      "code": {
                        "type": "string",
                        "description": "identifier of product variant",
                        "examples": [
                          "0008"
                        ]
                      },
                      "currencyCode": {
                        "$ref": "#/components/schemas/typeCurrencyCode",
                        "examples": [
                          "EUR"
                        ]
                      },
                      "includingVat": {
                        "type": "boolean",
                        "description": "flag, if price is including VAT",
                        "examples": [
                          true
                        ]
                      },
                      "vatRate": {
                        "$ref": "#/components/schemas/typeVatRate",
                        "description": "VAT rate",
                        "examples": [
                          21
                        ]
                      },
                      "price": {
                        "$ref": "#/components/schemas/variantPrice"
                      },
                      "sales": {
                        "$ref": "#/components/schemas/priceSales"
                      },
                      "orderableAmount": {
                        "$ref": "#/components/schemas/productOrderableAmount"
                      },
                      "pricelistId": {
                        "type": "integer",
                        "description": "price list identifier",
                        "examples": [
                          1
                        ]
                      },
                      "prices": {
                        "$ref": "#/components/schemas/productPrices"
                      }
                    }
                  }
                },
                "url": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "If product has multiple variants, URL of the variant is provided.",
                  "examples": [
                    "https://www.domena-eshopu.cz/category/?variantId=51238"
                  ]
                },
                "prices": {
                  "$ref": "#/components/schemas/productPrices"
                },
                "ossVatLevels": {
                  "type": "array",
                  "description": "OSS VAT levels",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "countryCode",
                      "taxLevel",
                      "taxLevelDescription",
                      "taxValue"
                    ],
                    "properties": {
                      "countryCode": {
                        "type": [
                          "string"
                        ],
                        "description": "Country code",
                        "examples": [
                          "CZ"
                        ]
                      },
                      "taxLevel": {
                        "enum": [
                          "high",
                          "low",
                          "third",
                          "none",
                          "superLow",
                          "parking"
                        ],
                        "description": "Tax level type. Use Enums: high: Standard tax rate, none: Zero tax rate, low: First reduced tax rate, third: Second reduced tax rate, superLow: Super low tax rate, parking: Parking tax rate.",
                        "examples": [
                          "high"
                        ]
                      },
                      "taxLevelDescription": {
                        "type": "string",
                        "description": "Description of tax level type",
                        "examples": [
                          "Standard tax rate"
                        ]
                      },
                      "taxValue": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Tax value in %",
                        "examples": [
                          1024
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "images": {
            "type": "array",
            "description": "information about images.",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "name",
                "seoName",
                "cdnName",
                "priority",
                "description",
                "changeTime"
              ],
              "properties": {
                "name": {
                  "type": "string",
                  "description": "image file name, also serves as an identifier for the image of the product. To assemble complete URL, it is added to the `urlPath` obtained from the endpoint e-shop info `/api/eshop?include=imageCuts`.",
                  "examples": [
                    "100.jpg"
                  ]
                },
                "seoName": {
                  "type": "string",
                  "description": "file name modified for SEO - a short label is attached.",
                  "examples": [
                    "100_purple-apple.jpg"
                  ]
                },
                "cdnName": {
                  "type": "string",
                  "description": "same as `seoName` with attached hashed last image change time. `name`, `seoName` and `cdnName` can be entered in the URL - redirect will deliver the same image.",
                  "examples": [
                    "100_purple-apple.jpg?59393c3a"
                  ]
                },
                "priority": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "the key for the sequence of images matching the sequence in administration - it's not necessarily from the first, and the series may contain gaps.",
                  "examples": [
                    1
                  ]
                },
                "description": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "image label",
                  "examples": [
                    "Fresh purple apple for Snow White"
                  ]
                },
                "changeTime": {
                  "$ref": "#/components/schemas/typeDateTimeNullable",
                  "description": "last image change time If you are saving images together, you can use this timestamp to indicate if you need to reload the image."
                },
                "isMainImage": {
                  "type": "boolean",
                  "description": "determines whether it is the main image"
                }
              }
            }
          },
          "flags": {
            "type": "array",
            "description": "product flags",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "code",
                "title",
                "dateFrom",
                "dateTo"
              ],
              "properties": {
                "code": {
                  "type": "string",
                  "description": "flag identifier",
                  "examples": [
                    "action"
                  ]
                },
                "title": {
                  "type": "string",
                  "description": "flag name",
                  "examples": [
                    "Action"
                  ]
                },
                "dateFrom": {
                  "$ref": "#/components/schemas/typeDateNullable",
                  "description": "date from which the flag is valid"
                },
                "dateTo": {
                  "$ref": "#/components/schemas/typeDateNullable",
                  "description": "date to which the flag is valid"
                }
              }
            }
          },
          "surchargeParameters": {
            "type": "array",
            "description": "product surcharge parameters",
            "items": {
              "$ref": "#/components/schemas/productSurchargeParameter"
            }
          },
          "setItems": {
            "type": [
              "array",
              "null"
            ],
            "description": "information about items, products, in set",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "guid",
                "code",
                "amount"
              ],
              "properties": {
                "guid": {
                  "$ref": "#/components/schemas/typeGuidUnlimited",
                  "description": "global unique permanent category identifier"
                },
                "code": {
                  "type": "string",
                  "minLength": 1,
                  "description": "product code",
                  "examples": [
                    "154"
                  ]
                },
                "amount": {
                  "$ref": "#/components/schemas/typePositiveAmount",
                  "description": "amount of items, products",
                  "examples": [
                    1
                  ]
                }
              }
            }
          },
          "filteringParameters": {
            "type": "array",
            "description": "product filtering parameters",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "code",
                "name",
                "displayName",
                "description",
                "priority",
                "googleMapping",
                "values"
              ],
              "properties": {
                "code": {
                  "type": "string",
                  "description": "parameter code",
                  "examples": [
                    "material"
                  ]
                },
                "name": {
                  "type": "string",
                  "description": "parameter name",
                  "examples": [
                    "Material"
                  ]
                },
                "displayName": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "parameter display name",
                  "examples": [
                    "Material of product"
                  ]
                },
                "description": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "parameter description",
                  "examples": [
                    "Material of the product"
                  ]
                },
                "priority": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "parameter priority",
                  "examples": [
                    1
                  ]
                },
                "googleMapping": {
                  "$ref": "#/components/schemas/googleMappingType",
                  "description": "Possible parameter mapping with google"
                },
                "values": {
                  "type": "array",
                  "description": "possible parameter's values",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "valueIndex",
                      "name",
                      "priority",
                      "color",
                      "image"
                    ],
                    "properties": {
                      "valueIndex": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Code (identifier) of parameter's value",
                        "examples": [
                          "ag"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "description": "Description (name) of parameter's value",
                        "examples": [
                          "Gold"
                        ]
                      },
                      "priority": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Priority of parameter's value",
                        "examples": [
                          1
                        ]
                      },
                      "color": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Hex code of color",
                        "examples": [
                          "#34ff34"
                        ]
                      },
                      "image": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "URL of image",
                        "examples": [
                          "https://www.domena-eshopu.cz/user/parameters/100.jpg"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "warranty": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": false,
            "description": "product warranty",
            "required": [
              "id",
              "inMonths",
              "description"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Warranty id. Negative number indicates system warranties. Positive numbers are defined by customer.",
                "examples": [
                  -1
                ]
              },
              "inMonths": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Warranty length in months. Negative number (`-1`) means infinite (lifetime) warranty.",
                "examples": [
                  24
                ]
              },
              "description": {
                "type": "string",
                "description": "Warranty description",
                "examples": [
                  "2 years"
                ]
              }
            }
          },
          "gifts": {
            "$ref": "#/components/schemas/productGifts",
            "description": "Gifts related to product"
          },
          "alternativeProducts": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/relatedProduct"
            }
          },
          "relatedProducts": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/relatedProduct"
            }
          },
          "relatedFiles": {
            "type": "array",
            "description": "files related to product",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "id",
                "name",
                "url",
                "size"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Related file id",
                  "examples": [
                    426
                  ]
                },
                "name": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "related file title",
                  "examples": [
                    "Example file"
                  ]
                },
                "url": {
                  "type": "string",
                  "description": "related file URL",
                  "examples": [
                    "https://www.domena-eshopu.cz/user/related_files/example-file.txt"
                  ]
                },
                "size": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "related file size",
                  "examples": [
                    1024
                  ]
                }
              }
            }
          },
          "relatedVideos": {
            "type": "array",
            "description": "Videos related to product",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "code",
                "title",
                "type"
              ],
              "properties": {
                "code": {
                  "type": "string",
                  "maxLength": 32,
                  "description": "urelated video YouTube code",
                  "examples": [
                    "zpvmPA3me7o"
                  ]
                },
                "title": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "maxLength": 128,
                  "description": "related video title",
                  "examples": [
                    "How to use the product"
                  ]
                },
                "type": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "enum": [
                    "youtube",
                    "youtube-short",
                    null
                  ],
                  "description": "related video type",
                  "examples": [
                    "youtube-short"
                  ]
                }
              }
            }
          }
        }
      },
      "productUpdate": {
        "type": "object",
        "minProperties": 1,
        "additionalProperties": false,
        "properties": {
          "guid": {
            "$ref": "#/components/schemas/typeGuid",
            "description": "Product GUID. Must be unique if set."
          },
          "type": {
            "type": "string",
            "enum": [
              "product",
              "bazar",
              "service",
              "product-set"
            ],
            "description": "Product type. Please note that 'product-set' requires 'sets' module to be enabled. Enum - see [Product types](#section/code-lists/product-types) code list.",
            "examples": [
              "product",
              "bazar",
              "service",
              "product-set"
            ]
          },
          "visibility": {
            "type": "string",
            "enum": [
              "hidden",
              "visible",
              "blocked",
              "show-registered",
              "block-unregistered",
              "cash-desk-only",
              "detail-only"
            ],
            "description": "Product visibility. Optional, default value `visible`. Enum - see [Product visibility](#section/code-lists/product-visibility) code list.",
            "examples": [
              "hidden"
            ]
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 250,
            "description": "Product's name. Mandatory. Maximal length of 250 characters.",
            "examples": [
              "Velká čokoláda"
            ]
          },
          "adult": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Whether the product is for adults only. Optional, default value `false`.",
            "examples": [
              true
            ]
          },
          "shortDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "Product's short description.",
            "examples": [
              "Velice kvalitní a dobrá čokoláda."
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Product's full description.",
            "examples": [
              "<p>Velice kvalitní a dobrá čokoláda. Chutná vždy dobře. <b>Neobsahuje arašídy.</b></p>"
            ]
          },
          "additionalName": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 150,
            "description": "Product's additional name. Optional. Maximal length of 150 characters.",
            "examples": [
              "Velice kvalitní a dobrá čokoláda."
            ]
          },
          "metaTitle": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 255,
            "description": "Product's seo title. Maximal length of 255 characters.",
            "examples": [
              "Velice kvalitní a dobrá čokoláda."
            ]
          },
          "metaDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "Product's full description.",
            "examples": [
              "Velice kvalitní a dobrá čokoláda. Chutná vždy dobře. Neobsahuje arašídy."
            ]
          },
          "conditionGrade": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "description": "Grade condition of second-hand product. Allowed only for `bazar` type.",
            "examples": [
              "used"
            ]
          },
          "conditionDescription": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "description": "Condition description of second-hand product. Allowed only for `bazar` type.",
            "examples": [
              "Without original package."
            ]
          },
          "defaultCategoryGuid": {
            "$ref": "#/components/schemas/typeGuid",
            "description": "Product's default category's GUID. Mandatory."
          },
          "brandCode": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "description": "Product's brand indexName/code. Must exist if set.",
            "examples": [
              "milka"
            ]
          },
          "internalNote": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "description": "Product internal note.",
            "examples": [
              "Internal note for product manager."
            ]
          },
          "preauthorizationRequired": {
            "type": "boolean",
            "description": "whether the preauthorization is required; available only if shoptet pay module is enabled",
            "examples": [
              true
            ]
          },
          "supplierGuid": {
            "$ref": "#/components/schemas/typeGuidNullable",
            "minLength": 1,
            "description": "Supplier GUID. Must exist if set."
          },
          "categoryGuids": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/typeGuid"
            }
          },
          "warrantyId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Warranty ID.",
            "examples": [
              1
            ]
          },
          "flags": {
            "type": [
              "array",
              "null"
            ],
            "description": "Must exist if set.",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "code"
              ],
              "properties": {
                "code": {
                  "type": "string",
                  "description": "flag identifier.",
                  "examples": [
                    "new"
                  ]
                },
                "dateFrom": {
                  "$ref": "#/components/schemas/typeDateNullable",
                  "description": "Date from which the flag is valid."
                },
                "dateTo": {
                  "$ref": "#/components/schemas/typeDateNullable",
                  "description": "Date to which the flag is valid."
                }
              }
            }
          },
          "descriptiveParameters": {
            "type": "array",
            "description": "Product descriptive parameters.",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "name"
              ],
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "description": "Parameter name.",
                  "examples": [
                    "Material"
                  ]
                },
                "value": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "value of the descriptive parameter.",
                  "examples": [
                    "Cotton"
                  ]
                },
                "description": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Description of the descriptive parameter.",
                  "examples": [
                    "Material the shirt is made of"
                  ]
                },
                "priority": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "maximum": 99999,
                  "description": "Priority of the parameter.",
                  "examples": [
                    1
                  ]
                }
              }
            }
          },
          "filteringParameters": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "code",
                "values"
              ],
              "properties": {
                "code": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "description": "Filtering parameter code.",
                  "examples": [
                    "action"
                  ]
                },
                "values": {
                  "type": "array",
                  "minItems": 1,
                  "description": "Product filtering parameter values.",
                  "items": {
                    "type": "string"
                  },
                  "examples": [
                    "Action"
                  ]
                }
              }
            }
          },
          "surchargeParameters": {
            "type": "array",
            "description": "Product surcharge parameters. Not allowed for products with multiple tax classes.",
            "items": {
              "$ref": "#/components/schemas/productRequestSurchargeParameter"
            }
          },
          "variants": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "minProperties": 1,
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/typeVariantCodeRequest"
                },
                "newCode": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64,
                  "description": "New code of existing variant.",
                  "examples": [
                    "0036"
                  ]
                },
                "ean": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "maxLength": 255,
                  "description": "Variant's ean.",
                  "examples": [
                    "8594001234567"
                  ]
                },
                "unitId": {
                  "type": "integer",
                  "description": "Variant's unit id. Optional",
                  "examples": [
                    -1
                  ]
                },
                "weight": {
                  "$ref": "#/components/schemas/typeWeightRequest",
                  "description": "Variant's weight in kilograms. 3 decimal places, and maximum value of 99999.999.",
                  "examples": [
                    "13.500"
                  ]
                },
                "width": {
                  "$ref": "#/components/schemas/typeDimension",
                  "description": "width of the product in cm. 1 decimal place, maximum 9999.9."
                },
                "height": {
                  "$ref": "#/components/schemas/typeDimension",
                  "description": "height of the product in cm. 1 decimal place, maximum 9999.9."
                },
                "depth": {
                  "$ref": "#/components/schemas/typeDimension",
                  "description": "depth of the product in cm. 1 decimal place, maximum 9999.9."
                },
                "visible": {
                  "type": "boolean",
                  "description": "Is variant visible?",
                  "examples": [
                    true
                  ]
                },
                "manufacturerCode": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "maxLength": 32,
                  "description": "Variant's manufacturer code.",
                  "examples": [
                    "OKI"
                  ]
                },
                "pluCode": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "maxLength": 16,
                  "description": "Variant's plu.",
                  "examples": [
                    "0828"
                  ]
                },
                "isbn": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "maxLength": 32,
                  "description": "Variant's ISBN.",
                  "examples": [
                    "978-80-251-0000-0"
                  ]
                },
                "serialNo": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "maxLength": 32,
                  "description": "Variant's serial number.",
                  "examples": [
                    "B412"
                  ]
                },
                "mpn": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "maxLength": 32,
                  "description": "Variant's MPN.",
                  "examples": [
                    "H3T5-87"
                  ]
                },
                "availabilityId": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Product availability id",
                  "examples": [
                    -1
                  ]
                },
                "availabilityWhenSoldOutId": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Product availability id when not stocked",
                  "examples": [
                    -3
                  ]
                },
                "image": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "image filename of this variant (image must exist within product).",
                  "examples": [
                    "106.jpg"
                  ]
                },
                "parameters": {
                  "type": "array",
                  "description": "Variant's parameters",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "nameIndex",
                      "valueIndex"
                    ],
                    "properties": {
                      "nameIndex": {
                        "type": "string",
                        "description": "indexName of parameter name",
                        "examples": [
                          "color"
                        ]
                      },
                      "valueIndex": {
                        "type": "string",
                        "description": "indexName of parameter value",
                        "examples": [
                          "red"
                        ]
                      }
                    }
                  }
                },
                "minStockSupply": {
                  "$ref": "#/components/schemas/typePositiveAmountNullable",
                  "description": "Minimum stock supply.",
                  "examples": [
                    "10.000"
                  ]
                },
                "stocksLocations": {
                  "type": "array",
                  "description": "Locations and amounts in stocks.",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "stockId",
                      "location"
                    ],
                    "properties": {
                      "stockId": {
                        "type": "integer",
                        "description": "Id of stock. Required if stocksLocations is set. Must fit existing stock Id. Check List of Stocks.",
                        "examples": [
                          1
                        ]
                      },
                      "location": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Stock location.",
                        "examples": [
                          "H6/M11/R13"
                        ]
                      }
                    }
                  }
                },
                "negativeStockAllowed": {
                  "type": "boolean",
                  "description": "Product stock can be in negative numbers",
                  "examples": [
                    true
                  ]
                },
                "measureUnit": {
                  "$ref": "#/components/schemas/measureUnit",
                  "description": "Product variant measure and packaging units."
                },
                "recyclingFeeId": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Product recycling fee id",
                  "examples": [
                    123
                  ]
                },
                "consumptionTaxId": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Product consumption tax identifier",
                  "examples": [
                    1
                  ]
                },
                "amountDecimalPlaces": {
                  "type": "integer",
                  "enum": [
                    0,
                    1,
                    2,
                    3
                  ],
                  "description": "Amount of product variant decimal places.",
                  "examples": [
                    2
                  ]
                },
                "atypicalBilling": {
                  "type": "boolean",
                  "description": "Has atypical billing?",
                  "examples": [
                    true
                  ]
                },
                "atypicalShipping": {
                  "type": "boolean",
                  "description": "Has atypical shipping?",
                  "examples": [
                    true
                  ]
                },
                "boxRestriction": {
                  "type": "boolean",
                  "description": "When enabled, pickup lockers cannot be selected in the cart.",
                  "examples": [
                    true
                  ]
                },
                "ossVatLevels": {
                  "type": "array",
                  "description": "OSS Tax setup",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "countryCode",
                      "taxLevel"
                    ],
                    "properties": {
                      "countryCode": {
                        "type": "string",
                        "maxLength": 2,
                        "description": "Country code",
                        "examples": [
                          "CZ"
                        ]
                      },
                      "taxLevel": {
                        "enum": [
                          "high",
                          "low",
                          "third",
                          "none",
                          "superLow",
                          "parking"
                        ],
                        "description": "Tax level type. Use Enums: high: Standard tax rate, none: Zero tax rate, low: First reduced tax rate, third: Second reduced tax rate, superLow: Super low tax rate, parking: Parking tax rate.",
                        "examples": [
                          "high"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "indexName": {
            "type": "string",
            "minLength": 1,
            "description": "String which defines product url. Value is sanitized to fits url needs = All characters except [a-zA-Z0-9_] will be converted to `-`. If value is not present, indexName is created from product name.",
            "examples": [
              "baleriny-modre-s-puntiky"
            ]
          },
          "relatedVideos": {
            "type": "array",
            "description": "Product related videos.",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "code",
                "type"
              ],
              "properties": {
                "code": {
                  "type": "string",
                  "maxLength": 32,
                  "description": "related video code.",
                  "examples": [
                    "zpvmPA3me7o"
                  ]
                },
                "title": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "maxLength": 128,
                  "description": "related video title.",
                  "examples": [
                    "Test video"
                  ]
                },
                "type": {
                  "enum": [
                    "youtube",
                    "youtube-short"
                  ],
                  "description": "related video type.",
                  "examples": [
                    "youtube"
                  ]
                }
              }
            }
          }
        }
      },
      "category": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "guid",
          "name",
          "image",
          "description",
          "secondDescription",
          "indexName",
          "url",
          "parentGuid",
          "priority",
          "menuTitle",
          "title",
          "metaTagDescription",
          "visible",
          "customerVisibility",
          "similarProductsCategory",
          "relatedProductsCategory",
          "productOrdering",
          "catalogueMapping"
        ],
        "properties": {
          "guid": {
            "$ref": "#/components/schemas/typeGuidNullable",
            "description": "unique category identificator",
            "examples": [
              "0198418d-acde-708e-9389-0c5113d9b5f3"
            ]
          },
          "name": {
            "type": "string",
            "description": "category name",
            "examples": [
              "Category name"
            ]
          },
          "image": {
            "type": [
              "string",
              "null"
            ],
            "description": "header image (can be `null`)",
            "examples": [
              "https://beta.shoptet.cz/user/categories/thumb/supreme-plush-santa-hat.jpg"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "top category description (can be `null`)",
            "examples": [
              "<p>Horní popis kategorie</p>"
            ]
          },
          "secondDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "bottom category description (can be `null`)",
            "examples": [
              "<p>Dolní popis kategorie</p>"
            ]
          },
          "indexName": {
            "type": "string",
            "description": "ending part of category URL",
            "examples": [
              "sport-a-relax"
            ]
          },
          "url": {
            "type": "string",
            "description": "category URL in the e-shop",
            "examples": [
              "https://beta.shoptet.cz/sport-a-relax"
            ]
          },
          "parentGuid": {
            "$ref": "#/components/schemas/typeGuidNullable",
            "description": "unique identifier of the parent category (`null`, if there is no parent category)",
            "examples": [
              "0198566d-2eeb-73ed-8dc4-0c94b5a7e035"
            ]
          },
          "priority": {
            "type": [
              "integer",
              "null"
            ],
            "description": "priority (specifies the order of categories)",
            "examples": [
              1
            ]
          },
          "menuTitle": {
            "type": [
              "string",
              "null"
            ],
            "description": "category name in the e-shop menu",
            "examples": [
              "Watches"
            ]
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "HTML title element in the HTML header of the category page",
            "examples": [
              "Purple M size T-shirts - cotton"
            ]
          },
          "metaTagDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "HTML META header `Description` in category page",
            "examples": [
              "T-shirts, cotton, M size, purple, pink, wine red"
            ]
          },
          "visible": {
            "type": "boolean",
            "description": "flag, whether the category is visible",
            "examples": [
              true
            ]
          },
          "similarProductsCategory": {
            "type": [
              "string",
              "null"
            ],
            "description": "GUID category, in which the products are similar to this category (can be `null`)",
            "examples": [
              "07f7a4c1-d7b1-11e0-9a5c-feab5ed617ed"
            ]
          },
          "relatedProductsCategory": {
            "type": [
              "string",
              "null"
            ],
            "description": "GUID category, in which the products are related to this category (can be `null`)",
            "examples": [
              "07f7a4c1-d7b1-11e0-9a5c-feab5ed617ed"
            ]
          },
          "customerVisibility": {
            "type": [
              "string",
              "null"
            ],
            "description": "defines, which users of the e-shop have the category shown - `all` = all, `registered` = registered users, `unregistered` = non-registered users, `admin-only` = administrators",
            "examples": [
              "all"
            ]
          },
          "productOrdering": {
            "type": [
              "string",
              "null"
            ],
            "description": "Defines, how products are sorted in a category. See also [Sorting of products in category](#section/code-lists/sorting-of-products-in-category) code list.",
            "examples": [
              "alphabetically"
            ]
          },
          "catalogueMapping": {
            "type": "array",
            "description": "pairing to search engines such as Zboží, Heuréka, Google, etc. (can be `null`)",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "provider",
                "category"
              ],
              "properties": {
                "provider": {
                  "type": "string",
                  "description": "provider type",
                  "examples": [
                    "heureka"
                  ]
                },
                "category": {
                  "type": "string",
                  "description": "provider category",
                  "examples": [
                    "Clothing | Women's T-Shirts"
                  ]
                }
              }
            }
          }
        }
      },
      "categoryUpdate": {
        "type": "object",
        "additionalProperties": false,
        "minProperties": 1,
        "properties": {
          "guid": {
            "$ref": "#/components/schemas/typeGuid",
            "description": "Category GUID. Must be unique if set. Optional."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Category name. Optional.",
            "examples": [
              "Watches"
            ]
          },
          "parentGuid": {
            "$ref": "#/components/schemas/typeGuidNullable",
            "description": "Parent category GUID. Category must exist if set. Optional."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Category description. Max length 65535 bytes. Optional.",
            "examples": [
              "<p>Top category description</p>"
            ]
          },
          "secondDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "Bottom category description. Max length 65535 bytes. Optional.",
            "examples": [
              "<p>Bottom category description</p>"
            ]
          },
          "imageName": {
            "type": [
              "string",
              "null"
            ],
            "description": "Category image. File must exist on the server. Optional. (Use `sourceImageName` instead)",
            "examples": [
              "watches-category-image.jpg"
            ],
            "deprecated": true
          },
          "sourceImageName": {
            "$ref": "#/components/schemas/typeFilenameNullable",
            "description": "Name of file in [Files upload](#section/basic-principles/files-upload) storage to be set as category image.",
            "examples": [
              "image.png"
            ]
          },
          "sortBefore": {
            "$ref": "#/components/schemas/typeGuid",
            "description": "Guid of category before which you want to move the category from the request. Not possible to use with `sortAfter`. Optional."
          },
          "sortAfter": {
            "$ref": "#/components/schemas/typeGuid",
            "description": "Guid of category after which you want to move the category from the request. Not possible to use with `sortBefore`. Optional."
          },
          "indexName": {
            "type": "string",
            "minLength": 1,
            "description": "Last part of url. Optional, generated from name if not set.",
            "examples": [
              "watches"
            ]
          },
          "menuTitle": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 255,
            "description": "Label for menu. Optional.",
            "examples": [
              "Watches"
            ]
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 255,
            "description": "Meta tag title. Optional.",
            "examples": [
              "Watches"
            ]
          },
          "metaTagDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "Meta tag description. Optional.",
            "examples": [
              "Watches, Apple watch, black, white, garmin"
            ]
          },
          "visible": {
            "type": "boolean",
            "description": "Whether the category is visible. Optional, default `true`.",
            "examples": [
              true
            ]
          },
          "customerVisibility": {
            "type": "string",
            "enum": [
              "all",
              "registered",
              "unregistered",
              "admin-only"
            ],
            "description": "defines users of the e-shop who can see the category - `all` = all (default), `registered` = registered users, `unregistered` = non-registered users. Optional.",
            "examples": [
              "all"
            ]
          },
          "productOrdering": {
            "type": "string",
            "enum": [
              "default",
              "most-selling",
              "cheapest",
              "most-expensive",
              "oldest",
              "newest",
              "alphabetically",
              "alphabetically-desc",
              "product-code",
              "product-code-desc",
              "category-priority",
              "category-priority-desc"
            ],
            "description": "defines how products are sorted in a category; see also [Sorting of products in category](#section/code-lists/sorting-of-products-in-category) code list",
            "examples": [
              "alphabetically"
            ]
          },
          "similarProductsCategory": {
            "$ref": "#/components/schemas/typeGuidNullable",
            "description": "Similar category guid. Optional."
          },
          "relatedProductsCategory": {
            "$ref": "#/components/schemas/typeGuidNullable",
            "description": "Related category guid. Optional."
          }
        }
      },
      "orderItem": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "productGuid",
          "code",
          "ean",
          "itemType",
          "name",
          "variantName",
          "brand",
          "remark",
          "weight",
          "additionalField",
          "amount",
          "amountUnit",
          "priceRatio",
          "status",
          "itemPrice",
          "unitPrice",
          "purchasePrice",
          "recyclingFee",
          "itemId",
          "warrantyDescription",
          "amountCompleted"
        ],
        "properties": {
          "productGuid": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/typeGuidUnlimited"
              },
              {
                "type": "null"
              }
            ],
            "description": "product identifier of the item. At the time the order is created, it will be entered in this field, but when the product is deleted, the link will be lost (can be `null`)"
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "description": "identifier of the item code (product or variant). At the time the order is created, it will be entered in this field, but when the product is deleted, the link will be lost.",
            "examples": [
              "40/ZEL"
            ]
          },
          "ean": {
            "type": [
              "string",
              "null"
            ],
            "description": "EAN of the product variant (can be `null`)",
            "examples": [
              "12345678901234"
            ]
          },
          "itemType": {
            "type": "string",
            "description": "Order item type (product, service...). See also [Types of order items](#section/code-lists/types-of-order-items) code list.",
            "examples": [
              "product"
            ]
          },
          "productType": {
            "type": [
              "string",
              "null"
            ],
            "description": "Product type at the time of the order (product, product-set..). See also [Product types](#section/code-lists/product-types) code list (can be `null`).",
            "examples": [
              "product"
            ]
          },
          "name": {
            "type": "string",
            "description": "Product name, with possible addition (`Free Gift`)",
            "examples": [
              "Complete  + Addition to the name"
            ]
          },
          "variantName": {
            "type": [
              "string",
              "null"
            ],
            "description": "variant name (can be `null`)",
            "examples": [
              "Name"
            ]
          },
          "brand": {
            "type": [
              "string",
              "null"
            ],
            "description": "product brand (or manufacturer, possibly)",
            "examples": [
              "Test"
            ]
          },
          "remark": {
            "type": [
              "string",
              "null"
            ],
            "description": "remark",
            "examples": [
              "This is a remark"
            ]
          },
          "weight": {
            "$ref": "#/components/schemas/typeWeight"
          },
          "additionalField": {
            "type": [
              "string",
              "null"
            ],
            "description": "additional field for remarks",
            "examples": [
              "Online payment"
            ]
          },
          "amount": {
            "$ref": "#/components/schemas/typeAmountNullable",
            "description": "product quantity",
            "examples": [
              1
            ]
          },
          "amountUnit": {
            "type": [
              "string",
              "null"
            ],
            "description": "product unit of quantity",
            "examples": [
              "ks"
            ]
          },
          "priceRatio": {
            "$ref": "#/components/schemas/typePriceRatio",
            "description": "price coefficient. This also represents a discount (discount `10 %` means `priceRatio = 0.9`)"
          },
          "status": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "name",
              "id"
            ],
            "properties": {
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "order item status description (can be `null`)",
                "examples": [
                  "Canceled"
                ]
              },
              "id": {
                "type": "integer",
                "description": "identifier of order item status",
                "examples": [
                  -1
                ]
              }
            }
          },
          "itemPrice": {
            "$ref": "#/components/schemas/itemPrice",
            "description": "the price of the item including the discount (`priceRatio`) and quantity (`amount`)."
          },
          "unitPrice": {
            "$ref": "#/components/schemas/itemPrice",
            "description": "unit price"
          },
          "displayPrices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/itemPrice"
            }
          },
          "buyPrice": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/itemPrice"
              },
              {
                "type": "null"
              }
            ],
            "description": "Deprecated, use `purchasePrice` instead. Purchase price of the item (or possibly `null`). Including the discount (`priceRatio`) and quantity (`amount`).",
            "deprecated": true
          },
          "purchasePrice": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/itemPrice"
              },
              {
                "type": "null"
              }
            ],
            "description": "purchase price of item, can be `null`."
          },
          "recyclingFee": {
            "$ref": "#/components/schemas/recyclingFee",
            "description": "recycling fee including category and price (or possibly `null`)."
          },
          "mainImage": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": false,
            "required": [
              "name",
              "seoName",
              "cdnName",
              "priority",
              "description",
              "changeTime"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "image file name, also serves as an identifier for the image of the product. To assemble complete URL, it is added to the `urlPath` obtained from the endpoint e-shop info `/api/eshop?include=imageCuts`.",
                "examples": [
                  "100.jpg"
                ]
              },
              "seoName": {
                "type": "string",
                "description": "file name modified for SEO - a short label is attached.",
                "examples": [
                  "100_purple-apple.jpg"
                ]
              },
              "cdnName": {
                "type": "string",
                "description": "same as `seoName` with attached hashed last image change time. `name`, `seoName` and `cdnName` can be entered in the URL - redirect will deliver the same image.",
                "examples": [
                  "100_purple-apple.jpg?59393c3a"
                ]
              },
              "priority": {
                "type": "integer",
                "description": "the key for the sequence of images matching the sequence in administration - it's not necessarily from the first, and the series may contain gaps. (can be `null`).",
                "examples": [
                  1
                ]
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "description of the image (can be `null`).",
                "examples": [
                  "Fresh purple apple for Snow White"
                ]
              },
              "changeTime": {
                "$ref": "#/components/schemas/typeDateTimeNullable",
                "description": "last image change time If you are saving images together, you can use this timestamp to indicate if you need to reload the image. (can be `null`)."
              }
            }
          },
          "stockLocation": {
            "type": [
              "string",
              "null"
            ],
            "description": "position in stock (can be `null`)",
            "examples": [
              "H6/M11/R13"
            ]
          },
          "supplierName": {
            "type": [
              "string",
              "null"
            ],
            "description": "product supplier (can be `null`)",
            "examples": [
              "Dodavatel s.r.o"
            ]
          },
          "itemId": {
            "type": "integer",
            "description": "order item identifier",
            "examples": [
              342
            ]
          },
          "warrantyDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "textual description of warranty length (can be `null`)",
            "examples": [
              "24 months"
            ]
          },
          "amountCompleted": {
            "$ref": "#/components/schemas/typePositiveAmountNullable",
            "description": "quantity of completed product. Deprecated - use `completion` section instead.",
            "examples": [
              1
            ],
            "deprecated": true
          },
          "surchargeParametersTexts": {
            "type": "array",
            "description": "List of custom surcharge parameters names",
            "items": {
              "type": "string"
            },
            "deprecated": true
          },
          "surchargeParameters": {
            "$ref": "#/components/schemas/itemSurchargeParameters",
            "description": "items surcharge parameters, filled in order creation. Cannot be edited."
          },
          "specificSurchargeParameters": {
            "$ref": "#/components/schemas/itemSpecificSurchargeParameters",
            "description": "list of specific surcharge parameters for order item detail, created from `surchargeParameters`, but editable in order item detail in eshop administration or via order item detail surcharge-parameters endpoint."
          },
          "productFlags": {
            "$ref": "#/components/schemas/productFlags",
            "description": "list of product flags"
          },
          "consumptionTax": {
            "$ref": "#/components/schemas/documentConsumptionTax",
            "description": "consumption tax of order item"
          },
          "itemPriceVatBreakdown": {
            "type": [
              "array",
              "null"
            ],
            "description": "Detailed VAT list displaying tax amounts for each VAT rate used in the document. Applied for non product items.",
            "items": {
              "$ref": "#/components/schemas/itemPrice"
            }
          }
        }
      },
      "relatedProduct": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "guid",
          "priority"
        ],
        "properties": {
          "guid": {
            "$ref": "#/components/schemas/typeGuidUnlimited",
            "description": "related product identifier"
          },
          "priority": {
            "type": "integer",
            "description": "Priority of product in related products list",
            "examples": [
              1
            ]
          },
          "visibility": {
            "type": "string",
            "description": "visibility of product (`normal`, `hidden` ...) - see also [Product visibility](#section/code-lists/product-visibility) code list",
            "examples": [
              "normal"
            ]
          },
          "linkType": {
            "type": "string",
            "description": "Type of the link to the product. Defines if the product is paired physically or reciprocally.",
            "examples": [
              "physical",
              "reciprocal"
            ]
          }
        }
      },
      "productSet": {
        "type": [
          "object",
          "null"
        ],
        "additionalProperties": false,
        "required": [
          "guid",
          "code",
          "amount"
        ],
        "properties": {
          "guid": {
            "$ref": "#/components/schemas/typeGuidUnlimited",
            "description": "product identifier"
          },
          "code": {
            "type": "string",
            "minLength": 1,
            "description": "product code",
            "examples": [
              "154"
            ]
          },
          "amount": {
            "$ref": "#/components/schemas/typePositiveAmount",
            "description": "amount of items, products",
            "examples": [
              1
            ]
          }
        }
      },
      "productGifts": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "code",
            "priority"
          ],
          "properties": {
            "code": {
              "type": "string",
              "description": "product variant identifier",
              "examples": [
                "0008"
              ]
            },
            "priority": {
              "type": "integer",
              "description": "variant priority",
              "examples": [
                1
              ]
            }
          }
        }
      },
      "orderGift": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "code",
          "currencyCode",
          "orderPrice",
          "includingVat",
          "priority"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "primary key of gift, should be used when delete gift",
            "examples": [
              1
            ]
          },
          "code": {
            "type": "string",
            "description": "identifier of product variant, which will be added as a gift",
            "examples": [
              "0008"
            ]
          },
          "currencyCode": {
            "$ref": "#/components/schemas/typeCurrencyCode"
          },
          "orderPrice": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "price which order total price should overcome. to add this gift"
          },
          "includingVat": {
            "type": "boolean",
            "description": "flag, if price is including VAT",
            "examples": [
              true
            ]
          },
          "priority": {
            "type": "integer",
            "description": "define order",
            "examples": [
              1
            ]
          }
        }
      },
      "article": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "title",
          "indexName",
          "redirectUrl",
          "content",
          "metaTitle",
          "metaKeywords",
          "metaDescription",
          "publishDate",
          "changeDate",
          "visible",
          "access"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "article ID",
            "examples": [
              1
            ]
          },
          "defaultSectionId": {
            "type": "integer",
            "description": "article section ID",
            "examples": [
              682
            ]
          },
          "sectionIds": {
            "type": [
              "array",
              "null"
            ],
            "description": "array of section IDs",
            "items": {
              "type": "integer",
              "examples": [
                682
              ]
            }
          },
          "title": {
            "type": "string",
            "description": "article title",
            "examples": [
              "Test"
            ]
          },
          "language": {
            "type": "string",
            "description": "Article language. Available only if module foreignLanguages is active and initialized.",
            "examples": [
              "cs"
            ]
          },
          "indexName": {
            "type": [
              "string",
              "null"
            ],
            "description": "ending part of article URL",
            "examples": [
              "new-article"
            ]
          },
          "url": {
            "type": "string",
            "description": "article URL",
            "examples": [
              "https://www.some-eshop-url.com/blog/new-article"
            ]
          },
          "urls": {
            "type": "array",
            "description": "array of section IDs and their URLs",
            "items": {
              "$ref": "#/components/schemas/articleUrls"
            }
          },
          "redirectUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "canonical URL for redirecting",
            "examples": [
              "https://www.someurl.com"
            ]
          },
          "content": {
            "type": [
              "string",
              "null"
            ],
            "description": "article content",
            "examples": [
              "<p>Content of the article</p>"
            ]
          },
          "metaTitle": {
            "type": [
              "string",
              "null"
            ],
            "description": "article meta title",
            "examples": [
              "Test article\""
            ]
          },
          "metaKeywords": {
            "type": [
              "string",
              "null"
            ],
            "description": "article keywords",
            "examples": [
              "test"
            ],
            "deprecated": true
          },
          "metaDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "article meta description",
            "examples": [
              "Test article"
            ]
          },
          "publishDate": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "article date of publishing",
            "examples": [
              "2014-11-19T00:00:00+0100"
            ]
          },
          "changeDate": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "article date of the last modification",
            "examples": [
              "2014-11-19T00:00:00+0100"
            ]
          },
          "visible": {
            "type": "boolean",
            "description": "flag whether the article is visible on web",
            "examples": [
              true
            ]
          },
          "access": {
            "enum": [
              "all",
              "logged-in",
              "logged-out",
              "admin-only"
            ],
            "description": "flag indicating, whether the article can be viewed by everyone (value of the flag is: `all`), by logged in users only ('logged-in'), or by logged out users only ('logged-out'), or by administrators only ('admin-only')",
            "examples": [
              "logged-in"
            ]
          },
          "image": {
            "type": [
              "string",
              "null"
            ],
            "description": "article image",
            "examples": [
              "https://www.some-eshop-url.com/image.jpg"
            ]
          },
          "ogImage": {
            "type": [
              "string",
              "null"
            ],
            "description": "article og:image",
            "examples": [
              "https://www.some-eshop-url.com/image.jpg"
            ]
          }
        }
      },
      "articleList": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "title",
          "publishDate",
          "visible"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "article ID",
            "examples": [
              1
            ]
          },
          "defaultSectionId": {
            "type": "integer",
            "description": "article section ID",
            "examples": [
              682
            ]
          },
          "sectionId": {
            "type": "integer",
            "description": "article section ID",
            "examples": [
              682
            ]
          },
          "title": {
            "type": "string",
            "description": "article title",
            "examples": [
              "Test"
            ]
          },
          "url": {
            "type": "string",
            "description": "article URL",
            "examples": [
              "https://www.some-eshop-url.com/blog/new-article"
            ]
          },
          "publishDate": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "article date of publishing"
          },
          "visible": {
            "type": "boolean",
            "description": "flag whether the article is visible on web",
            "examples": [
              true
            ]
          },
          "image": {
            "type": [
              "string",
              "null"
            ],
            "description": "article image",
            "examples": [
              "https://www.some-eshop-url.com/image.jpg"
            ]
          }
        }
      },
      "articleSection": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "title"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "article section ID",
            "examples": [
              1
            ]
          },
          "parentId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "article section parent ID",
            "examples": [
              1
            ]
          },
          "title": {
            "type": "string",
            "description": "article section title",
            "examples": [
              "Test"
            ]
          },
          "language": {
            "type": "string",
            "description": "Article section language. Available only if module foreignLanguages is active and initialized.",
            "examples": [
              "cs"
            ]
          },
          "indexName": {
            "type": [
              "string",
              "null"
            ],
            "description": "ending part of article section URL",
            "examples": [
              "new-article"
            ]
          },
          "url": {
            "type": [
              "string"
            ],
            "description": "article section URL",
            "examples": [
              "new-article"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "article section content",
            "examples": [
              "<p>Content of the article section</p>"
            ]
          },
          "secondDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "article section content secondary",
            "examples": [
              "<p>Content of the secondary article section</p>"
            ]
          },
          "limit": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Number of articles displayed in the listing",
            "examples": [
              4
            ]
          },
          "homepageLimit": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Number of articles displayed on the homepage",
            "examples": [
              4
            ]
          },
          "sorting": {
            "enum": [
              "alphabetically",
              "newest-first",
              "oldest-first"
            ],
            "description": "Article sorting in the listing",
            "examples": [
              "alphabetically"
            ]
          },
          "perexLimit": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Number of character displayed in the article perex",
            "examples": [
              100
            ]
          },
          "hidePublishDate": {
            "type": "boolean",
            "description": "Hide article publish date in the listing",
            "examples": [
              false
            ]
          },
          "showPrevNext": {
            "type": "boolean",
            "description": "Show next/previous buttons in the listing",
            "examples": [
              true
            ]
          },
          "showOnHomepage": {
            "type": "boolean",
            "description": "Show articles on the homepage",
            "examples": [
              false
            ]
          },
          "linkText": {
            "type": [
              "string",
              "null"
            ],
            "description": "Link text (in the menu)",
            "examples": [
              "Test articles"
            ]
          },
          "metaTitle": {
            "type": [
              "string",
              "null"
            ],
            "description": "article meta title",
            "examples": [
              "Test articles"
            ]
          },
          "metaDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "article meta description",
            "examples": [
              "Test articles"
            ]
          },
          "canonicalLinkUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Canonical link URL",
            "examples": [
              "https://www.someurl.com"
            ]
          },
          "visible": {
            "type": "boolean",
            "description": "flag whether the article section is visible on web",
            "examples": [
              true
            ]
          },
          "access": {
            "enum": [
              "all",
              "logged-in",
              "logged-out",
              "admin-only"
            ],
            "description": "flag indicating, whether the article section can be viewed by everyone (value of the flag is: `all`), by logged in users only ('logged-in'), or by logged out users only ('logged-out'), or by administrators only ('admin-only')",
            "examples": [
              "logged-in"
            ]
          },
          "image": {
            "type": [
              "string",
              "null"
            ],
            "description": "article section image",
            "examples": [
              "https://www.some-eshop-url.com/image.jpg"
            ]
          },
          "ogImage": {
            "type": [
              "string",
              "null"
            ],
            "description": "article section open graph image",
            "examples": [
              "https://www.some-eshop-url.com/image.jpg"
            ]
          }
        }
      },
      "articleSectionList": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "title"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "article section ID",
            "examples": [
              683
            ]
          },
          "title": {
            "type": "string",
            "description": "article section title",
            "examples": [
              "Blog"
            ]
          },
          "language": {
            "type": "string",
            "description": "Article section language. Available only if module foreignLanguages is active and initialized.",
            "examples": [
              "cs"
            ]
          }
        }
      },
      "googleMappingType": {
        "type": [
          "object",
          "null"
        ],
        "additionalProperties": false,
        "description": "Possible parameter mapping with google",
        "properties": {
          "value": {
            "type": "string",
            "description": "Code (identifier) of google mapping parameter",
            "examples": [
              "google:color"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description (name) of google mapping parameter",
            "examples": [
              "Color"
            ]
          }
        }
      },
      "discussionPost": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "parentId",
          "productGuid",
          "articleId",
          "pageId",
          "customerGuid",
          "name",
          "email",
          "title",
          "content",
          "creationDate",
          "authorized"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "discussion post ID",
            "examples": [
              2
            ]
          },
          "parentId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "discussion post parent ID",
            "examples": [
              1
            ]
          },
          "productGuid": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/typeGuidUnlimited"
              },
              {
                "type": "null"
              }
            ],
            "description": "Discussion post product identifier."
          },
          "articleId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Discussion post article identifier.",
            "examples": [
              2
            ]
          },
          "pageId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Discussion post page identifier.",
            "examples": [
              3
            ]
          },
          "customerGuid": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/typeGuidUnlimited"
              },
              {
                "type": "null"
              }
            ],
            "description": "Discussion post customer identifier."
          },
          "name": {
            "type": [
              "string",
              "null"
            ],
            "description": "name of the author",
            "examples": [
              "John Doe"
            ]
          },
          "email": {
            "type": [
              "string",
              "null"
            ],
            "description": "email of the author",
            "examples": [
              "john.doe@example.com"
            ]
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "title of the post",
            "examples": [
              "Some title"
            ]
          },
          "content": {
            "type": [
              "string",
              "null"
            ],
            "description": "content of the post",
            "examples": [
              "Some content"
            ]
          },
          "creationDate": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date and time of the post creation"
          },
          "authorized": {
            "type": "boolean",
            "description": "flag whether the post is authorized (visible on the web)",
            "examples": [
              true
            ]
          }
        }
      },
      "pageList": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "title"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "page ID",
            "examples": [
              1
            ]
          },
          "title": {
            "type": "string",
            "description": "page title",
            "examples": [
              "About us"
            ]
          },
          "url": {
            "type": "string",
            "description": "page URL",
            "examples": [
              "https://www.some-eshop-url.com/about-us"
            ]
          },
          "visible": {
            "type": "boolean",
            "description": "flag whether the page is visible on web",
            "examples": [
              true
            ]
          },
          "ogImage": {
            "type": [
              "string",
              "null"
            ],
            "description": "page og:image",
            "examples": [
              "https://www.some-eshop-url.com/image.jpg"
            ]
          }
        }
      },
      "page": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "title",
          "content",
          "url",
          "linkText",
          "metaTitle",
          "metaDescription",
          "canonicalUrl",
          "visible",
          "access",
          "ogImage"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "page ID",
            "examples": [
              1
            ]
          },
          "language": {
            "type": "string",
            "description": "Page language. Available only if module foreignLanguages is active and initialized.",
            "examples": [
              "cs"
            ]
          },
          "title": {
            "type": "string",
            "description": "page title",
            "examples": [
              "About us"
            ]
          },
          "content": {
            "type": [
              "string",
              "null"
            ],
            "description": "page content",
            "examples": [
              "<p>Content of the page</p>"
            ]
          },
          "url": {
            "type": "string",
            "description": "page URL",
            "examples": [
              "https://www.some-eshop-url.com/about-us"
            ]
          },
          "linkText": {
            "type": [
              "string",
              "null"
            ],
            "description": "text of the page link",
            "examples": [
              "About us"
            ]
          },
          "metaTitle": {
            "type": [
              "string",
              "null"
            ],
            "description": "page meta title",
            "examples": [
              "About us page"
            ]
          },
          "metaDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "page meta description",
            "examples": [
              "About us page description"
            ]
          },
          "canonicalUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Canonical URL of the page",
            "examples": [
              "https://www.someurl.com"
            ]
          },
          "visible": {
            "type": "boolean",
            "description": "flag whether the page is visible on web",
            "examples": [
              true
            ]
          },
          "access": {
            "enum": [
              "all",
              "logged-in",
              "logged-out",
              "admin-only"
            ],
            "description": "flag indicating, whether the page can be viewed by everyone (value of the flag is: 'all'), by logged in users only ('logged-in'), or by logged out users only ('logged-out'), or by administrators only ('admin-only')",
            "examples": [
              "logged-in"
            ]
          },
          "ogImage": {
            "type": [
              "string",
              "null"
            ],
            "description": "page og:image",
            "examples": [
              "https://www.some-eshop-url.com/image.jpg"
            ]
          }
        }
      },
      "reviewProject": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "date",
          "orderCode",
          "rating",
          "description",
          "fullName",
          "email",
          "customerGuid",
          "visible",
          "ipAddress"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Review id.",
            "examples": [
              1
            ]
          },
          "date": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "Review creation date."
          },
          "orderCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "Order code related to review. Can be null.",
            "examples": [
              "2011000002"
            ]
          },
          "rating": {
            "type": "integer",
            "description": "Number from 1 to 5 representing stars of review's rating.",
            "examples": [
              5
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "Review text. Can be null.",
            "examples": [
              "Snack was very good"
            ]
          },
          "fullName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fullname of review's author. Can be null.",
            "examples": [
              "John Doe"
            ]
          },
          "email": {
            "type": [
              "null",
              "string"
            ],
            "description": "Email of the review author. Can be null.",
            "examples": [
              "johndoe@email.tld"
            ]
          },
          "customerGuid": {
            "type": [
              "null",
              "string"
            ],
            "description": "Customer guid related to review. Can be null.",
            "examples": [
              "443cad54-73bc-11e8-8216-002590dad85e"
            ]
          },
          "visible": {
            "type": "boolean",
            "description": "flag, whether the review is visible",
            "examples": [
              false
            ]
          },
          "ipAddress": {
            "type": [
              "string",
              "null"
            ],
            "description": "IP address of the client who made the review. Can be null.",
            "examples": [
              "213.46.237.24"
            ]
          },
          "reaction": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "reactionCreated",
              "reactionFullName",
              "reactionEmail",
              "reactionText"
            ],
            "properties": {
              "reactionCreated": {
                "$ref": "#/components/schemas/typeDateTimeNullable",
                "description": "Date of creation of reaction. Can be null."
              },
              "reactionFullName": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Fullname of reaction author. Can be null.",
                "examples": [
                  "John Doe"
                ]
              },
              "reactionEmail": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Email of the reaction author. Can be null.",
                "examples": [
                  "johndoe@email.tld"
                ]
              },
              "reactionText": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Text of the reaction. Can be null.",
                "examples": [
                  "Thank you for your review!"
                ]
              }
            }
          }
        }
      },
      "parameterValueCombinations": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "parameterCode",
          "parameterName",
          "valueCode",
          "valueName"
        ],
        "properties": {
          "parameterCode": {
            "type": "string",
            "description": "Code of the parameter",
            "examples": [
              "color"
            ]
          },
          "parameterName": {
            "type": "string",
            "description": "Name of the parameter",
            "examples": [
              "Color"
            ]
          },
          "valueCode": {
            "type": "string",
            "description": "Code of the parameter value",
            "examples": [
              "red"
            ]
          },
          "valueName": {
            "type": "string",
            "description": "Name of the parameter value",
            "examples": [
              "Red"
            ]
          }
        }
      },
      "parameterValueCombinationsCodes": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "parameterCode",
          "valueCode"
        ],
        "properties": {
          "parameterCode": {
            "type": "string",
            "description": "Code of the parameter",
            "examples": [
              "color"
            ]
          },
          "valueCode": {
            "type": "string",
            "description": "Code of the parameter value",
            "examples": [
              "red"
            ]
          }
        }
      },
      "xyDiscount": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "title",
          "validFrom",
          "validTo",
          "customerGroups",
          "xAmount",
          "yAmount",
          "description",
          "termsAndConditionsUrl",
          "displayFlag",
          "flagColor",
          "priority",
          "usageCount",
          "displayBanner",
          "bannerColor",
          "xTargeting",
          "yTargeting",
          "includeUnregisteredCustomers"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "discount ID",
            "examples": [
              1
            ]
          },
          "title": {
            "type": "string",
            "description": "discount title",
            "examples": [
              "18 + 4 free"
            ]
          },
          "validFrom": {
            "$ref": "#/components/schemas/typeDateNullable",
            "description": "date of discount validity from",
            "examples": [
              "2014-11-19"
            ]
          },
          "validTo": {
            "$ref": "#/components/schemas/typeDateNullable",
            "description": "date of discount validity to",
            "examples": [
              "2014-12-19"
            ]
          },
          "customerGroups": {
            "type": [
              "array",
              "null"
            ],
            "description": "customer groups connected to discount",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "code",
                "name"
              ],
              "properties": {
                "code": {
                  "type": "string",
                  "description": "customer group code",
                  "examples": [
                    "retail"
                  ]
                },
                "name": {
                  "type": "string",
                  "description": "customer group name",
                  "examples": [
                    "Retail customer"
                  ]
                }
              }
            }
          },
          "xAmount": {
            "$ref": "#/components/schemas/typeAmount",
            "description": "amount of products needed to get discount",
            "examples": [
              "2.000"
            ]
          },
          "yAmount": {
            "$ref": "#/components/schemas/typeAmount",
            "description": "amount of products get by discount",
            "examples": [
              "1.000"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "discount description",
            "examples": [
              "<p>Content of the article</p>"
            ]
          },
          "termsAndConditionsUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "url address lead to terms of discount",
            "examples": [
              "https://test.myshoptet.com/test"
            ]
          },
          "displayFlag": {
            "type": "boolean",
            "description": "whether the flag is displayed",
            "examples": [
              true
            ]
          },
          "flagColor": {
            "$ref": "#/components/schemas/typeColor",
            "description": "color of the flag"
          },
          "displayBanner": {
            "type": "boolean",
            "description": "flag whether the banner is displayed",
            "examples": [
              true
            ]
          },
          "bannerColor": {
            "$ref": "#/components/schemas/typeColor",
            "description": "color of the banner"
          },
          "priority": {
            "type": [
              "integer",
              "null"
            ],
            "description": "priority of the discount",
            "examples": [
              1
            ]
          },
          "usageCount": {
            "type": [
              "integer",
              "null"
            ],
            "description": "number of how many times can be discount used",
            "examples": [
              1000
            ]
          },
          "xTargeting": {
            "$ref": "#/components/schemas/xyDiscountTargetingResponse",
            "description": "definition of products needed to get discount"
          },
          "yTargeting": {
            "$ref": "#/components/schemas/xyDiscountTargetingResponse",
            "description": "definition of products get by discount"
          },
          "includeUnregisteredCustomers": {
            "type": "boolean",
            "description": "defines if discount is valid for unregistered customers, default value is `false`",
            "examples": [
              true
            ]
          }
        }
      },
      "xyDiscountTargetingResponse": {
        "type": [
          "object",
          "null"
        ],
        "required": [
          "productGuids",
          "categoryGuids",
          "brandCodes"
        ],
        "description": "definition of products needed to get discount",
        "additionalProperties": false,
        "properties": {
          "productGuids": {
            "type": [
              "array",
              "null"
            ],
            "description": "array of product guids",
            "items": {
              "type": "string",
              "examples": [
                "356eb81e-d966-11e0-b04f-57a43310b768"
              ]
            }
          },
          "categoryGuids": {
            "type": [
              "array",
              "null"
            ],
            "description": "array of page guids (categories)",
            "items": {
              "type": "string",
              "examples": [
                "07f7a4c1-d7b1-11e0-9a5c-feab5ed617ed"
              ]
            }
          },
          "brandCodes": {
            "type": [
              "array",
              "null"
            ],
            "description": "array of brand codes",
            "items": {
              "type": "string",
              "examples": [
                "brand-1"
              ]
            }
          }
        }
      },
      "xyDiscountTargetingPostRequest": {
        "type": "object",
        "minProperties": 1,
        "properties": {
          "productGuids": {
            "type": "array",
            "minItems": 1,
            "description": "array of product guids",
            "items": {
              "type": "string",
              "examples": [
                "356eb81e-d966-11e0-b04f-57a43310b768"
              ]
            }
          },
          "categoryGuids": {
            "type": "array",
            "description": "array of page guids (categories)",
            "minItems": 1,
            "items": {
              "type": "string",
              "examples": [
                "07f7a4c1-d7b1-11e0-9a5c-feab5ed617ed"
              ]
            }
          },
          "brandCodes": {
            "type": "array",
            "minItems": 1,
            "description": "array of brand codes",
            "items": {
              "type": "string",
              "examples": [
                "brand-1"
              ]
            }
          }
        }
      },
      "proofPaymentVatBreakdown": {
        "type": [
          "object",
          "null"
        ],
        "additionalProperties": false,
        "required": [
          "items",
          "summary"
        ],
        "properties": {
          "items": {
            "type": "array",
            "description": "breakdown of VAT items",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "vatRate",
                "priceWithVat",
                "priceWithoutVat",
                "vat"
              ],
              "properties": {
                "vatRate": {
                  "$ref": "#/components/schemas/typeVatRate",
                  "description": "VAT rate",
                  "examples": [
                    21
                  ]
                },
                "priceWithVat": {
                  "$ref": "#/components/schemas/typePriceNullable",
                  "description": "price with VAT",
                  "examples": [
                    121
                  ]
                },
                "priceWithoutVat": {
                  "$ref": "#/components/schemas/typePriceNullable",
                  "description": "price without VAT",
                  "examples": [
                    100
                  ]
                },
                "vat": {
                  "$ref": "#/components/schemas/typePriceNullable",
                  "description": "VAT value",
                  "examples": [
                    21
                  ]
                }
              }
            }
          },
          "summary": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "withVat",
              "withoutVat",
              "vat"
            ],
            "description": "summary of VAT breakdown",
            "properties": {
              "withVat": {
                "$ref": "#/components/schemas/typePriceNullable",
                "description": "Total price with VAT",
                "examples": [
                  121
                ]
              },
              "withoutVat": {
                "$ref": "#/components/schemas/typePriceNullable",
                "description": "Total price without VAT",
                "examples": [
                  100
                ]
              },
              "vat": {
                "$ref": "#/components/schemas/typePriceNullable",
                "description": "Total VAT value",
                "examples": [
                  21
                ]
              }
            }
          }
        }
      },
      "proofPaymentsList": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "orderCode",
          "proformaInvoiceCode",
          "invoiceCode",
          "issueDate",
          "billFullName",
          "payment",
          "isValid",
          "closed",
          "invoicingExchangeRate"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "proof payments identifier. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
            "examples": [
              "P--2015000170-1"
            ]
          },
          "orderCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "order code (can be `null`)",
            "examples": [
              "2015000001"
            ]
          },
          "proformaInvoiceCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "proforma invoice code (can be `null`)",
            "examples": [
              "2015000170"
            ]
          },
          "issueDate": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "Linked to invoice code (can be `null`)"
          },
          "billFullName": {
            "type": [
              "string",
              "null"
            ],
            "description": "name on the bill",
            "examples": [
              "John Doe"
            ]
          },
          "payment": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "total price on the bill",
            "examples": [
              100
            ]
          },
          "isValid": {
            "type": "boolean",
            "description": "is the proof payment valid?",
            "examples": [
              true
            ]
          },
          "vatMode": {
            "type": [
              "string",
              "null"
            ],
            "description": "VAT mode, can be null, for possible values see [VAT modes](#section/code-lists/vat-modes) code list",
            "examples": [
              "Normal"
            ]
          },
          "invoicingExchangeRate": {
            "$ref": "#/components/schemas/typeExchangeRate"
          },
          "invoiceCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "Linked to invoice code (can be `null`)",
            "examples": [
              "2017100013"
            ]
          },
          "closed": {
            "type": "boolean",
            "description": "is the proof payment closed?",
            "examples": [
              true
            ]
          }
        }
      },
      "proofPaymentDetail": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "orderCode",
          "proformaInvoiceCode",
          "invoiceCode",
          "createdAt",
          "updatedAt",
          "issueDate",
          "taxDate",
          "isValid",
          "currencyCode",
          "payment",
          "closed",
          "billFullName",
          "billCompany",
          "billStreet",
          "billHouseNumber",
          "billCity",
          "billDistrict",
          "billAdditional",
          "billZip",
          "billCountryCode",
          "billRegionName",
          "billRegionShortcut",
          "vatId",
          "taxId",
          "companyId",
          "email",
          "phone",
          "source",
          "cashdeskId",
          "customerGuid",
          "customerProfileId",
          "identificationNumber",
          "remark",
          "varSymbol",
          "constSymbol",
          "specSymbol",
          "billingMethod",
          "billBankAccount",
          "billIban",
          "billBic",
          "bankAccount",
          "iban",
          "bic",
          "documentRemark",
          "vatBreakdown",
          "invoicingExchangeRate"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "proof payments identifier. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
            "examples": [
              "P--2015000170-1"
            ]
          },
          "orderCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "order code (can be `null`)",
            "examples": [
              "2015000001"
            ]
          },
          "proformaInvoiceCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "proforma invoice code (can be `null`)",
            "examples": [
              "2015000170"
            ]
          },
          "createdAt": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date of create, in ISO 8601 format"
          },
          "updatedAt": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date of update, in ISO 8601 format"
          },
          "issueDate": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date on which was proof payment issued, in ISO 8601 format"
          },
          "taxDate": {
            "$ref": "#/components/schemas/typeDateNullable",
            "description": "date of tax"
          },
          "isValid": {
            "type": "boolean",
            "description": "is proof payment valid?",
            "examples": [
              true
            ]
          },
          "currencyCode": {
            "type": "string",
            "description": "currency code. List of available currencies within the e-shop can be found in endpoint `GET /api/eshop`.",
            "examples": [
              "CZK"
            ]
          },
          "payment": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "total price on the bill",
            "examples": [
              "1000.00"
            ]
          },
          "closed": {
            "type": "boolean",
            "description": "is proof payment closed?",
            "examples": [
              true
            ]
          },
          "billFullName": {
            "type": [
              "string",
              "null"
            ],
            "description": "name on the bill (can be `null`)",
            "examples": [
              "John Doe"
            ]
          },
          "billCompany": {
            "type": [
              "string",
              "null"
            ],
            "description": "company name on the bill (can be `null`)",
            "examples": [
              "Shoptet, a.s."
            ]
          },
          "billStreet": {
            "type": [
              "string",
              "null"
            ],
            "description": "street on the bill (can be `null`)",
            "examples": [
              "Křižíkova"
            ]
          },
          "billHouseNumber": {
            "type": [
              "string",
              "null"
            ],
            "description": "house number on the bill (can be `null`)",
            "examples": [
              "237/36"
            ]
          },
          "billCity": {
            "type": [
              "string",
              "null"
            ],
            "description": "city on the bill (can be `null`)",
            "examples": [
              "Praha 2"
            ]
          },
          "billDistrict": {
            "type": [
              "string",
              "null"
            ],
            "description": "county on the bill (can be `null`)",
            "examples": [
              "Praha 2"
            ]
          },
          "billAdditional": {
            "type": [
              "string",
              "null"
            ],
            "description": "additional info for address on the bill (can be `null`)",
            "examples": [
              "4. floor"
            ]
          },
          "billZip": {
            "type": [
              "string",
              "null"
            ],
            "description": "ZIP or postal code on the bill (can be `null`)",
            "examples": [
              "120 00"
            ]
          },
          "billCountryCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "two-character country code on the bil (can be `null`)",
            "examples": [
              "CZ"
            ]
          },
          "billRegionName": {
            "type": [
              "string",
              "null"
            ],
            "description": "region name on the bil (can be `null`)",
            "examples": [
              "Capital city"
            ]
          },
          "billRegionShortcut": {
            "type": [
              "string",
              "null"
            ],
            "description": "region abbreviation on the bil (can be `null`)",
            "examples": [
              "CC"
            ]
          },
          "vatId": {
            "type": [
              "string",
              "null"
            ],
            "description": "VAT identification number. (can be `null`)",
            "examples": [
              "CZ123456789"
            ]
          },
          "taxId": {
            "type": [
              "string",
              "null"
            ],
            "description": "TAX identification number. For Czech address, taxId is same as vatId. (can be `null`)",
            "examples": [
              "CZ123456789"
            ]
          },
          "companyId": {
            "type": [
              "string",
              "null"
            ],
            "description": "Company registration number. (can be `null`)",
            "examples": [
              "12345678"
            ]
          },
          "language": {
            "type": "string",
            "description": "Language code. Available only if module foreignLanguages is active and initialized.",
            "examples": [
              "cs"
            ]
          },
          "email": {
            "type": [
              "string",
              "null"
            ],
            "examples": [
              "example@example.com"
            ]
          },
          "phone": {
            "type": [
              "string",
              "null"
            ],
            "description": "Phone number",
            "examples": [
              "603481066"
            ]
          },
          "source": {
            "type": "object",
            "additionalProperties": false,
            "description": "proof payments source",
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "source identifier",
                "examples": [
                  1
                ]
              },
              "name": {
                "type": "string",
                "description": "source description",
                "examples": [
                  "Administration"
                ]
              }
            }
          },
          "cashdeskId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "cashdesk identifier",
            "examples": [
              123
            ]
          },
          "customerGuid": {
            "description": "global unique permanent customer identifier (can be `null`)",
            "oneOf": [
              {
                "$ref": "#/components/schemas/typeGuidUnlimited"
              },
              {
                "type": "null"
              }
            ]
          },
          "customerProfileId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "customer profile identifier (can be `null`)",
            "examples": [
              123
            ]
          },
          "identificationNumber": {
            "type": [
              "string",
              "null"
            ],
            "description": "Identification number (can be `null`)",
            "examples": [
              "12345678"
            ],
            "deprecated": true
          },
          "remark": {
            "type": [
              "string",
              "null"
            ],
            "description": "remark (not visible for customer) (can be `null`)",
            "examples": [
              "This is a remark"
            ]
          },
          "varSymbol": {
            "type": "number",
            "description": "variable symbol",
            "examples": [
              666
            ]
          },
          "constSymbol": {
            "type": [
              "string",
              "null"
            ],
            "description": "constant symbol (can be `null`)",
            "examples": [
              "6583"
            ]
          },
          "specSymbol": {
            "type": [
              "number",
              "null"
            ],
            "description": "specific symbol (can be `null`)",
            "examples": [
              36534576
            ]
          },
          "billingMethod": {
            "description": "information about the method of payment",
            "oneOf": [
              {
                "$ref": "#/components/schemas/billingMethod"
              },
              {
                "type": "null"
              }
            ]
          },
          "billBankAccount": {
            "type": [
              "string",
              "null"
            ],
            "description": "bank account on the bill (can be `null`)",
            "examples": [
              "123456789/1234"
            ]
          },
          "billIban": {
            "type": [
              "string",
              "null"
            ],
            "description": "e-shop IBAN on the bill (can be `null`)",
            "examples": [
              "CZ6508000000192000145399"
            ]
          },
          "billBic": {
            "type": [
              "string",
              "null"
            ],
            "description": "bank code - SWIFT on the bill (can be `null`)",
            "examples": [
              "CNBACZPPXXXas"
            ]
          },
          "bankAccount": {
            "type": [
              "string",
              "null"
            ],
            "description": "bank account (can be `null`)",
            "examples": [
              "123456789/1234"
            ]
          },
          "iban": {
            "type": [
              "string",
              "null"
            ],
            "description": "e-shop IBAN (can be `null`)",
            "examples": [
              "CZ6508000000192000145399"
            ]
          },
          "bic": {
            "type": [
              "string",
              "null"
            ],
            "description": "bank code - SWIFT (can be `null`)",
            "examples": [
              "CNBACZPPXXXas"
            ]
          },
          "documentRemark": {
            "type": [
              "string",
              "null"
            ],
            "description": "remark in the document (visible for customer) (can be `null`)",
            "examples": [
              "This is a document remark"
            ]
          },
          "invoiceCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "Linked to invoice code (can be `null`)",
            "examples": [
              "2017100013"
            ]
          },
          "vatBreakdown": {
            "$ref": "#/components/schemas/proofPaymentVatBreakdown"
          },
          "vatMode": {
            "type": [
              "string",
              "null"
            ],
            "description": "VAT mode, can be null, for possible values see [VAT modes](#section/code-lists/vat-modes) code list",
            "examples": [
              "normal"
            ]
          },
          "invoicingExchangeRate": {
            "$ref": "#/components/schemas/typeExchangeRate"
          }
        }
      },
      "proofPaymentsForInvoice": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "code",
            "vatBreakdown"
          ],
          "properties": {
            "code": {
              "type": "string",
              "description": "proof payments identifier. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
              "examples": [
                "O-2017000017-01"
              ]
            },
            "vatBreakdown": {
              "$ref": "#/components/schemas/proofPaymentVatBreakdown",
              "description": "breakdown of VAT (can be `null`)"
            }
          }
        }
      },
      "proformaInvoiceCodes": {
        "type": "array",
        "items": {
          "type": "string",
          "description": "proforma invoice code",
          "examples": [
            "2015000170"
          ]
        }
      },
      "quantityDiscount": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "title",
          "validFrom",
          "validTo",
          "timeUnlimited",
          "customerGroups",
          "displayFlag",
          "flagColor",
          "priority",
          "isActive",
          "status",
          "includeUnregisteredCustomers",
          "targetingLevel",
          "targeting",
          "settings"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "discount ID",
            "examples": [
              1
            ]
          },
          "title": {
            "type": "string",
            "description": "discount title",
            "examples": [
              "18 + 4 free"
            ]
          },
          "validFrom": {
            "$ref": "#/components/schemas/typeDateNullable",
            "description": "date of discount validity from",
            "examples": [
              "2014-11-19"
            ]
          },
          "validTo": {
            "$ref": "#/components/schemas/typeDateNullable",
            "description": "date of discount validity to",
            "examples": [
              "2014-12-19"
            ]
          },
          "timeUnlimited": {
            "type": "boolean",
            "description": "flag whether the discount is time unlimited",
            "examples": [
              true
            ]
          },
          "customerGroups": {
            "type": [
              "array",
              "null"
            ],
            "description": "customer groups connected to discount",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "code",
                "name"
              ],
              "properties": {
                "code": {
                  "type": "string",
                  "description": "customer group code",
                  "examples": [
                    "retail"
                  ]
                },
                "name": {
                  "type": "string",
                  "description": "customer group name",
                  "examples": [
                    "Retail customer"
                  ]
                }
              }
            }
          },
          "displayFlag": {
            "type": "boolean",
            "description": "whether the flag is displayed",
            "examples": [
              true
            ]
          },
          "flagColor": {
            "$ref": "#/components/schemas/typeColor",
            "description": "color of the flag"
          },
          "priority": {
            "type": [
              "integer",
              "null"
            ],
            "description": "priority of the discount",
            "examples": [
              1
            ]
          },
          "isActive": {
            "type": "boolean",
            "description": "flag whether the discount is active",
            "examples": [
              true
            ]
          },
          "status": {
            "type": "string",
            "description": "status of the discount",
            "enum": [
              "available",
              "unavailable",
              "expired",
              "planned"
            ],
            "examples": [
              "active"
            ]
          },
          "targetingLevel": {
            "type": "string",
            "description": "targeting level of the discount",
            "enum": [
              "eshop",
              "product",
              "category",
              "brand"
            ],
            "examples": [
              "eshop"
            ]
          },
          "targeting": {
            "$ref": "#/components/schemas/quantityDiscountTargetingResponse",
            "description": "definition of products needed to get discount"
          },
          "includeUnregisteredCustomers": {
            "type": "boolean",
            "description": "defines if discount is valid for unregistered customers, default value is `false`",
            "examples": [
              true
            ]
          },
          "settings": {
            "$ref": "#/components/schemas/quantityDiscountSettingsResponse",
            "description": "settings of the discount"
          }
        }
      },
      "quantityDiscountTargetingResponse": {
        "type": [
          "object",
          "null"
        ],
        "required": [
          "productGuids",
          "categoryGuids",
          "brandCodes"
        ],
        "description": "definition of products needed to get discount",
        "additionalProperties": false,
        "properties": {
          "productGuids": {
            "type": [
              "array",
              "null"
            ],
            "description": "array of product guids",
            "items": {
              "type": "string",
              "examples": [
                "356eb81e-d966-11e0-b04f-57a43310b768"
              ]
            }
          },
          "categoryGuids": {
            "type": [
              "array",
              "null"
            ],
            "description": "array of page guids (categories)",
            "items": {
              "type": "string",
              "examples": [
                "07f7a4c1-d7b1-11e0-9a5c-feab5ed617ed"
              ]
            }
          },
          "brandCodes": {
            "type": [
              "array",
              "null"
            ],
            "description": "array of brand codes",
            "items": {
              "type": "string",
              "examples": [
                "brand-1"
              ]
            }
          }
        }
      },
      "quantityDiscountSettingsResponse": {
        "type": [
          "array",
          "null"
        ],
        "description": "settings of the discount",
        "items": {
          "type": "object",
          "required": [
            "amountFrom",
            "discountType",
            "discountValue"
          ],
          "additionalProperties": false,
          "properties": {
            "amountFrom": {
              "type": "integer",
              "description": "amount from of products needed to get discount",
              "examples": [
                2
              ]
            },
            "discountType": {
              "type": "string",
              "description": "type of discount",
              "examples": [
                "percentual"
              ]
            },
            "discountValue": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "priceRatio"
              ],
              "properties": {
                "priceRatio": {
                  "$ref": "#/components/schemas/typePriceRatio",
                  "description": "price ratio of the discount. Calculate as `(100 - percentage) / 100`",
                  "examples": [
                    0.85
                  ]
                }
              }
            }
          }
        }
      },
      "shipmentAddress": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "countryCode",
          "street",
          "isDefault",
          "type",
          "senderName",
          "contactPerson"
        ],
        "properties": {
          "id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "city": {
            "type": [
              "string",
              "null"
            ]
          },
          "zipCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "houseNumber": {
            "type": [
              "string",
              "null"
            ]
          },
          "contactPhone": {
            "type": [
              "string",
              "null"
            ]
          },
          "senderName": {
            "type": "string"
          },
          "contactPerson": {
            "type": "string"
          },
          "contactEmail": {
            "type": [
              "string",
              "null"
            ]
          },
          "isDefault": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "type": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "shipmentCustomer": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "company": {
            "type": [
              "string",
              "null"
            ]
          },
          "street": {
            "type": [
              "string",
              "null"
            ]
          },
          "city": {
            "type": [
              "string",
              "null"
            ]
          },
          "zipCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "countryCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "phone": {
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "type": [
              "string",
              "null"
            ]
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "shipmentPrice": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "value",
          "currencyCode"
        ],
        "properties": {
          "value": {
            "$ref": "#/components/schemas/typePriceNullable"
          },
          "currencyCode": {
            "type": "string"
          }
        }
      },
      "shipmentCoDPrice": {
        "type": [
          "object",
          "null"
        ],
        "additionalProperties": false,
        "required": [
          "value",
          "currencyCode"
        ],
        "properties": {
          "value": {
            "$ref": "#/components/schemas/typePriceNullable"
          },
          "currencyCode": {
            "type": "string"
          }
        }
      },
      "shipmentPackage": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "width": {
            "type": [
              "number",
              "null"
            ]
          },
          "height": {
            "type": [
              "number",
              "null"
            ]
          },
          "depth": {
            "type": [
              "number",
              "null"
            ]
          },
          "weight": {
            "type": [
              "number",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "packagingId": {
            "type": [
              "integer",
              "null"
            ]
          },
          "labelUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "labelZpl": {
            "type": [
              "string",
              "null"
            ]
          },
          "trackingNumber": {
            "type": [
              "string",
              "null"
            ]
          },
          "trackingUrl": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "shipmentPackageWithHistory": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "history"
        ],
        "properties": {
          "width": {
            "type": [
              "number",
              "null"
            ]
          },
          "height": {
            "type": [
              "number",
              "null"
            ]
          },
          "depth": {
            "type": [
              "number",
              "null"
            ]
          },
          "weight": {
            "type": [
              "number",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "packagingId": {
            "type": [
              "integer",
              "null"
            ]
          },
          "labelUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "labelZpl": {
            "type": [
              "string",
              "null"
            ]
          },
          "trackingNumber": {
            "type": [
              "string",
              "null"
            ]
          },
          "trackingUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "history": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/shipmentHistory"
            }
          }
        }
      },
      "shipmentHistory": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "fromStatus",
          "toStatus",
          "realDatetime",
          "providerDatetime",
          "note"
        ],
        "properties": {
          "fromStatus": {
            "type": "string"
          },
          "toStatus": {
            "type": "string"
          },
          "realDatetime": {
            "$ref": "#/components/schemas/typeDateTimeNullable"
          },
          "providerDatetime": {
            "$ref": "#/components/schemas/typeDateTimeNullable"
          },
          "note": {
            "type": "string"
          }
        }
      },
      "shipmentCarrierCountry": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "countryCode",
          "maxCod",
          "codCurrencyCode",
          "maxWeight"
        ],
        "properties": {
          "countryCode": {
            "type": "string"
          },
          "maxCod": {
            "$ref": "#/components/schemas/typePriceNullable"
          },
          "codCurrencyCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "maxWeight": {
            "type": "integer"
          }
        }
      },
      "onlineStoreCountry": {
        "type": [
          "object",
          "null"
        ],
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "code",
          "codeAlpha3"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Country identifier.",
            "examples": [
              1
            ]
          },
          "name": {
            "type": "string",
            "description": "Country name.",
            "examples": [
              "Česká republika"
            ]
          },
          "code": {
            "type": "string",
            "description": "Country code.",
            "examples": [
              "CZ"
            ]
          },
          "isoCode": {
            "type": "string",
            "description": "Country ISO code.",
            "examples": [
              "CZ"
            ]
          },
          "flagCode": {
            "type": "string",
            "description": "Country flag code.",
            "examples": [
              "CZ"
            ]
          },
          "codeAlpha3": {
            "type": "string",
            "description": "Country alpha-3 code.",
            "examples": [
              "CZE"
            ]
          },
          "currency": {
            "type": [
              "string",
              "null"
            ],
            "description": "Country currency.",
            "examples": [
              "CZK"
            ]
          },
          "language": {
            "type": [
              "string",
              "null"
            ],
            "description": "Country language.",
            "examples": [
              "cs"
            ]
          },
          "regionCount": {
            "type": "integer",
            "description": "Region count of country.",
            "examples": [
              0
            ]
          }
        }
      },
      "salesChannel": {
        "type": [
          "object",
          "null"
        ],
        "required": [
          "guid",
          "name",
          "type",
          "currencies",
          "languages",
          "createdAt",
          "updatedAt"
        ],
        "properties": {
          "guid": {
            "$ref": "#/components/schemas/typeGuid",
            "description": "Sales channel GUID."
          },
          "name": {
            "type": "string",
            "description": "Sales channel name.",
            "examples": [
              "My sales channel"
            ]
          },
          "type": {
            "enum": [
              "in_store",
              "market",
              "marketplace"
            ],
            "description": "Type of sales channel.",
            "examples": [
              "in_store"
            ]
          },
          "defaultCurrency": {
            "type": "string",
            "description": "Sales chanel default currency.",
            "examples": [
              "CZK"
            ]
          },
          "currencies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/salesChannelCurrency"
            },
            "description": "Currencies collection."
          },
          "defaultLanguage": {
            "type": "string",
            "description": "Sales chanel default language.",
            "examples": [
              "Czech"
            ]
          },
          "languages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/salesChannelLanguage"
            },
            "description": "Languages collection."
          },
          "createdAt": {
            "$ref": "#/components/schemas/typeDateTime"
          },
          "updatedAt": {
            "$ref": "#/components/schemas/typeDateTimeNullable"
          }
        }
      },
      "onlineStoreDesign": {
        "type": "object",
        "required": [
          "header"
        ],
        "properties": {
          "header": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "logoUrl"
            ],
            "properties": {
              "logoUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "URL of online store logo.",
                "examples": [
                  "https://dummy.myshoptet.com/user/logos/shoptet-logo.png"
                ]
              }
            }
          }
        }
      },
      "onlineStore": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "status",
          "isPasswordProtected",
          "isPrimary"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Online store identifier.",
            "examples": [
              1
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of online store.",
            "examples": [
              "Czech republic"
            ]
          },
          "status": {
            "type": "string",
            "description": "Online store status",
            "enum": [
              "active",
              "pending"
            ],
            "examples": [
              "active"
            ]
          },
          "domain": {
            "type": [
              "string"
            ],
            "description": "Online store domain.",
            "examples": [
              "store.example.com"
            ]
          },
          "domainSetupMethod": {
            "type": [
              "string",
              "null"
            ],
            "description": "Online store domain setup method.",
            "examples": [
              "unresolved"
            ]
          },
          "addressFormat": {
            "type": "string",
            "description": "Address format of online store.",
            "examples": [
              "INTERNAL_PROJECT_CZ"
            ]
          },
          "timezone": {
            "type": "string",
            "description": "Timezone of online store.",
            "examples": [
              "Europe/Prague"
            ]
          },
          "defaultCountry": {
            "$ref": "#/components/schemas/onlineStoreCountry",
            "description": "Default country of online store."
          },
          "countries": {
            "type": "array",
            "description": "Countries of online store.",
            "items": {
              "$ref": "#/components/schemas/onlineStoreCountry"
            }
          },
          "salesChannel": {
            "$ref": "#/components/schemas/salesChannel",
            "description": "Online store sales channel."
          },
          "isPasswordProtected": {
            "type": "boolean",
            "description": "Whether the online store is protected by password.",
            "examples": [
              false
            ]
          },
          "isPrimary": {
            "type": "boolean",
            "description": "Whether the online store is primary.",
            "examples": [
              true
            ]
          },
          "design": {
            "$ref": "#/components/schemas/onlineStoreDesign",
            "description": "Online store design."
          }
        }
      },
      "articleUrls": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "sectionId",
          "url"
        ],
        "properties": {
          "sectionId": {
            "type": "integer",
            "description": "article section ID",
            "examples": [
              682
            ]
          },
          "url": {
            "type": "string",
            "description": "article URL",
            "examples": [
              "https://www.some-eshop-url.com/blog/new-article"
            ]
          }
        }
      },
      "discountCoupon": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "creationTime",
          "discountType",
          "amount",
          "ratio",
          "minPrice",
          "currency",
          "template",
          "shippingPrice",
          "validFrom",
          "validTo",
          "reusable",
          "usedCount",
          "remark"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "code of discount coupon",
            "examples": [
              "DC14585431"
            ]
          },
          "creationTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date and time, when the discount coupon was created"
          },
          "discountType": {
            "type": "string",
            "enum": [
              "percentual",
              "fixed"
            ],
            "description": "type of discount. Percentual (`percentual`) or absolute discount (`fixed`)",
            "examples": [
              "percentual"
            ]
          },
          "amount": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "amount of absolute discount (default eshop VAT rate is used)"
          },
          "ratio": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/typePriceRatio"
              },
              {
                "type": "null"
              }
            ],
            "description": "amount of percentual discount"
          },
          "minPrice": {
            "$ref": "#/components/schemas/typePriceNullable",
            "description": "minimum price of order (default eshop VAT rate is used)"
          },
          "currency": {
            "$ref": "#/components/schemas/typeCurrencyCodeNullable",
            "description": "currency of fixed discount."
          },
          "template": {
            "$ref": "#/components/schemas/typeGuid",
            "description": "template used for the discount coupon creation."
          },
          "shippingPrice": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "cart",
              "free",
              "beforeDiscount",
              null
            ],
            "description": "how the transport prices are calculated: according to the cart before discounts (beforeDiscount), according to the displayed value of the cart (cart), or free (free)",
            "examples": [
              "cart"
            ]
          },
          "validFrom": {
            "$ref": "#/components/schemas/typeDateNullable",
            "description": "starting date of coupon validity"
          },
          "validTo": {
            "$ref": "#/components/schemas/typeDateNullable",
            "description": "ending date of coupon validity"
          },
          "reusable": {
            "type": "boolean",
            "description": "Is the discount coupon reusable?",
            "examples": [
              true
            ]
          },
          "usedCount": {
            "type": "integer",
            "description": "number of times the discount coupon has been used",
            "examples": [
              0
            ]
          },
          "remark": {
            "type": [
              "string",
              "null"
            ],
            "description": "remark for the discount coupon.",
            "examples": [
              "Note: This is a test discount coupon"
            ]
          }
        }
      },
      "order": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "guid",
          "externalCode",
          "creationTime",
          "changeTime",
          "email",
          "phone",
          "clientIPAddress",
          "customerGuid",
          "vatPayer",
          "cashDeskOrder",
          "stockId",
          "addressesEqual",
          "billingMethod",
          "paymentMethod",
          "shipping",
          "adminUrl",
          "status",
          "price",
          "paid",
          "billingAddress",
          "deliveryAddress",
          "items"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "order number. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
            "examples": [
              "2017000092"
            ]
          },
          "guid": {
            "type": "string",
            "description": "global unique permanent order identifier (can be `null` for old orders)",
            "examples": [
              "c5012051-d7ca-11e0-9a5c-feab5ed617ed"
            ]
          },
          "externalCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "Identification of the order in external system (or `null`).",
            "examples": [
              "1234"
            ]
          },
          "creationTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date and time, when the order was created. ISO 8601 format."
          },
          "changeTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date and time of the order's last change. ISO 8601 format."
          },
          "email": {
            "type": [
              "string",
              "null"
            ],
            "description": "purchaser e-mail (can be `null`)",
            "examples": [
              "customer@someemail.com"
            ]
          },
          "phone": {
            "type": [
              "string",
              "null"
            ],
            "description": "purchaser phone number (can be `null`)",
            "examples": [
              "+420604600444"
            ]
          },
          "birthDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "customer's date of birth stated in the order",
            "examples": [
              "1980-01-01"
            ]
          },
          "clientIPAddress": {
            "type": [
              "string",
              "null"
            ],
            "description": "IP address of the client who made the order",
            "examples": [
              "213.46.237.24"
            ]
          },
          "customerGuid": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/typeGuidUnlimited"
              },
              {
                "type": "null"
              }
            ],
            "description": "customer identifier, if the customer is registered in the e-shop (can be `null`)"
          },
          "cashDeskOrder": {
            "type": "boolean",
            "description": "flag, whether the order is from the cash desk (as opposed to the e-shop)",
            "examples": [
              true
            ]
          },
          "stockId": {
            "type": "integer",
            "description": "identifier of the stock, from which the order was taken",
            "examples": [
              1
            ]
          },
          "addressesEqual": {
            "type": "boolean",
            "description": "flag, whether the delivery address is the same as the invoicing address",
            "examples": [
              true
            ]
          },
          "vatPayer": {
            "type": "boolean",
            "description": "Is the tradesman a VAT payer, when purchasing? (can be `null`, if this is unknown)",
            "examples": [
              true
            ]
          },
          "vatMode": {
            "type": [
              "string",
              "null"
            ],
            "description": "VAT mode, for possible values see [VAT modes](#section/code-lists/vat-modes) code list",
            "examples": [
              "Normal"
            ]
          },
          "billingMethod": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/billingMethod"
              },
              {
                "type": "null"
              }
            ]
          },
          "paymentMethod": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/paymentMethod"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping": {
            "$ref": "#/components/schemas/shipping"
          },
          "shippingDetails": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": false,
            "required": [
              "branchId",
              "shippingCompanyCode",
              "name",
              "note",
              "place",
              "street",
              "city",
              "zipCode",
              "countryCode",
              "link",
              "latitude",
              "longitude",
              "carrierId"
            ],
            "properties": {
              "branchId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "branch identifier",
                "examples": [
                  "4"
                ]
              },
              "shippingCompanyCode": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "identification of the carrier",
                "examples": [
                  "zasilkovna"
                ]
              },
              "shippingServiceCode": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "identification of the carrier's service",
                "examples": [
                  "zasilkovna-pickup"
                ]
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "name of the branch",
                "examples": [
                  "Hradec Králové, Square of 5th May 888"
                ]
              },
              "note": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "branch location note, can contain HTML",
                "examples": [
                  "<p>Open: Mon-Fri 8:00-18:00, Sat 8:00-12:00</p>"
                ]
              },
              "place": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "location (specify location within address).",
                "examples": [
                  "Creator"
                ]
              },
              "street": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "street",
                "examples": [
                  "Square of 5th May 888"
                ]
              },
              "city": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "city/town",
                "examples": [
                  "Hradec Králové"
                ]
              },
              "zipCode": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "ZIP or postal code",
                "examples": [
                  "50002"
                ]
              },
              "countryCode": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "country code",
                "examples": [
                  "CZ"
                ]
              },
              "link": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "link to the branch's website",
                "examples": [
                  "https://www.ulozenka.cz/pobocky/4/hradec-kralove-nam-5-kvetna-888"
                ]
              },
              "latitude": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "GPS coordinates - north latitude",
                "examples": [
                  "50.213673"
                ]
              },
              "longitude": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "GPS coordinates - east longitude",
                "examples": [
                  "15.832775"
                ]
              },
              "carrierId": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "identification of the carrier - now it's used for Zasilkovna only. The value is `null` for Czech Zasilkovna or carrier ID for Zasilkovna in the other countries.",
                "examples": [
                  3060
                ]
              }
            }
          },
          "adminUrl": {
            "type": "string",
            "description": "URL to administration leading to order detail. URL keeps the administration language settings.",
            "examples": [
              "https://www.domena-eshopu.cz/admin/objednavky-detail?id=2"
            ]
          },
          "status": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": false,
            "required": [
              "name",
              "id"
            ],
            "properties": {
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "status name",
                "examples": [
                  "Processing"
                ]
              },
              "id": {
                "type": "integer",
                "description": "status identifier",
                "examples": [
                  -1
                ]
              }
            }
          },
          "source": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": false,
            "required": [
              "name",
              "id"
            ],
            "description": "source of the order",
            "properties": {
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "source name",
                "examples": [
                  "E-Shop"
                ]
              },
              "id": {
                "type": "integer",
                "description": "DEPRECATED source identifier",
                "examples": [
                  -1
                ]
              }
            }
          },
          "salesChannelGuid": {
            "$ref": "#/components/schemas/typeGuidNullable",
            "description": "sales channel guid"
          },
          "price": {
            "$ref": "#/components/schemas/price",
            "description": "price of the order"
          },
          "paid": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "flag, whether the order was paid. In addition to `true` a `false`, can also be `null`, if the payment status is unknown.",
            "examples": [
              true
            ]
          },
          "billingAddress": {
            "$ref": "#/components/schemas/billingAddress"
          },
          "deliveryAddress": {
            "$ref": "#/components/schemas/address"
          },
          "onlinePaymentLink": {
            "type": [
              "string",
              "null"
            ],
            "description": "URL to online payment",
            "examples": [
              "https://www.domena-eshopu.cz/api/pay/payu/redir?paymentCode=xyz123"
            ]
          },
          "language": {
            "type": "string",
            "description": "Language code of the order. Available only if module foreignLanguages is active and initialized.",
            "examples": [
              "cs"
            ]
          },
          "referer": {
            "type": [
              "string",
              "null"
            ],
            "description": "which page (url) has the user come from",
            "examples": [
              "https://www.google.cz/"
            ]
          },
          "paymentMethods": {
            "type": "array",
            "description": "all order payment methods",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "paymentMethod",
                "itemId"
              ],
              "properties": {
                "paymentMethod": {
                  "$ref": "#/components/schemas/paymentMethod"
                },
                "itemId": {
                  "type": "integer",
                  "description": "payment method identifier within order",
                  "examples": [
                    564
                  ]
                }
              }
            }
          },
          "shippings": {
            "type": "array",
            "description": "all order shippings",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "shipping",
                "itemId"
              ],
              "properties": {
                "shipping": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "guid",
                    "name"
                  ],
                  "description": "transport method",
                  "properties": {
                    "guid": {
                      "$ref": "#/components/schemas/typeGuidNullable",
                      "description": "transport method identifier"
                    },
                    "name": {
                      "type": "string",
                      "description": "description of transport method",
                      "examples": [
                        "PPL"
                      ]
                    }
                  }
                },
                "itemId": {
                  "type": "integer",
                  "description": "transport method identifier within order",
                  "examples": [
                    897
                  ]
                }
              }
            }
          },
          "items": {
            "type": "array",
            "description": "all order items",
            "items": {
              "$ref": "#/components/schemas/orderItem"
            }
          },
          "notes": {
            "type": "object",
            "additionalProperties": false,
            "description": "order notes (only filled in on request if `include=notes` is listed)",
            "required": [
              "customerRemark",
              "eshopRemark",
              "trackingNumber",
              "trackingUrl",
              "additionalFields"
            ],
            "properties": {
              "customerRemark": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "customer note",
                "examples": [
                  "Better in green"
                ]
              },
              "eshopRemark": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "e-shop order remark.",
                "examples": [
                  "Gift wrapping"
                ]
              },
              "trackingNumber": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "shipment number",
                "examples": [
                  "DR123456"
                ]
              },
              "trackingUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "package trace link (can be `null`)",
                "examples": [
                  "http://www.ppl.cz/main2.aspx?cls=Package&idSearch=DR123456"
                ]
              },
              "additionalFields": {
                "type": "array",
                "description": "can contain up to six additional fields, which can be freely used by e-shop for its individual needs.",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "index",
                    "label",
                    "text"
                  ],
                  "properties": {
                    "index": {
                      "type": "integer",
                      "description": "sequence number",
                      "examples": [
                        1
                      ]
                    },
                    "label": {
                      "type": "string",
                      "description": "item name. The name of the field can be edited in the e-shop administration.",
                      "examples": [
                        "1st field"
                      ]
                    },
                    "text": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "item value (can be `null`)",
                      "examples": [
                        "forwarder ID"
                      ]
                    }
                  }
                }
              }
            }
          },
          "preAuthorization": {
            "$ref": "#/components/schemas/orderPreAuthorization"
          },
          "completion": {
            "type": "array",
            "description": "All order items completion status. Contains completion info even for product set items.",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "productGuid",
                "code",
                "itemType",
                "name",
                "amount",
                "amountUnit",
                "itemId",
                "amountCompleted"
              ],
              "properties": {
                "productGuid": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/typeGuidUnlimited"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "code": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "identifier of the item code (product or variant). At the time the order is created, it will be entered in this field, but when the product is deleted, the link will be lost.",
                  "examples": [
                    "40/ZEL"
                  ]
                },
                "itemType": {
                  "type": "string",
                  "description": "Order item type (product, service...). See also [Types of order items](#section/code-lists/types-of-order-items) code list.",
                  "examples": [
                    "product"
                  ]
                },
                "name": {
                  "type": "string",
                  "description": "Product name",
                  "examples": [
                    "Complete"
                  ]
                },
                "variantName": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "variant name (can be `null`)",
                  "examples": [
                    "Name"
                  ]
                },
                "amount": {
                  "$ref": "#/components/schemas/typeAmountNullable",
                  "description": "product quantity",
                  "examples": [
                    1
                  ]
                },
                "amountUnit": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "product unit of quantity",
                  "examples": [
                    "ks"
                  ]
                },
                "itemId": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Order item identifier. This field is null for product set items.",
                  "examples": [
                    342
                  ]
                },
                "amountCompleted": {
                  "$ref": "#/components/schemas/typePositiveAmountNullable",
                  "description": "quantity of completed product",
                  "examples": [
                    1
                  ]
                },
                "parentProductSetItemId": {
                  "type": "integer",
                  "description": "identifier of the parent product set item, if the item is a product set item. If the item is not a product set item, this field is not present.",
                  "examples": [
                    123
                  ]
                }
              }
            }
          },
          "paymentTransactions": {
            "type": "array",
            "description": "all order payment transactions",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "transactionId",
                "price",
                "status",
                "creationTime",
                "changeTime"
              ],
              "properties": {
                "transactionId": {
                  "type": [
                    "string"
                  ],
                  "description": "payment transaction identifier",
                  "examples": [
                    "018myestp7sjopi9zs5obatbhwcor33e"
                  ]
                },
                "price": {
                  "$ref": "#/components/schemas/typePrice",
                  "description": "payment transaction price"
                },
                "status": {
                  "type": "string",
                  "description": "status of the payment transaction",
                  "examples": [
                    "OK",
                    "NEW",
                    "FAILED",
                    "PENDING",
                    "UNKNOWN"
                  ]
                },
                "creationTime": {
                  "$ref": "#/components/schemas/typeDateTimeNullable",
                  "description": "payment transaction creation date and time"
                },
                "changeTime": {
                  "$ref": "#/components/schemas/typeDateTimeNullable",
                  "description": "payment transaction last change date and time"
                }
              }
            }
          }
        }
      },
      "orderCreate": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "externalCode",
          "currency"
        ],
        "properties": {
          "creationTime": {
            "type": "string",
            "description": "time of order creation. Optional, current time is the default value.",
            "examples": [
              "2018-01-21T14:15:47+0100"
            ]
          },
          "code": {
            "type": "string",
            "minLength": 1,
            "maxLength": 10,
            "description": "Unique identifier for an e-shop order. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
            "examples": [
              "2024-123"
            ]
          },
          "language": {
            "type": "string",
            "minLength": 1,
            "description": "Language of order. Available only if module foreignLanguages is active and initialized.",
            "examples": [
              "cs"
            ]
          },
          "externalCode": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "order identification within the external system (mandatory, must be unique).",
            "examples": [
              "X123"
            ]
          },
          "cashDeskOrder": {
            "type": "boolean",
            "description": "flag, if the order was created via the cash desk. Optional. `false` is the default value."
          },
          "statusId": {
            "type": "integer",
            "description": "Order status. Optional. If not indicated, the default status of the order is used, as per e-shop settings. If the status definition sets the payment flag, the parameter `paid` is set to `true`. if the request also mentions `paid`, the `paid` variant has priority. If the status definition has selected the setting of item statuses, the status is also set for items. Otherwise, the initial status is the set based on e-shop defaults. If the item has status set explicitly (see below `items[].statusId`), the value from the item shall be used.",
            "examples": [
              -1
            ]
          },
          "sourceId": {
            "type": [
              "integer",
              "null"
            ],
            "examples": [
              -1
            ],
            "description": "Order source id. Optional. If not indicated, no source will be used (null). If `sourceId` is positive, `cashDeskOnly` must also be set to `true`, otherwise if `sourceId` is negative, `cashDeskOnly` must be set to `false`, otherwise error will be returned. Current possible values of `sourceId` can be determined by calling the list of order sources endpoint."
          },
          "salesChannelGuid": {
            "$ref": "#/components/schemas/typeGuidNullable",
            "minLength": 1,
            "description": "Sales channel GUID. Requires actived module `Sales Channel`. Optional.",
            "examples": [
              "b57f91bb-e920-11e0-baa3-7dc668b75ca8"
            ]
          },
          "email": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "customer e-mail (can be omitted only when ordering via cash desk).",
            "examples": [
              "foo@bar.cz"
            ]
          },
          "phone": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 32,
            "description": "phone number of the customer. Optional, if not set as mandatory item in shop settings.",
            "examples": [
              "+420123456789"
            ]
          },
          "birthDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "customer birth date (optional, if not made mandatory by the e-shop settings).",
            "examples": [
              "1990-01-01"
            ]
          },
          "vatPayer": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Flag, whether the invoice was issued in VAT payer mode, or VAT non-payer mode. Optional, if not indicated, it is used as per current settings of the e-shop (only makes sense for historical orders, if e-shop changed its status form VAT payer to different or vice versa)"
          },
          "paymentMethodGuid": {
            "$ref": "#/components/schemas/typeGuidNullable",
            "minLength": 1,
            "description": "Payment method. Optional, for an order via cash desk or eshop order. Does not automatically generate payment item in the list of items, and does not check the consistency with payment item. Billing item type is mandatory if paymentMethodGuid is filled.",
            "examples": [
              "b57f91bb-e920-11e0-baa3-7dc668b75ca8"
            ]
          },
          "shippingGuid": {
            "$ref": "#/components/schemas/typeGuidNullable",
            "minLength": 1,
            "description": "Transport method. Optional, for an order via cash desk or eshop order. Does not automatically generate transport item in the list of items, and does not check the consistency with the transport item. Shipping item type is mandatory if shippingGuid is filled.",
            "examples": [
              "b57f91bb-e920-11e0-baa3-7dc668b75ca8"
            ]
          },
          "shippingDetails": {
            "description": "additional information for transport, if any. typically ID of Zásilkovna branches, postal offices, etc. (optional)",
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "branchId"
                ],
                "properties": {
                  "branchId": {
                    "type": "string",
                    "description": "branch ID, if delivered to Uloženka branch, DPD, etc.",
                    "examples": [
                      "45"
                    ]
                  },
                  "branchName": {
                    "type": "string",
                    "description": "branch name, if delivered to Uloženka branch, DPD, etc.",
                    "examples": [
                      "Test branch"
                    ]
                  },
                  "carrierId": {
                    "type": "integer",
                    "description": "CarrierId, use only for Zasilkovna/Packeta, use their carrierID.",
                    "examples": [
                      3060
                    ]
                  }
                }
              }
            ]
          },
          "paid": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "flag, whether the order was paid",
            "examples": [
              true
            ]
          },
          "billingMethodCode": {
            "type": "integer",
            "minimum": 1,
            "maximum": 4,
            "description": "Billing method identifier - see also [Invoice billing methods](#section/code-lists/invoice-billing-methods) code list. Optional.",
            "examples": [
              2
            ]
          },
          "clientIPAddress": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 255,
            "description": "IP address of the customer, from where the order was made",
            "examples": [
              "62.128.123.12"
            ]
          },
          "customerGuid": {
            "$ref": "#/components/schemas/typeGuidNullable",
            "minLength": 1,
            "description": "Customer GUID, if not done under known registered customer (optional)."
          },
          "billingAddress": {
            "type": "object",
            "additionalProperties": false,
            "description": "invoicing address",
            "properties": {
              "company": {
                "type": [
                  "string",
                  "null"
                ],
                "maxLength": 255,
                "description": "company name. Optional, if not set as mandatory item in shop settings.",
                "examples": [
                  "Smith & Smith"
                ]
              },
              "fullName": {
                "type": [
                  "string",
                  "null"
                ],
                "maxLength": 255,
                "description": "customer name. Optional, if not set as mandatory item in shop settings.",
                "examples": [
                  "John Doe"
                ]
              },
              "street": {
                "type": [
                  "string",
                  "null"
                ],
                "maxLength": 255,
                "description": "(string, optional) - street of the customer. Optional, if not set as mandatory item in shop settings.",
                "examples": [
                  "Main Street"
                ]
              },
              "streetWithNr": {
                "type": [
                  "string",
                  "null"
                ],
                "maxLength": 255,
                "description": "Street, including street number. Optional, if necessary, to be divided to street and street number and saved in respective fields. Use if you only have the combined data. Usually, the `street` and `houseNumber` will not be needed (if they are used, however, they have priority).",
                "examples": [
                  "Main Street 123"
                ]
              },
              "houseNumber": {
                "type": [
                  "string",
                  "null"
                ],
                "maxLength": 255,
                "description": "street number. Optional, if not set as mandatory item in shop settings.",
                "examples": [
                  "123"
                ]
              },
              "city": {
                "type": [
                  "string",
                  "null"
                ],
                "maxLength": 255,
                "description": "City/Town. Optional, if not set as mandatory item in shop settings.",
                "examples": [
                  "Flat Country"
                ]
              },
              "district": {
                "type": [
                  "string",
                  "null"
                ],
                "maxLength": 255,
                "description": "County. Optional, if not set as mandatory item in shop settings.",
                "examples": [
                  "Bohemia"
                ]
              },
              "additional": {
                "type": [
                  "string",
                  "null"
                ],
                "maxLength": 255,
                "description": "Additional information for the address. Optional.",
                "examples": [
                  "3rd floor"
                ]
              },
              "zip": {
                "type": [
                  "string",
                  "null"
                ],
                "maxLength": 255,
                "description": "ZIP or postal code. Optional, if not set as mandatory item in shop settings.",
                "examples": [
                  "123 00"
                ]
              },
              "countryCode": {
                "type": "string",
                "minLength": 1,
                "description": "(string, optional) - country of the customer. Optional, the default delivery country is used as the default value, taken from eshop settings.",
                "examples": [
                  "CZ"
                ]
              },
              "regionName": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 1,
                "maxLength": 255,
                "description": "region. Optional.",
                "examples": [
                  "Central Bohemia"
                ]
              },
              "regionShortcut": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 1,
                "maxLength": 255,
                "description": "region abbreviation. Optional.",
                "examples": [
                  "SC"
                ]
              },
              "companyId": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 1,
                "maxLength": 18,
                "description": "Company registration number of the customer, if purchasing as a company. Optional.",
                "examples": [
                  "123456"
                ]
              },
              "vatId": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 1,
                "maxLength": 16,
                "description": "VAT identification number of the customer, if purchasing on the company.",
                "examples": [
                  "CZ123456"
                ]
              },
              "taxId": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 1,
                "maxLength": 16,
                "description": "TAX identification number of the customer, if purchasing on the company. For Czech address, taxId must be the same as vatId, or left empty. Optional.",
                "examples": [
                  "CZ123456"
                ]
              }
            }
          },
          "addressesEqual": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "flag, whether the billing and delivery addresses are the same",
            "default": true,
            "examples": [
              true
            ]
          },
          "deliveryAddress": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "company": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 255,
                    "description": "company name. Optional, if not set as mandatory item in shop settings.",
                    "examples": [
                      "Smith & Smith"
                    ]
                  },
                  "fullName": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 255,
                    "description": "customer name. Optional, if not set as mandatory item in shop settings.",
                    "examples": [
                      "John Doe"
                    ]
                  },
                  "street": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 255,
                    "description": "(string, optional) - street for delivery. Optional, if not set as mandatory item in shop settings.",
                    "examples": [
                      "Main Street"
                    ]
                  },
                  "streetWithNr": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Street, including street number. Optional, if necessary, to be divided to street and street number and saved in the respective fields. Use if you only have the combined data. Usually, `street` and `houseNumber` will not be needed (if they are used, however, they have priority).",
                    "examples": [
                      "Main Street 123"
                    ]
                  },
                  "houseNumber": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 255,
                    "description": "street number. Optional, if not set as mandatory item in shop settings.",
                    "examples": [
                      "123"
                    ]
                  },
                  "city": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 255,
                    "description": "City/Town. Optional, if not set as mandatory item in shop settings.",
                    "examples": [
                      "Flat Country"
                    ]
                  },
                  "district": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 255,
                    "description": "County. Optional, if not set as mandatory item in shop settings.",
                    "examples": [
                      "Bohemia"
                    ]
                  },
                  "additional": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 255,
                    "description": "Additional information for the address. Optional.",
                    "examples": [
                      "3rd floor"
                    ]
                  },
                  "zip": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 255,
                    "description": "ZIP or postal code. Optional, if not set as mandatory item in shop settings.",
                    "examples": [
                      "123 00"
                    ]
                  },
                  "countryCode": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "country of the customer. Optional, the default delivery country is used as the default value, taken from eshop settings.",
                    "examples": [
                      "CZ"
                    ]
                  },
                  "regionName": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 255,
                    "description": "region. Optional.",
                    "examples": [
                      "Central Bohemia"
                    ]
                  },
                  "regionShortcut": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 255,
                    "description": "region abbreviation. Optional.",
                    "examples": [
                      "SC"
                    ]
                  }
                }
              }
            ]
          },
          "notes": {
            "description": "additional notes for the order",
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "customerRemark": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Remark of customer. Optional.",
                    "examples": [
                      "Please deliver in the morning."
                    ]
                  },
                  "eshopRemark": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "remark of e-shop (not visible for customer). Optional.",
                    "examples": [
                      "Order from the cash desk"
                    ]
                  },
                  "trackingNumber": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 32,
                    "description": "tracking number of the shipment.",
                    "examples": [
                      "TR123345"
                    ]
                  },
                  "additionalFields": {
                    "type": "array",
                    "minItems": 1,
                    "description": "additional optional fields (maximum 6).",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "index",
                        "text"
                      ],
                      "properties": {
                        "index": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 6,
                          "description": "number of optional field (1-6). Mandatory.",
                          "examples": [
                            1
                          ]
                        },
                        "text": {
                          "type": "string",
                          "description": "remark text. Mandatory",
                          "examples": [
                            "Processed by Doe"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            ]
          },
          "stockId": {
            "type": "integer",
            "description": "stock number. Optional, the default value is the default stock, taken from e-shop settings. In Shoptet, the only alternative to the default stock is to collect in person at the shop, otherwise the default stock is used.",
            "examples": [
              1
            ]
          },
          "currency": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "code"
            ],
            "properties": {
              "code": {
                "$ref": "#/components/schemas/typeCurrencyCode",
                "description": "currency abbreviation. Mandatory.",
                "examples": [
                  "CZK"
                ]
              },
              "exchangeRate": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^[0-9]+\\.[0-9]{2,8}$",
                "description": "exchange rate for main e-shop currency.",
                "examples": [
                  "1.0000"
                ]
              }
            }
          },
          "vatMode": {
            "type": "string",
            "description": "VAT mode, `Normal` is used by default, possible values: `Normal`, `One Stop Shop`*, `Reverse charge`, `Outside the EU`. Please note, that `One Stop Shop` value requires eshop `OSS` setting to be `true`.",
            "examples": [
              "Normal"
            ]
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "description": "order items. The order must have at least one product item",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "itemType",
                "vatRate"
              ],
              "properties": {
                "itemType": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Item type. Mandatory field. See also [Type of order items](#section/code-lists/types-of-order-items) code list. `product` item type is min required. If `billing` type is present paymentMethodGuid must be provided. If `shipping` type is present shippingGuid must be provided.",
                  "examples": [
                    "product"
                  ]
                },
                "name": {
                  "type": "string",
                  "maxLength": 250,
                  "description": "Product name (optional, but usually filled in). Mandatory only for transport and payment, for other items, it is loaded according to `code`.",
                  "examples": [
                    "Large chocolate"
                  ]
                },
                "variantName": {
                  "type": "string",
                  "maxLength": 128,
                  "description": "Product variant name.",
                  "examples": [
                    "Dark chocolate"
                  ]
                },
                "brand": {
                  "type": "string",
                  "maxLength": 64,
                  "description": "brand (manufacturer). Optional.",
                  "examples": [
                    "Willy Wonka"
                  ]
                },
                "supplierName": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "supplier name.",
                  "examples": [
                    "Dodavatel s.r.o."
                  ]
                },
                "productGuid": {
                  "$ref": "#/components/schemas/typeGuid",
                  "minLength": 1,
                  "description": "Product GUID in item. When used with the `?suppressProductChecking=true` parameter, this field has no influence."
                },
                "code": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "maxLength": 64,
                  "examples": [
                    "123-456"
                  ]
                },
                "remark": {
                  "type": "string",
                  "description": "remark for the item. Optional.",
                  "examples": [
                    "With cubicles"
                  ]
                },
                "warrantyDescription": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "minLength": 1,
                  "maxLength": 255,
                  "description": "textual description of warranty length (can be `null`)",
                  "examples": [
                    "2 years"
                  ]
                },
                "amountCompleted": {
                  "$ref": "#/components/schemas/typePositiveAmountNullable",
                  "description": "quantity of completed product"
                },
                "additionalField": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "maxLength": 255,
                  "description": "additional information. Used for transport to specify the branch (can be `null`)",
                  "examples": [
                    "TO BALÍKOVNA, Karlínské náměstí 145/1, Karlín, 18600, Prague"
                  ]
                },
                "amount": {
                  "type": "string",
                  "pattern": "^[0-9]+\\.?[0-9]{0,3}$",
                  "description": "amount, 3 decimal places accuracy, optional, default value `1.000`.",
                  "examples": [
                    "1.000"
                  ]
                },
                "amountUnit": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 16,
                  "description": "unit of quantity (optional)",
                  "examples": [
                    "ks"
                  ]
                },
                "weight": {
                  "type": "string",
                  "description": "product weight in kilograms. Maximum 3 decimal places, and maximum value of 99999.",
                  "examples": [
                    "100"
                  ]
                },
                "priceRatio": {
                  "type": "string",
                  "description": "discount in the form of coefficient (0.7 = 70 % of the original price, i.e. 30 % discount). Optional, default value is `1.0000`",
                  "examples": [
                    "0.7"
                  ]
                },
                "vatRate": {
                  "type": "string",
                  "description": "VAT rate (`0.00` for VAT non-payers). Mandatory.",
                  "examples": [
                    "21.00"
                  ]
                },
                "itemPriceWithVat": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Deprecated: use `unitPriceWithVat` instead. Item price including VAT. Only one of the items `itemPriceWithVat` or `itemPriceWithoutVat` must be entered.",
                  "examples": [
                    "121.00"
                  ],
                  "deprecated": true
                },
                "itemPriceWithoutVat": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Deprecated: use `unitPriceWithoutVat` instead. Item price excluding VAT. Only one of the items `itemPriceWithVat` or `itemPriceWithoutVat` must be entered.",
                  "examples": [
                    "100.00"
                  ],
                  "deprecated": true
                },
                "unitPriceWithVat": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Unit price including VAT. Only one of the items `unitPriceWithVat` or `unitPriceWithoutVat` must be entered.",
                  "examples": [
                    "121.00"
                  ]
                },
                "unitPriceWithoutVat": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Unit price excluding VAT. Only one of the items `unitPriceWithVat` or `unitPriceWithoutVat` must be entered.",
                  "examples": [
                    "100.00"
                  ]
                },
                "buyPriceWithVat": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Purchase price, including VAT. Price including tax and price excluding tax cannot be combined. This is used for profit margin calculation and statistics.",
                  "examples": [
                    "121.00"
                  ]
                },
                "buyPriceWithoutVat": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Purchase price, excluding VAT. Optional. Price including tax and price excluding tax cannot be combined. This is used for profit margin calculation and statistics.",
                  "examples": [
                    "100.00"
                  ]
                },
                "buyPriceVatRate": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "VAT rate for purchase price.",
                  "examples": [
                    "21.00"
                  ]
                },
                "statusId": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Order item status. Optional, if not indicated, default value is guided by the order status. If the order status was indicated and this status has the `Change status of items in the order` flag set, then the item will have this status. Otherwise the default status of the e-shop is used.",
                  "examples": [
                    -1
                  ]
                },
                "recyclingFeeId": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "ID of the recycling fee.",
                  "examples": [
                    2
                  ]
                },
                "surchargeParameters": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "parameterCode",
                      "valueIndex"
                    ],
                    "properties": {
                      "parameterCode": {
                        "type": "string",
                        "minLength": 1,
                        "examples": [
                          "surchargeCode"
                        ]
                      },
                      "valueIndex": {
                        "type": "string",
                        "minLength": 1,
                        "examples": [
                          "high"
                        ]
                      },
                      "price": {
                        "$ref": "#/components/schemas/typePrice"
                      }
                    }
                  }
                },
                "consumptionTaxId": {
                  "$ref": "#/components/schemas/consumptionTaxId"
                }
              }
            }
          }
        }
      },
      "orderHistory": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "creationTime",
          "text",
          "user",
          "system",
          "type"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "order history identifier",
            "examples": [
              1
            ]
          },
          "creationTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "Creation time of the order history record."
          },
          "text": {
            "type": "string",
            "description": "Transaction Id at payment gateway side: GHJ36",
            "examples": [
              "Transaction Id at payment gateway side: GHJ36KHDHDUJDL"
            ]
          },
          "user": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": false,
            "description": "the user or system process that caused the change",
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "identification of change originator, either user’s e-mail, or system process identifier",
                "examples": [
                  "api.service-21@fenix.myshoptet.com"
                ]
              },
              "name": {
                "type": "string",
                "description": "the user name or description of the system service that caused the change",
                "examples": [
                  "stock monitoring addon"
                ]
              }
            }
          },
          "system": {
            "type": "boolean",
            "description": "flag, whether the remark is entered by Shoptet (`system: true`), by user, or by API (`system: false`)",
            "examples": [
              true
            ]
          },
          "type": {
            "type": "string",
            "enum": [
              "comment",
              "system"
            ],
            "description": "Record type",
            "examples": [
              "comment",
              "system"
            ]
          }
        }
      },
      "orderPreAuthorization": {
        "type": [
          "object"
        ],
        "required": [
          "hasPendingPreAuthorization",
          "preAuthorizationAmount"
        ],
        "additionalProperties": false,
        "properties": {
          "hasPendingPreAuthorization": {
            "type": "boolean"
          },
          "preAuthorizationAmount": {
            "$ref": "#/components/schemas/typePrice",
            "description": "pre-authorization amount of the order. If null, the order is not pre-authorized. If not present, pre-authorization is not supported."
          }
        }
      },
      "customer": {
        "type": "object",
        "required": [
          "guid",
          "billingAddress",
          "deliveryAddress",
          "creationTime",
          "customerGroup",
          "priceList",
          "remark",
          "priceRatio",
          "birthDate",
          "disabledOrders",
          "accounts",
          "remarks",
          "changeTime",
          "adminUrl"
        ],
        "additionalProperties": false,
        "properties": {
          "guid": {
            "$ref": "#/components/schemas/typeGuidUnlimited",
            "description": "Customer GUID"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/billingAddress",
            "description": "invoicing address"
          },
          "deliveryAddress": {
            "type": "array",
            "description": "delivery addresses",
            "items": {
              "$ref": "#/components/schemas/deliveryAddressCustomer"
            }
          },
          "creationTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "registration date"
          },
          "changeTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date and time of last change"
          },
          "customerGroup": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id",
              "name"
            ],
            "description": "group of customers",
            "properties": {
              "id": {
                "type": "integer",
                "description": "customer group ID",
                "examples": [
                  1
                ]
              },
              "name": {
                "type": "string",
                "description": "customer group name",
                "examples": [
                  "VIP"
                ]
              }
            }
          },
          "priceList": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/pricelist"
              },
              {
                "type": "null"
              }
            ],
            "description": "inclusion into the price list"
          },
          "remark": {
            "type": [
              "string",
              "null"
            ],
            "description": "remark for the customer (can be `null`)",
            "examples": [
              "customer is very nice"
            ]
          },
          "priceRatio": {
            "$ref": "#/components/schemas/typePriceRatio",
            "description": "additional discount - 0.7800 = discount 22%; 1.0000 = no discount"
          },
          "birthDate": {
            "$ref": "#/components/schemas/typeDateNullable",
            "description": "date of birth. In YYYY-MM-DD format.  (can be `null`)"
          },
          "accounts": {
            "type": "array",
            "description": "customer login accounts",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "guid",
                "fullName",
                "email",
                "phone",
                "mainAccount",
                "authorized",
                "emailVerified"
              ],
              "properties": {
                "guid": {
                  "$ref": "#/components/schemas/typeGuidUnlimited",
                  "description": "customer account identifier"
                },
                "fullName": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "full name (can be `null`)",
                  "examples": [
                    "John Doe"
                  ]
                },
                "email": {
                  "type": "string",
                  "description": "email address",
                  "examples": [
                    "john@example.com"
                  ]
                },
                "phone": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "phone (can be `null`)",
                  "examples": [
                    "+420777888999"
                  ]
                },
                "mainAccount": {
                  "type": "boolean",
                  "description": "Is this the main account?",
                  "examples": [
                    true
                  ]
                },
                "authorized": {
                  "type": "boolean",
                  "description": "Is the account authorized? Default: true",
                  "examples": [
                    true
                  ]
                },
                "emailVerified": {
                  "type": "boolean",
                  "description": "Is the email verified by eshop owner? Needed for pairing orders created in past. Default: false",
                  "examples": [
                    true
                  ]
                }
              }
            }
          },
          "disabledOrders": {
            "type": "boolean",
            "description": "Ordering disabled? If so, newly created orders will be cancelled automatically. Dependent on the addition of ` customerReviews`. If e-shop does not have an option active, the answer will be `false`.",
            "examples": [
              false
            ]
          },
          "remarks": {
            "type": "array",
            "description": "customer notes and ratings, dependent on addon `customerReviews`. If e-shop does not have an option active, the answer will be blank.",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "id",
                "remark",
                "rating"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "uniq identification number",
                  "examples": [
                    1
                  ]
                },
                "remark": {
                  "type": "string",
                  "description": "note",
                  "examples": [
                    "customer is very nice"
                  ]
                },
                "rating": {
                  "type": "string",
                  "description": "type of rating",
                  "examples": [
                    "positive"
                  ]
                }
              }
            }
          },
          "adminUrl": {
            "type": "string",
            "description": "link to the customer details in administration",
            "examples": [
              "https://www.domena-eshopu.cz/admin/zakaznici-detail?id=16"
            ]
          }
        }
      },
      "deliveryNote": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "isValid",
          "orderCode",
          "creationTime",
          "changeTime",
          "billingAddress",
          "deliveryAddress",
          "addressesEqual",
          "customer",
          "items",
          "documentRemark"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "variant code (product)",
            "examples": [
              "00000018"
            ]
          },
          "isValid": {
            "type": "boolean",
            "description": "Is the delivery note valid?",
            "examples": [
              true
            ]
          },
          "orderCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "purchase order number. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
            "examples": [
              "2017000090"
            ]
          },
          "creationTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date of issue, in ISO 8601 format"
          },
          "changeTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date of last change, in ISO 8601 format"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/billingAddress",
            "description": "invoicing address"
          },
          "deliveryAddress": {
            "$ref": "#/components/schemas/address"
          },
          "addressesEqual": {
            "type": "boolean",
            "description": "Are the billing and delivery addresses the same?",
            "examples": [
              true
            ]
          },
          "customer": {
            "$ref": "#/components/schemas/documentCustomer"
          },
          "items": {
            "type": "array",
            "description": "content of the delivery note",
            "items": {
              "$ref": "#/components/schemas/deliveryNoteItem"
            }
          },
          "documentRemark": {
            "type": [
              "string",
              "null"
            ],
            "description": "remark for the document.",
            "examples": [
              "Note: This is a test delivery note"
            ]
          }
        }
      },
      "creditNote": {
        "type": "object",
        "required": [
          "code",
          "isValid",
          "invoiceCode",
          "orderCode",
          "proofPaymentCode",
          "creationTime",
          "changeTime",
          "dueDate",
          "taxDate",
          "varSymbol",
          "constSymbol",
          "specSymbol",
          "stockAmountChangeType",
          "weight",
          "completePackageWeight",
          "billingMethod",
          "billingAddress",
          "deliveryAddress",
          "addressesEqual",
          "price",
          "customer",
          "eshop",
          "items",
          "documentRemark",
          "vatPayer"
        ],
        "additionalProperties": false,
        "properties": {
          "code": {
            "type": "string",
            "description": "variant code (product) (can be `null`)",
            "examples": [
              "00000008"
            ]
          },
          "isValid": {
            "type": "boolean",
            "description": "is the credit note valid?",
            "examples": [
              true
            ]
          },
          "invoiceCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "invoice number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
            "examples": [
              "2017200011"
            ]
          },
          "orderCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "purchase order number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
            "examples": [
              "2017000017"
            ]
          },
          "proofPaymentCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "proof payment code (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
            "examples": [
              "P--2017200011-1"
            ]
          },
          "creationTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date of issue, in ISO 8601 format"
          },
          "changeTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date of change, in ISO 8601 format"
          },
          "dueDate": {
            "$ref": "#/components/schemas/typeDateNullable",
            "description": "due date in ISO 8601 format (can be `null`)"
          },
          "taxDate": {
            "$ref": "#/components/schemas/typeDateNullable",
            "description": "taxation date in ISO 8601 format (can be `null`)"
          },
          "varSymbol": {
            "type": "number",
            "description": "variable symbol",
            "examples": [
              666
            ]
          },
          "constSymbol": {
            "type": [
              "integer",
              "null"
            ],
            "description": "constant symbol (can be `null`)",
            "examples": [
              6583
            ]
          },
          "specSymbol": {
            "type": [
              "number",
              "null"
            ],
            "description": "specific symbol (can be `null`)",
            "examples": [
              36534576
            ]
          },
          "restocked": {
            "type": "boolean",
            "description": "Items in credit note were restocked?",
            "examples": [
              true
            ]
          },
          "stockAmountChangeType": {
            "type": [
              "string",
              "null"
            ],
            "description": "type of change in stock quantity (can `be null`)",
            "examples": [
              "load",
              "unload",
              null
            ]
          },
          "weight": {
            "$ref": "#/components/schemas/typeWeightUnlimited"
          },
          "completePackageWeight": {
            "$ref": "#/components/schemas/typeWeightUnlimited"
          },
          "billingMethod": {
            "description": "information about the method of payment",
            "oneOf": [
              {
                "$ref": "#/components/schemas/billingMethod"
              },
              {
                "type": "null"
              }
            ]
          },
          "billingAddress": {
            "$ref": "#/components/schemas/billingAddress",
            "description": "invoicing address"
          },
          "deliveryAddress": {
            "$ref": "#/components/schemas/address",
            "description": "delivery address (can be `null`)"
          },
          "addressesEqual": {
            "type": "boolean",
            "description": "Are delivery and invoicing address the same?",
            "examples": [
              true
            ]
          },
          "price": {
            "$ref": "#/components/schemas/price"
          },
          "customer": {
            "$ref": "#/components/schemas/documentCustomer"
          },
          "eshop": {
            "$ref": "#/components/schemas/eshop"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/documentItemsWithPrice"
            }
          },
          "documentRemark": {
            "type": [
              "string",
              "null"
            ],
            "description": "remark on the document (can be `null`)",
            "examples": [
              "This is a remark"
            ]
          },
          "vatPayer": {
            "type": "boolean",
            "description": "is the tradesman a VAT payer? (can be `null`)",
            "examples": [
              true
            ]
          },
          "vatMode": {
            "type": [
              "string",
              "null"
            ],
            "description": "VAT mode, can be null, possible values: `Normal`, `One Stop Shop`, `Mini One Stop Shop`, `Reverse charge`, `Outside the EU`",
            "examples": [
              "Normal"
            ]
          },
          "reasonRemark": {
            "type": [
              "string",
              "null"
            ],
            "description": "Reason for credit note; default reason can be applied if not send.",
            "examples": [
              "Order cancellation"
            ]
          }
        }
      },
      "proformaInvoice": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "isValid",
          "paid",
          "orderCode",
          "creationTime",
          "changeTime",
          "dueDate",
          "varSymbol",
          "constSymbol",
          "specSymbol",
          "weight",
          "completePackageWeight",
          "billingMethod",
          "billingAddress",
          "deliveryAddress",
          "addressesEqual",
          "price",
          "customer",
          "eshop",
          "items",
          "documentRemark",
          "vatPayer"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "proforma invoice number. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
            "examples": [
              "2015000001"
            ]
          },
          "isValid": {
            "type": "boolean",
            "description": "is the proforma invoice valid?",
            "examples": [
              true
            ]
          },
          "paid": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "is the proforma invoice paid?",
            "examples": [
              true
            ]
          },
          "orderCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "purchase order number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
            "examples": [
              "2017000017"
            ]
          },
          "creationTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date of issue, in ISO 8601 format"
          },
          "changeTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date of last change, in ISO 8601 format"
          },
          "dueDate": {
            "$ref": "#/components/schemas/typeDateNullable",
            "description": "due date, in ISO 8601 format"
          },
          "varSymbol": {
            "type": "number",
            "description": "variable symbol",
            "examples": [
              666
            ]
          },
          "constSymbol": {
            "type": [
              "string",
              "null"
            ],
            "description": "constant symbol",
            "examples": [
              "6583"
            ]
          },
          "specSymbol": {
            "type": [
              "number",
              "null"
            ],
            "description": "specific symbol",
            "examples": [
              36534576
            ]
          },
          "weight": {
            "$ref": "#/components/schemas/typeWeightUnlimited",
            "description": "weight in kg, unpacked. 3 decimal places."
          },
          "completePackageWeight": {
            "$ref": "#/components/schemas/typeWeightUnlimited",
            "description": "total weight of package in kg. 3 decimal places."
          },
          "billingMethod": {
            "description": "information about the method of payment.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/billingMethod"
              },
              {
                "type": "null"
              }
            ]
          },
          "billingAddress": {
            "$ref": "#/components/schemas/billingAddress",
            "description": "invoicing address"
          },
          "deliveryAddress": {
            "$ref": "#/components/schemas/address"
          },
          "addressesEqual": {
            "type": "boolean",
            "description": "are the billing and delivery addresses the same?",
            "examples": [
              true
            ]
          },
          "price": {
            "$ref": "#/components/schemas/price",
            "description": "price information"
          },
          "customer": {
            "$ref": "#/components/schemas/documentCustomer"
          },
          "eshop": {
            "$ref": "#/components/schemas/eshop"
          },
          "items": {
            "type": "array",
            "description": "content of the proforma invoice",
            "items": {
              "$ref": "#/components/schemas/documentItemsWithPrice"
            }
          },
          "documentRemark": {
            "type": [
              "string",
              "null"
            ],
            "description": "remark for the document",
            "examples": [
              "This is a remark."
            ]
          },
          "vatPayer": {
            "type": "boolean",
            "description": "was the tradesman a VAT payer, when the receipt was issued?",
            "examples": [
              true
            ]
          },
          "vatMode": {
            "type": [
              "string",
              "null"
            ],
            "description": "VAT mode, can be null, for possible values see [VAT modes](#section/code-lists/vat-modes) code list",
            "examples": [
              "Normal"
            ]
          }
        }
      },
      "invoice": {
        "type": "object",
        "required": [
          "code",
          "isValid",
          "proformaInvoiceCodes",
          "orderCode",
          "creationTime",
          "changeTime",
          "dueDate",
          "taxDate",
          "varSymbol",
          "constSymbol",
          "specSymbol",
          "weight",
          "completePackageWeight",
          "billingMethod",
          "billingAddress",
          "deliveryAddress",
          "addressesEqual",
          "price",
          "customer",
          "eshop",
          "items",
          "documentRemark",
          "vatPayer"
        ],
        "additionalProperties": false,
        "properties": {
          "code": {
            "type": "string",
            "description": "variant code (product)",
            "examples": [
              "2015000001"
            ]
          },
          "isValid": {
            "type": "boolean",
            "description": "is the invoice valid?",
            "examples": [
              true
            ]
          },
          "proformaInvoiceCodes": {
            "$ref": "#/components/schemas/proformaInvoiceCodes",
            "description": "List of linked proforma invoices"
          },
          "orderCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "purchase order number. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.",
            "examples": [
              "2017000017"
            ]
          },
          "creationTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date of issue, in ISO 8601 format"
          },
          "changeTime": {
            "$ref": "#/components/schemas/typeDateTimeNullable",
            "description": "date of change, in ISO 8601 format"
          },
          "dueDate": {
            "$ref": "#/components/schemas/typeDateNullable",
            "description": "due date in ISO 8601 format"
          },
          "taxDate": {
            "$ref": "#/components/schemas/typeDateNullable",
            "description": "taxation date in ISO 8601 format"
          },
          "varSymbol": {
            "type": "number",
            "description": "variable symbol",
            "examples": [
              "666"
            ]
          },
          "constSymbol": {
            "type": [
              "string",
              "null"
            ],
            "description": "constant symbol",
            "examples": [
              "6583"
            ]
          },
          "specSymbol": {
            "type": [
              "number",
              "null"
            ],
            "description": "specific symbol",
            "examples": [
              "36534576"
            ]
          },
          "weight": {
            "$ref": "#/components/schemas/typeWeightUnlimited",
            "description": "weight in kg, unpacked. 3 decimal places."
          },
          "completePackageWeight": {
            "$ref": "#/components/schemas/typeWeightUnlimited",
            "description": "total weight of package in kg. 3 decimal places."
          },
          "billingMethod": {
            "description": "information about the method of payment",
            "oneOf": [
              {
                "$ref": "#/components/schemas/billingMethod"
              },
              {
                "type": "null"
              }
            ]
          },
          "billingAddress": {
            "$ref": "#/components/schemas/billingAddress",
            "description": "invoicing address"
          },
          "deliveryAddress": {
            "$ref": "#/components/schemas/address"
          },
          "addressesEqual": {
            "type": "boolean",
            "description": "are the billing and delivery addresses the same?",
            "examples": [
              true
            ]
          },
          "price": {
            "$ref": "#/components/schemas/price"
          },
          "customer": {
            "$ref": "#/components/schemas/documentCustomer"
          },
          "eshop": {
            "$ref": "#/components/schemas/eshop"
          },
          "items": {
            "type": "array",
            "description": "content of the invoice",
            "items": {
              "$ref": "#/components/schemas/invoiceItem"
            }
          },
          "documentRemark": {
            "type": [
              "string",
              "null"
            ],
            "description": "remark for the document",
            "examples": [
              "remark"
            ]
          },
          "vatPayer": {
            "type": "boolean",
            "description": "is the e-shop a VAT payer?"
          },
          "vatMode": {
            "type": [
              "string",
              "null"
            ],
            "description": "VAT mode, can be null, possible values: `Normal`, `One Stop Shop`, `Mini One Stop Shop`, `Reverse charge`, `Outside the EU`",
            "examples": [
              "Normal"
            ]
          },
          "proofPayments": {
            "$ref": "#/components/schemas/proofPaymentsForInvoice",
            "description": "List of linked proof payments"
          }
        }
      },
      "pricelistDetail": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "currencyCode",
          "includingVat",
          "vatRate",
          "price",
          "orderableAmount",
          "sales"
        ],
        "properties": {
          "code": {
            "type": "string",
            "examples": [
              "0006"
            ]
          },
          "currencyCode": {
            "$ref": "#/components/schemas/typeCurrencyCode",
            "examples": [
              "CZK"
            ]
          },
          "includingVat": {
            "type": "boolean",
            "examples": [
              true
            ]
          },
          "vatRate": {
            "$ref": "#/components/schemas/typeVatRate"
          },
          "price": {
            "$ref": "#/components/schemas/variantPrice"
          },
          "orderableAmount": {
            "$ref": "#/components/schemas/productOrderableAmount",
            "description": "orderable quantity."
          },
          "sales": {
            "$ref": "#/components/schemas/priceSales",
            "description": "definition of discounts."
          },
          "prices": {
            "$ref": "#/components/schemas/productPrices"
          }
        }
      },
      "articleSnapshot": {
        "title": "Article",
        "x-tags": [
          "Snapshot"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/article"
          }
        ]
      },
      "brandBatchCreate": {
        "title": "Brand create",
        "x-tags": [
          "Batch"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/brandCreate"
          }
        ]
      },
      "categoryBatchUpdate": {
        "title": "Category update",
        "x-tags": [
          "Batch"
        ],
        "properties": {
          "language": {
            "type": "string",
            "description": "language of entity (available only if module `foreignLanguages` is active and initialized)",
            "examples": [
              "cs"
            ]
          }
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/categoryUpdate"
          }
        ]
      },
      "categoryProductPriorityBatchUpdate": {
        "title": "Category product priority update",
        "x-tags": [
          "Batch"
        ],
        "type": "object",
        "additionalProperties": false,
        "required": [
          "categoryGuid",
          "data"
        ],
        "properties": {
          "categoryGuid": {
            "$ref": "#/components/schemas/typeGuid",
            "description": "Category GUID."
          },
          "data": {
            "type": "array",
            "description": "Product priorities in a defined category.",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "productGuid",
                "priority"
              ],
              "properties": {
                "productGuid": {
                  "$ref": "#/components/schemas/typeGuid",
                  "description": "Product GUID."
                },
                "priority": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Product priority.",
                  "examples": [
                    1
                  ]
                }
              }
            }
          }
        }
      },
      "creditNoteSnapshot": {
        "title": "Credit note",
        "x-tags": [
          "Snapshot"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/creditNote"
          }
        ]
      },
      "customerSnapshot": {
        "title": "Customer",
        "x-tags": [
          "Snapshot"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/customer"
          }
        ]
      },
      "deliveryNoteSnapshot": {
        "title": "Delivery note",
        "x-tags": [
          "Snapshot"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/deliveryNote"
          }
        ]
      },
      "discountCouponSnapshot": {
        "title": "Discount coupon",
        "x-tags": [
          "Snapshot"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/discountCoupon"
          }
        ]
      },
      "invoiceSnapshot": {
        "title": "Invoice",
        "x-tags": [
          "Snapshot"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/invoice"
          }
        ]
      },
      "orderBatchCreate": {
        "title": "Order create",
        "x-tags": [
          "Batch"
        ],
        "type": "object",
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "properties": {
          "settings": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "suppressDocumentGeneration": {
                "type": "boolean",
                "description": "Suppress the generation of linked documents.",
                "examples": [
                  true
                ]
              },
              "suppressEmailSending": {
                "type": "boolean",
                "description": "Suppress sending the linked information e-mails.",
                "examples": [
                  true
                ]
              },
              "suppressProductChecking": {
                "type": "boolean",
                "description": "Suppress the product existence check as per code and GUID.",
                "examples": [
                  true
                ]
              },
              "suppressStockMovements": {
                "type": "boolean",
                "description": "Suppress deduction of the products from stock.",
                "examples": [
                  true
                ]
              },
              "suppressHistoricalMandatoryFields": {
                "type": "boolean",
                "description": "Set the flag that disables mandatory fields checking.",
                "examples": [
                  true
                ]
              },
              "suppressHistoricalPaymentChecking": {
                "type": "boolean",
                "description": "Set the flag that `paymentMethodGuid` can be `null`.",
                "examples": [
                  true
                ]
              },
              "suppressHistoricalShippingChecking": {
                "type": "boolean",
                "description": "Set the flag that `shippingGuid` can be `null`.",
                "examples": [
                  true
                ]
              }
            }
          },
          "data": {
            "properties": {
              "language": {
                "type": "string",
                "description": "language of entity (available only if module `foreignLanguages` is active and initialized)",
                "examples": [
                  "cs"
                ]
              }
            },
            "$ref": "#/components/schemas/orderCreate"
          }
        }
      },
      "orderSnapshot": {
        "title": "Order",
        "x-tags": [
          "Snapshot"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/order"
          }
        ]
      },
      "orderHistorySnapshot": {
        "title": "Order history",
        "x-tags": [
          "Snapshot"
        ],
        "required": [
          "orderCode"
        ],
        "properties": {
          "orderCode": {
            "type": "string",
            "description": "Code of order, which identifies the relation to the order.",
            "examples": [
              "2025000056"
            ]
          }
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/orderHistory"
          }
        ]
      },
      "pricelistSnapshot": {
        "title": "Price list",
        "x-tags": [
          "Snapshot"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/pricelistDetail"
          }
        ]
      },
      "productBatchUpdate": {
        "title": "Product update",
        "x-tags": [
          "Batch"
        ],
        "properties": {
          "language": {
            "type": "string",
            "description": "language of entity (available only if module `foreignLanguages` is active and initialized)",
            "examples": [
              "cs"
            ]
          }
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/productUpdate"
          }
        ]
      },
      "productSnapshot": {
        "title": "Product",
        "x-tags": [
          "Snapshot"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/product"
          }
        ]
      },
      "productPricelistSnapshot": {
        "title": "Product price list",
        "x-tags": [
          "Snapshot"
        ],
        "required": [
          "productGuid",
          "productId"
        ],
        "properties": {
          "productGuid": {
            "$ref": "#/components/schemas/typeGuidUnlimited",
            "description": "unique product indicator"
          },
          "productId": {
            "type": "integer",
            "description": "product identifier",
            "examples": [
              2
            ]
          }
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/pricelistDetail"
          }
        ]
      },
      "proformaInvoiceSnapshot": {
        "title": "Proforma invoice",
        "x-tags": [
          "Snapshot"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/proformaInvoice"
          }
        ]
      },
      "proofPaymentSnapshot": {
        "title": "Proof payment",
        "x-tags": [
          "Snapshot"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/proofPaymentDetail"
          }
        ]
      },
      "quantityDiscountSnapshot": {
        "title": "Quantity discount",
        "x-tags": [
          "Snapshot"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/quantityDiscount"
          }
        ]
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "Orders",
      "tags": [
        "Orders",
        "Order gifts",
        "Order history",
        "Order items",
        "Order payment",
        "Order shipping"
      ]
    },
    {
      "name": "Accounting",
      "tags": [
        "Credit notes",
        "Delivery notes",
        "Invoices",
        "Proforma invoices",
        "Proof payments"
      ]
    },
    {
      "name": "Products",
      "tags": [
        "Alternative products",
        "Brands",
        "Price lists",
        "Products",
        "Product availabilities",
        "Product gifts",
        "Product images",
        "Related products",
        "Product related files",
        "Product sets"
      ]
    },
    {
      "name": "Customers",
      "tags": [
        "Customers",
        "Customer accounts",
        "Customer delivery addresses",
        "Customer remarks"
      ]
    },
    {
      "name": "Content",
      "tags": [
        "Articles",
        "Discussions",
        "Pages",
        "Reviews",
        "Templates"
      ]
    },
    {
      "name": "Marketing",
      "tags": [
        "Discount coupons",
        "E-mail distribution lists",
        "Quantity discounts",
        "Unsubscribed emails",
        "Volume discounts",
        "XY discounts"
      ]
    },
    {
      "name": "Categories",
      "tags": [
        "Categories",
        "Parametric categories"
      ]
    },
    {
      "name": "Settings",
      "tags": [
        "Consumption taxes",
        "Eshop",
        "Filtering parameters",
        "Flags",
        "Gifts",
        "Payment methods",
        "Project",
        "Recycling fees",
        "Shipping methods",
        "Stocks",
        "Suppliers",
        "Surcharge parameters",
        "Units",
        "Variant parameters",
        "Warranties"
      ]
    },
    {
      "name": "Sales channels",
      "tags": [
        "Online stores",
        "Sales channels",
        "In-stores"
      ]
    },
    {
      "name": "System",
      "tags": [
        "Endpoints",
        "Exports",
        "Files",
        "Jobs",
        "Measure units",
        "Payment gateways",
        "Shipping requests",
        "Webhooks"
      ]
    },
    {
      "name": "JSON lines schemas",
      "tags": [
        "Batch",
        "Snapshot"
      ]
    }
  ]
}