{
  "openapi": "3.1.1",
  "info": {
    "title": "Visma e-conomic OpenAPI Products",
    "description": "# Changelog\n<details>\n<summary>Click to see changelog.</summary>\n\n| Version | Description | Date |\n|:--------|:------------|:-----|\n| V2.1.0 | Added count endpoint to [`Products`](#tag/Products) | September, 2026 |\n| V2.0.0 | Added [`Products`](#tag/Products) endpoints, updated [`ProductSpecialPricesInCurrency`](#tag/ProductSpecialPricesInCurrency) endpoint routes for flattened subcollections | January, 2026 |\n| V1.1.1 | Updated documentation | April, 2025 |\n| V1.1.0 | Added count endpoint to [`ProductGroups`](#tag/ProductGroups) and [`Zones`](#tag/Zones) | September, 2024 |\n| V1.0.0 | Added endpoints<ul><li>Product Groups</li><ul><li>[`ProductGroups`](#tag/ProductGroups)</li><li>[`AccrualSettings`](#tag/AccrualSettings)</li><li>[`ProjectSettings`](#tag/ProjectSettings)</li><li>[`Zones`](#tag/Zones)</li></ul><li>Product Sales Price In Currencies</li><ul><li>[`ProductSalesPriceInCurrencies`](#tag/ProductSalesPriceInCurrencies)</li></ul><li>Price Groups</li><ul><li>[`PriceGroups`](#tag/PriceGroups)</li><li>[`ProductSpecialPrices`](#tag/ProductSpecialPrices)</li><li>[`ProductSpecialPricesInCurrency`](#tag/ProductSpecialPricesInCurrency)</li></ul></ul>| August, 2024 |\n\n</details>\n\n# TL;DR\n\n**Create tokens as instructed [here](https://www.e-conomic.com/developer/connect) and then add these three headers to your requests:**\n\n| Header                | Value                      | What is this?                                                |\n| :-------------------- | :------------------------- | :----------------------------------------------------------- |\n| X-AppSecretToken      | YOUR_PRIVATE_TOKEN         | This identifies your app. This is your secret token. Try using the value `demo`. |\n| X-AgreementGrantToken | YOUR_AGREEMENT_GRANT_TOKEN | This identifies the grant issued by an agreement, to allow your app to access the agreements data. Try using the value `demo`. |\n| Content-Type          | application/json           | We’re a JSON based API. This tells us that you agree with us on using JSON. |\n\n**Optional headers:**\n\n| Header                | Value                      | What is this?                                                |\n| :-------------------- | :------------------------- | :----------------------------------------------------------- |\n| Idempotency-Key       | YOUR_IDEMPOTENCY_KEY       | This represents your own unique idempotency key. Enables you to make use of our [Idempotency Tokens](#section/Retrieving-data/Idempotency-tokens) feature. You can't use this feature with GET requests. |\n\n### Examples\n\n#### jQuery\n\n```javascript/jQuery\n$.ajax({\n    url: \"https://apis.e-conomic.com/productsapi/v2.1.0/the_resource\",\n    dataType: \"json\",\n    headers: {\n        'X-AppSecretToken': \"demo\",\n        'X-AgreementGrantToken': \"demo\",\n        'Accept': \"application/json\"\n    },\n    type: \"GET\"\n})\n    .always(function (data) {\n    $(\"#output\").text(JSON.stringify(data, null, 4));\n});\n```\n\n#### cURL\n\n```curl\ncurl -H \"X-AppSecretToken: demo\" -H \"X-AgreementGrantToken: demo\" https://apis.e-conomic.com/productsapi/v2.1.0/the_resource\n```\n\n\n\n# Introduction\n\nWelcome to the **Visma e-conomic OpenAPI** documentation!\n\nThe e-conomic API is a document-based JSON REST API. \n\nFor more in-depth information about e-conomic itself, please have a look at the e-copedia [http://wiki.e-conomic.dk](http://wiki.e-conomic.dk/).\n\n## Usage\n\n- **Generating a client** can easily be done using tools like [swagger-codegen](https://github.com/swagger-api/swagger-codegen) or others that work with [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification) specs.\n\n\n## Versioning\n\nAPI releases are versioned using a three-part versioning scheme: `{major version}.{minor version}.{patch version}`.\n\nWe broadly follow [Semantic Versioning](https://semver.org/) principles when versioning the API. The major version number is incremented when a breaking change occurs. \n\nThe format is:\n\n`/{resource-api}/v{major version}.{minor version}.{patch version}/{resource-name}`\n\nEach value of the above are integers and you should configure the specific version in each API call. \n\nAn example could be: `/subscriptionsapi/v1.0.0/subscriptions`\n\nTo track the changes of versions, please see our [changelog](#section/Changelog).\n\nWe reserve the right to deprecate versions at intervals since this allows for moving into a friendly environment for you faster.\n\n## Demo authentication\n\nIf you wish to try out the API before registering a developer agreement, you can do this by using the demo agreement, which mimics the authentication flow you will have to use when you create your app. All you have to do is specify HTTP header tokens `X-AgreementGrantToken: demo` and `X-AppSecretToken: demo`. Note however that you can only do GET requests with the demo agreement. If you want full access to our API's, you will need to register.\n\n# Retrieving data\n\nOur data is exposed as collections of items. Each item has many properties, with one property as a unique identifier, usually called `number` or `id`. You can always get a single item if you already know the unique identifier. In case the unique identifier is not known, you can always search the collection and retrieve an array of items that satisfy the search criteria, or retrieve only the count of items that satisfy the search criteria. When you search for items in a collection, you can always use filtering, sorting and pagination. When it comes to pagination, we offer two distinct approaches available on separate endpoints. You can read more about filtering, sorting and pagination in the following sections. \n\n## Filtering\n\nFiltering is enabled on all collection endpoints but not on all properties.\n\nFiltering on collections can be done using the query string parameter `filter`. A filter is made up of a set of predicates and follows a syntax inspired by mongoDB. A predicate is made up of a property name, an operator, and a value.\n\nExample: `?filter=name$eq:Joe`\n\nThis matches all resources with the value Joe in the property name.\n\nPredicates can be chained using either of the logical operators AND and OR.\n\nExample: `?filter=name$eq:Joe$and:city$like:*port`\n\nFiltering on strings is case insensitive.\n\n#### Filterable properties\nInformation about what properties allow filtering and on what operators can be found in the property in the schema for the collection. Each property that allows filtering has the property `\"x-filterable\"` in combination with `operators` set. If you try to filter on something that isn’t allowed the server will respond with a status code 400.\n\n#### Specifying Operator affinity\nIf you want to control the operator affinity then you can use parentheses.\n\nAn example is: `?filter=name$eq:Joe$and:(city$like:*port$or:age$lt:40)`\n\n#### URL Encoding\nURL parameter values should always be URL compatible. Always URL encode filter strings.\n\n#### Filter Operators\nThe possible filtering operators are:\n\n| Operator   | Syntax |\n| --------   | ------ |\n|Equals | $eq:|\n|Not equals | $ne:|\n|Greater than | $gt:|\n|Greater than or equal | $gte:|\n|Less than | $lt:|\n|Less than or equal | $lte:|\n|Substring match\t| $like:|\n|And also | $and:|\n|Or else | $or:|\n|In | $in:|\n|Not In | $nin:|\n\n#### Substring matching\n\nThe `$like:` operator supports both using wildcards (*) and not using wildcards. If no wildcards are used, the expression is considered a `contains` expression and effectively becomes a filter with a wildcard at the start of the string and one at the end of the string. This operator is only allowed on some properties.\n\n#### Escaping special characters in your filter\nTo not interfere with the parsing of the filter expression, certain escape sequences are necessary.\n\n- “$” is escaped with “$$”\n- “(” is escaped with “$(”\n- “)” is escaped with “$)”\n- “*” is escaped with “$*”\n- “,” is escaped with “$,”\n- “[” is escaped with “$[”\n- “]” is escaped with “$]”\n\n#### Using null values in your filter\nShould you want to filter for the nonexistence of a property (i.e. null value) you can use the null escape sequence.\n\n`$null:`\n\n#### Using in and not in operators\nTo determine whether a specified value matches any value in (or not in) a list you filter using the `$in:` or `$nin:` operator. The list to filter by has to be enclosed in brackets and values separated by commas.\n\n`customerNumber$in:[2,5,7,22,45]`\n\n\nIt is possible to also use the `$null:` keyword if you wish to include that in the filter. The max supported length of an array using the `$in:` or `$nin:` operator is 200.\n\n\n## Sorting\n\nSorting on strings is case insensitive.\n\n### Sort ascending\n\nSorting on collections can be done using the query string parameter ‘sort’.\n\n```\n?sort=name\n```\n\n### Sort descending\n\nThe default sort direction is ascending, but this can be turned by prepending a minus (-).\n\n```\n?sort=-name\n```\n\n### Sort by multiple properties\n\nIf you need to sort by multiple properties these can just be separated by commas. Mixing of directions is allowed.\n\n```\n?sort=-name,age\n```\n\n### Sort alphabetically\n\nIn certain cases, you might want to enforce that even numeric values are sorted alphabetically, so 1000 is less than 30. In those cases, you can prepend the sort property with a tilde (~).\n\n```\n?sort=~name\n```\n\n#### Sortable properties\nInformation about what properties are sortable can be found in the schema for the collection. Each property that allows sorting has the property `\"x-sortable\": true` set.\n\n#### Important: Sorting with pagination\nPlease note that sorting is **only available with classic pagination** (using `skippages` and `pagesize`). Sorting is **not supported when using cursor-based pagination**, as the cursor points to a specific record with a fixed ordering.\n\n\n## Pagination\n\nWhen it comes to retrieving a collection of items, you can use two distinct approaches:\n\n* **Cursor-based pagination** (continued loading of items using a `cursor` as a query parameter to get the next page of items)\n  * This is the recommended approach, and the one you should use by default.\n  * The endpoint naming scheme is **\"Retrieve all `Items`\"**. (Usage: `/{ITEM}?cursor={CURSOR_VALUE}`)\n  * The maximum number of items returned in a single call is defined in the `x-cursor-page-size` extension of the response type. Usually, the size is 1000, but in some cases, where we explicitly state so, it can be smaller.\n\n\n* **Classic pagination** (limited functionality*. Specify `skippages` and `pagesize ` as query parameters to get a specific page of items)\n  * You should only consider using classic pagination, if you rely on loading pages (i.e. for list views or table/grid-based UI's).\n  * The endpoint naming scheme is **\"Retrieve a page of `Items`\"**. (Usage: `/{ITEM}/paged?skippages=0&pagesize=20`)  \n    \\* It's important to note that there is a limit of 10.000 items using this approach. Any items outside of the first 10.000 items will not be loaded.\n\nPlease bear in mind that the two approaches are supported by **separate endpoints**. To use classic pagination, add `/paged` to your request URL.\n\nIf you need to know the total count of items that you can expect to get from your search, you can use a separate endpoint called **\"Retrieve the number of `Items`\"**.  \nYou can also use the result of this endpoint to calculate the pagination navigation buttons for a table/grid-based UI.\n\n\n### Which approach should you use?\nWe highly recommend that you use cursor-based pagination because:\n- It is more performant and offers much faster retrieval of items;\n- It can be used for very large collections of many thousands or millions of items, whereas classic pagination is limited to only returning 10.000 results, everything else is ignored;  \n  Classic pagination is only appropriate when you have an app with a table/grid-based UI.\n\n### Cursor-based pagination\n\n#### How it works\n\nWhen you search for items in a large collection, the response will contain a first set of items and a cursor that you can use in a subsequent request to get the next series of items. This way you can retrieve the next set of items only when needed (if the first set suffices, you don't need to send a second request).\n\nThe first set of items usually consists of 1000 results. If the cursor is not present in the response, it means that there are no more items in the results. \n\nPlease note that the cursor represents the `identifier` of the first `item` on the next set and it should not be mistaken for the number of items which are yet to be displayed.\n\n##### Real world example\n\nI want to retrieve all subscriptions.\n\n1) I send a request to https://apis.e-conomic.com/subscriptionsapi/v1.0.0/subscriptions \n   and get back an array of 1.000 subscriptions, and a cursor with value 34781\n\n2) I send a request for the next items in the resulting collection:\n   https://apis.e-conomic.com/subscriptionsapi/v1.0.0/subscriptions?cursor=34781\n   and get back an array of 1.000 subscriptions and a cursor with value 87695\n\n3) I send a request for the next items in the result:\n   https://apis.e-conomic.com/subscriptionsapi/v1.0.0/subscriptions?cursor=87695\n   and get back an array of 56 items and no cursor.\n   No cursor means I have retrieved all the subscriptions, i.e. I have reached the end of the list.\n\n### Classic pagination\n\nIf no parameters are used, the collection endpoint returns 20 items at a time. URL parameters allow you to increase this to up to 100 items or to skip pages if necessary.\n\n##### Real world example\n\nI want to show a grid with page size of 50 and pagination navigation buttons.\n\n1) I send a request to see how many subscriptions there are in the collection:  \n   `https://apis.e-conomic.com/subscriptionsapi/v1.0.0/subscriptions/count`  \n   I get the number of subscriptions in the collection, `2056`, and I can calculate the number of pages to be 2056 divided by 50 = 40 with 6 as remainder, meaning I have 41 pages total. I can then use this to present the user the navigation buttons.\n\n\n2) I send a request to retrieve the first page of subscriptions that my user will see:  \n   `https://apis.e-conomic.com/subscriptionsapi/v1.0.0/subscriptions/paged?pagesize=50&sort=-number`  \n   with this I get back an array of 50 subscriptions, sorted by number in descending order.\n\n\n3) Now if the user wants to see page number 6, I'll send a new request, skipping the first 5 pages to get the subscriptions from page number 6:  \n   `https://apis.e-conomic.com/subscriptionsapi/v1.0.0/subscriptions/paged?pagesize=50&skippages=5&sort=-number`  \n   I get back an array of 50 subscriptions that belong to page number 6 when sorting by number in descending order.\n\n\n\n### Number of items in a collection\n\nAs mentioned before we offer endpoint to get the count of items in the collection. You can also use this info for calculation of pagination navigation in case of classic pagination.\n\nExample `https://apis.e-conomic.com/subscriptionsapi/v1.0.0/subscriptions/count`\n\n\n## HTTP Status Codes\n\nThe Open API returns these HTTP status codes.\n\n| Code | Text                   | Description                                                  |\n| :--- | :--------------------- | :----------------------------------------------------------- |\n| 200  | OK                     | Everything is OK                                             |\n| 201  | Created                | When you create resources, this is what you get. This will be accompanied by the created resource in the body and a location header with a link to the created resource. |\n| 204  | No Content             | In certain cases there is nothing to return. So we will let you know by returning a 204. |\n| 400  | Bad Request            | The request you made was somehow malformed. A malformed request could be failed validation on creation or updating. If you try to filter on something that isn’t filterable this is also what you’ll see. Whenever possible we will also try to include a developer hint to help you get around this issue. |\n| 401  | Unauthorized           | The credentials you supplied us with weren’t correct, or perhaps you forgot them altogether. If an agreement has revoked the grant they gave your app, this is what you will see. |\n| 403  | Forbidden              | You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued. |\n| 404  | Not Found              | This is returned when you try to request something that doesn’t exist. This could be a resource that has been deleted or just a URL you tried to hack. If you see a lot of these, it could be an indication that you aren’t using the links provided by the API. You should never need to concatenate any URLs. The API should provide you with the links needed. |\n| 405  | Method Not Allowed     | Not all endpoints support all HTTP methods. If you try issue a PUT request to a collection resource this is what you get. |\n| 409  | Conflict               | The request cannot be completed due to a conflict with the current state of the target resource. Retrieve the resource/object and try the update again. This is needed in order to prevent you from rolling back another user's update. |\n| 415  | Unsupported Media Type | Our API is a JSON api. If you ask us to give you anything else, we give you this, and tell you why in the JSON body of the response. |\n| 500  | Internal Server Error  | We don’t like to see these, and they are flagged in our logs. When you see this, something went wrong on our end. Either try again, or contact our support. |\n\n\n## Required and Readonly Properties\n\nSince OpenAPI allows client generation based on the specification, we decided to use the same model/schema in our for both read and write endpoints where possible.\n\nThis led us to chose not to have the Id/Number in the URL parameter for PUT requests, but to use the one from the body, so there is no confusion.\n\nWhen a property is marked as `required` it means you need to provide a value on each POST and PUT requests.\n\nWhen a property is marked as `readonly` it means you should provide the same value you get in the GET requests, or do not send the property in the JSON at all (skip it).\n\n## Resource encoding\n\nAll non-alphanumeric characters in resource URLs are standard URL encoded. Please refer to standard URL encoding.\n\n## Implementation specifics\n\nHelpful details to know when implementing e-conomic REST.\n\n### Booleans\n\nBooleans should only be expected to be represented in responses when true. A false boolean is omitted from response body. The same logic applies to write operations such as POST and PUT.\n\n### Nulling\n\nWe do not generally accept null as a value and a validation exception should be expected. To null a property you must exclude it from your JSON on the write operation.\n\n## Object version\n\nObjectVersion is the mechanism that enforces updates only on latest state of an object.\nObjectVersion property is mandatory in Put Requests.\nObjectVersion property is retrieved on Get Request and needs to be included in Put Request.\nIf object was modified between Get and Put requests, Put request will fail with error code `409 Conflict`\n\n```\n{\n  \"message\": \"Update conflict. Version does not match.\",\n  \"developerHint\": \"The resource has been updated by another user. Retrieve the resource/object and try the update again. This is needed in order to prevent you from rolling back another user's update.\",\n  \"logId\": \"09580053-1141-4e7f-85e1-bed8600e0278\",\n  \"logTimeUtc\": \"2021-11-04T09:07:56\",\n  \"property\": \"version\"\n}\n```\n\n## Idempotency tokens\n Idempotency tokens are unique keys that help maintain the integrity of operations on the API’s. These tokens prevent accidental duplication of requests, ensuring that the same operation is not performed multiple times, even if the same request is sent repeatedly.\n \n When making a request, you can set `Idempotency-Key` header with your own unique value for that specific request. In case of a network failure, if you don't get the response, you can retry the request with the same value for the header. Our system will prevent duplicate requests, instead you will get the original response from our cache. \n \n Keep in mind that this is cached for only **one hour** window. \n \n When we return a response from the cache, we set a response header `X-ResultFromCache` to true.\n\n It’s important to note that **you will be responsible for generating and keeping track of these keys**.\n\n The [Idempotency Tokens feature](https://techtalk.e-conomic.com/idempotency-tokens-in-e-conomic-apis/) is not available for GET requests.\n\n## The LastUpdated property of resources\nThe `LastUpdated` property shows the date when a resource was last updated. A resource is considered updated when any property in the model has been changed. If there aren’t any changes, `LastUpdated` will equal the creation date.\n \nPlease bear in mind that not all resources have a LastUpdated property. Also, sometimes the LastUpdated property is modified by changes to a different model, as is the case with sales documents.\nFor example, when an invoice line is created, the LastUpdated field on the invoice is modified.\n \nThe main usage for this property is to help retrieve only data that has been changed within a certain interval. This will save processing and network time spent on the client side.\n \nUsage example: https://apis.e-conomic.com/productsapi/v2.1.0/the_resource?filter=lastUpdated$gt:2024-02-24\nThis will return all resources which have been updated since 24.02.2024.\n      \n## Custom extensions in OpenAPI specification\n\nIn the specification file, there are some custom extensions that developers can make use of when consuming endpoints. Those extensions are always prefixed by `x-`.\n\n1) `x-required-roles`: The list of roles that are required for each group of endpoints.\n2) `x-error-codes`: The list of error codes that are potentially returned from each group of endpoints.\n3) `x-cursor-page-size`: The maximum number of items in `CursorResults` that can be returned in a single call.\n\n\n# Authentication\n\n**Create tokens as instructed [here](https://www.e-conomic.com/developer/connect) and then add these two authentication headers to your requests:**\n\n<SecurityDefinitions />",
    "contact": {
      "url": "https://www.e-conomic.com/",
      "email": "api@e-conomic.com"
    },
    "version": "2.1.0",
    "x-logo": {
      "url": "",
      "altText": "Visma e-conomic"
    }
  },
  "servers": [
    {
      "url": "https://apis.e-conomic.com/productsapi/v2.1.0/"
    }
  ],
  "paths": {
    "/productgroups/{productGroupNumber}/accrualsettings": {
      "get": {
        "tags": [
          "AccrualSettings"
        ],
        "summary": "Retrieve accrual settings",
        "description": "Retrieve the accrual settings for the product group.",
        "operationId": "GetAccrualSettings",
        "parameters": [
          {
            "name": "productGroupNumber",
            "in": "path",
            "description": "The number identifying the product group for the accrual settings",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccrualSettings"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "AccrualSettings"
        ],
        "summary": "Update accrual settings",
        "description": "Update the accrual settings for the product group.",
        "operationId": "PutAccrualSettings",
        "parameters": [
          {
            "name": "productGroupNumber",
            "in": "path",
            "description": "The number identifying the product group for the accrual settings",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccrualSettings"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "**Update conflict. Object version does not match.** The resource has been updated by another user. Retrieve the resource/object and try the update again. This is needed in order to prevent you from rolling back another user's update.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/pricegroups/{number}": {
      "get": {
        "tags": [
          "PriceGroups"
        ],
        "summary": "Retrieve single PriceGroup",
        "description": "Use this endpoint to retrieve a PriceGroup.",
        "operationId": "GetOnePriceGroup",
        "parameters": [
          {
            "name": "number",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceGroup"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "PriceGroups"
        ],
        "summary": "Delete single PriceGroup",
        "description": "Use this endpoint to delete a single PriceGroup by number.",
        "operationId": "DeletePriceGroupById",
        "parameters": [
          {
            "name": "number",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/pricegroups": {
      "get": {
        "tags": [
          "PriceGroups"
        ],
        "summary": "Retrieve all PriceGroups",
        "description": "Use this endpoint to retrieve all PriceGroups in bulk. <br/>The maximum number of items returned in a single call is defined in the `x-cursor-page-size` extension of the response type. Usually, the size is 1000, but in some cases, where we explicitly state so, it can be smaller than that.<br/>Use the continuation cursor parameter to set the cursor for retrieval of the next set of data.<br/>Please check the [pagination instructions](#section/Retrieving-data/Pagination).",
        "operationId": "GetAllPriceGroups",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "description": "Use this parameter to set the continuation cursor for paging. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maxLength": 50,
              "minLength": 0,
              "type": "string",
              "description": "Use this parameter to set the continuation cursor for paging. [Pagination instructions](#section/Retrieving-data/Pagination)"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [filtering instructions](#section/Retrieving-data/Filtering)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Array of objects along with a cursor.",
                  "$ref": "#/components/schemas/PriceGroupCursorResults"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "PriceGroups"
        ],
        "summary": "Create a single PriceGroup",
        "description": "Use this endpoint to create a single PriceGroup.",
        "operationId": "CreatePriceGroup",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PriceGroup"
              },
              "example": {
                "number": 0,
                "name": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedResult"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "PriceGroups"
        ],
        "summary": "Update a single PriceGroup",
        "description": "Use this endpoint to update a single PriceGroup.",
        "operationId": "UpdatePriceGroupById",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PriceGroup"
              },
              "example": {
                "number": 0,
                "name": "string"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "**Update conflict. Object version does not match.** The resource has been updated by another user. Retrieve the resource/object and try the update again. This is needed in order to prevent you from rolling back another user's update.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/pricegroups/paged": {
      "get": {
        "tags": [
          "PriceGroups"
        ],
        "summary": "Retrieve a page of PriceGroups",
        "description": "Use this endpoint to load a page of PriceGroups.",
        "operationId": "GetPageOfPriceGroups",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Use this parameter to set the sort fields and direction. [Sort instructions](#section/Retrieving-data/Sorting)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the sort fields and direction. [Sort instructions](#section/Retrieving-data/Sorting)"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Use this parameter to set the page size. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "description": "Use this parameter to set the page size. [Pagination instructions](#section/Retrieving-data/Pagination)",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "skipPages",
            "in": "query",
            "description": "Use this parameter to set number of pages to skip. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maximum": 100,
              "minimum": 0,
              "type": "integer",
              "description": "Use this parameter to set number of pages to skip. [Pagination instructions](#section/Retrieving-data/Pagination)",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PriceGroup"
                  }
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/pricegroups/count": {
      "get": {
        "tags": [
          "PriceGroups"
        ],
        "summary": "Retrieve the number of PriceGroups",
        "description": "Call this endpoint to get the number of PriceGroups. You can use filtering as well.",
        "operationId": "GetNumberOfPriceGroups",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/productgroups/count": {
      "get": {
        "tags": [
          "ProductGroups"
        ],
        "summary": "Retrieve the number of ProductGroups",
        "description": "Call this endpoint to get the number of ProductGroups. You can use filtering as well.",
        "operationId": "GetNumberOfProductGroups",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/productgroups/{number}": {
      "get": {
        "tags": [
          "ProductGroups"
        ],
        "summary": "Retrieve single ProductGroup",
        "description": "Use this endpoint to load a single ProductGroup by number.",
        "operationId": "GetProductGroupById",
        "parameters": [
          {
            "name": "number",
            "in": "path",
            "description": "The number corresponding to the id of the product group",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductGroup"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "ProductGroups"
        ],
        "summary": "Delete single ProductGroup",
        "description": "Use this endpoint to delete a single ProductGroup by number.",
        "operationId": "DeleteProductGroupById",
        "parameters": [
          {
            "name": "number",
            "in": "path",
            "description": "The number corresponding to the id of the product group",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/productgroups": {
      "get": {
        "tags": [
          "ProductGroups"
        ],
        "summary": "Retrieve all ProductGroups",
        "description": "Use this endpoint to retrieve all ProductGroups in bulk. <br/>The maximum number of items returned in a single call is defined in the `x-cursor-page-size` extension of the response type. Usually, the size is 1000, but in some cases, where we explicitly state so, it can be smaller than that.<br/>Use the continuation cursor parameter to set the cursor for retrieval of the next set of data.<br/>Please check the [pagination instructions](#section/Retrieving-data/Pagination).",
        "operationId": "GetAllProductGroups",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "description": "Use this parameter to set the continuation cursor for paging. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maxLength": 50,
              "minLength": 0,
              "type": "string",
              "description": "Use this parameter to set the continuation cursor for paging. [Pagination instructions](#section/Retrieving-data/Pagination)"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [filtering instructions](#section/Retrieving-data/Filtering)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Array of objects along with a cursor.",
                  "$ref": "#/components/schemas/ProductGroupCursorResults"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "ProductGroups"
        ],
        "summary": "Update a single ProductGroup",
        "description": "Use this endpoint to update a single ProductGroup.",
        "operationId": "UpdateProductGroupById",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductGroup"
              },
              "example": {
                "id": 0,
                "name": "string",
                "domesticAccountId": 0
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "**Update conflict. Object version does not match.** The resource has been updated by another user. Retrieve the resource/object and try the update again. This is needed in order to prevent you from rolling back another user's update.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "ProductGroups"
        ],
        "summary": "Create a single ProductGroup",
        "description": "Use this endpoint to create a single ProductGroup.",
        "operationId": "CreateProductGroup",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductGroup"
              },
              "example": {
                "id": 0,
                "name": "string",
                "domesticAccountId": 0
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductGroupCreatedResult"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/productgroups/paged": {
      "get": {
        "tags": [
          "ProductGroups"
        ],
        "summary": "Retrieve a page of ProductGroups",
        "description": "Use this endpoint to load a page of ProductGroups.",
        "operationId": "GetPageOfProductGroups",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Use this parameter to set the sort fields and direction. [Sort instructions](#section/Retrieving-data/Sorting)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the sort fields and direction. [Sort instructions](#section/Retrieving-data/Sorting)"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Use this parameter to set the page size. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "description": "Use this parameter to set the page size. [Pagination instructions](#section/Retrieving-data/Pagination)",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "skipPages",
            "in": "query",
            "description": "Use this parameter to set number of pages to skip. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maximum": 100,
              "minimum": 0,
              "type": "integer",
              "description": "Use this parameter to set number of pages to skip. [Pagination instructions](#section/Retrieving-data/Pagination)",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductGroup"
                  }
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/products/{productNumber}": {
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "Retrieve single Product",
        "description": "Use this endpoint to retrieve a Product.",
        "operationId": "GetOneProduct",
        "parameters": [
          {
            "name": "productNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Products"
        ],
        "summary": "Update a single Product",
        "description": "Use this endpoint to update a single Product.",
        "operationId": "UpdateProductById",
        "parameters": [
          {
            "name": "productNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Product"
              },
              "example": {
                "productNumber": "string",
                "productGroupId": 0,
                "name": "string",
                "isAccessible": false
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "**Update conflict. Object version does not match.** The resource has been updated by another user. Retrieve the resource/object and try the update again. This is needed in order to prevent you from rolling back another user's update.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Products"
        ],
        "summary": "Delete single Product",
        "description": "Use this endpoint to delete a single Product by number.",
        "operationId": "DeleteProductById",
        "parameters": [
          {
            "name": "productNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/products": {
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "Retrieve all Products",
        "description": "Use this endpoint to retrieve all Products in bulk. <br/>The maximum number of items returned in a single call is defined in the `x-cursor-page-size` extension of the response type. Usually, the size is 1000, but in some cases, where we explicitly state so, it can be smaller than that.<br/>Use the continuation cursor parameter to set the cursor for retrieval of the next set of data.<br/>Please check the [pagination instructions](#section/Retrieving-data/Pagination).",
        "operationId": "GetAllProducts",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "description": "Use this parameter to set the continuation cursor for paging. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maxLength": 50,
              "minLength": 0,
              "type": "string",
              "description": "Use this parameter to set the continuation cursor for paging. [Pagination instructions](#section/Retrieving-data/Pagination)"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [filtering instructions](#section/Retrieving-data/Filtering)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Array of objects along with a cursor.",
                  "$ref": "#/components/schemas/ProductCursorResults"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Products"
        ],
        "summary": "Create a single Product",
        "description": "Use this endpoint to create a single Product.",
        "operationId": "CreateProduct",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Product"
              },
              "example": {
                "productNumber": "string",
                "productGroupId": 0,
                "name": "string",
                "isAccessible": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCreatedResult"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/products/count": {
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "Retrieve the number of Products",
        "description": "Call this endpoint to get the number of Products. You can use filtering as well.",
        "operationId": "GetNumberOfProducts",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/productspaged/paged": {
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "Retrieve a page of Products",
        "description": "Use this endpoint to load a page of Products.",
        "operationId": "GetPageOfProducts",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Use this parameter to set the sort fields and direction. [Sort instructions](#section/Retrieving-data/Sorting)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the sort fields and direction. [Sort instructions](#section/Retrieving-data/Sorting)"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Use this parameter to set the page size. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "description": "Use this parameter to set the page size. [Pagination instructions](#section/Retrieving-data/Pagination)",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "skipPages",
            "in": "query",
            "description": "Use this parameter to set number of pages to skip. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maximum": 100,
              "minimum": 0,
              "type": "integer",
              "description": "Use this parameter to set number of pages to skip. [Pagination instructions](#section/Retrieving-data/Pagination)",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  }
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/products/{productNumber}/salespriceincurrencies/{currency}": {
      "get": {
        "tags": [
          "ProductSalesPriceInCurrencies"
        ],
        "summary": "Retrieve single ProductSalesPriceInCurrency",
        "description": "Use this endpoint to retrieve a ProductSalesPriceInCurrency.",
        "operationId": "GetOneProductSalesPriceInCurrency",
        "parameters": [
          {
            "name": "productNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "currency",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^[A-Za-z]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductSalesPriceInCurrency"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "ProductSalesPriceInCurrencies"
        ],
        "summary": "Delete single ProductSalesPriceInCurrency",
        "description": "Use this endpoint to delete a single ProductSalesPriceInCurrency by number.",
        "operationId": "DeleteProductSalesPriceInCurrencyById",
        "parameters": [
          {
            "name": "productNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "currency",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^[A-Za-z]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/products/{productNumber}/salespriceincurrencies": {
      "post": {
        "tags": [
          "ProductSalesPriceInCurrencies"
        ],
        "summary": "Create a single ProductSalesPriceInCurrency",
        "description": "Use this endpoint to create a single ProductSalesPriceInCurrency.",
        "operationId": "CreateProductSalesPriceInCurrency",
        "parameters": [
          {
            "name": "productNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductSalesPriceInCurrency"
              },
              "example": {
                "currency": "string",
                "salesPrice": 0.0
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductSalesPriceInCurrencyCreatedResult"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "ProductSalesPriceInCurrencies"
        ],
        "summary": "Update a single ProductSalesPriceInCurrency",
        "description": "Use this endpoint to update a single ProductSalesPriceInCurrency.",
        "operationId": "UpdateProductSalesPriceInCurrencyById",
        "parameters": [
          {
            "name": "productNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductSalesPriceInCurrency"
              },
              "example": {
                "currency": "string",
                "salesPrice": 0.0
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "**Update conflict. Object version does not match.** The resource has been updated by another user. Retrieve the resource/object and try the update again. This is needed in order to prevent you from rolling back another user's update.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/salespriceincurrencies": {
      "get": {
        "tags": [
          "ProductSalesPriceInCurrencies"
        ],
        "summary": "Retrieve all ProductSalesPriceInCurrencies",
        "description": "Use this endpoint to retrieve all ProductSalesPriceInCurrencies in bulk. <br/>The maximum number of items returned in a single call is defined in the `x-cursor-page-size` extension of the response type. Usually, the size is 1000, but in some cases, where we explicitly state so, it can be smaller than that.<br/>Use the continuation cursor parameter to set the cursor for retrieval of the next set of data.<br/>Please check the [pagination instructions](#section/Retrieving-data/Pagination).",
        "operationId": "GetAllProductSalesPriceInCurrencies",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "description": "Use this parameter to set the continuation cursor for paging. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maxLength": 50,
              "minLength": 0,
              "type": "string",
              "description": "Use this parameter to set the continuation cursor for paging. [Pagination instructions](#section/Retrieving-data/Pagination)"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [filtering instructions](#section/Retrieving-data/Filtering)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductSalesPriceInCurrencyCursorResults"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/salespriceincurrencies/paged": {
      "get": {
        "tags": [
          "ProductSalesPriceInCurrencies"
        ],
        "summary": "Retrieve a page of ProductSalesPriceInCurrencies",
        "description": "Use this endpoint to load a page of ProductSalesPriceInCurrencies.",
        "operationId": "GetPageOfProductSalesPriceInCurrencies",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Use this parameter to set the sort fields and direction. [Sort instructions](#section/Retrieving-data/Sorting)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the sort fields and direction. [Sort instructions](#section/Retrieving-data/Sorting)"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Use this parameter to set the page size. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "description": "Use this parameter to set the page size. [Pagination instructions](#section/Retrieving-data/Pagination)",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "skipPages",
            "in": "query",
            "description": "Use this parameter to set number of pages to skip. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maximum": 100,
              "minimum": 0,
              "type": "integer",
              "description": "Use this parameter to set number of pages to skip. [Pagination instructions](#section/Retrieving-data/Pagination)",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductSalesPriceInCurrency"
                  }
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/salespriceincurrencies/count": {
      "get": {
        "tags": [
          "ProductSalesPriceInCurrencies"
        ],
        "summary": "Retrieve the number of ProductSalesPriceInCurrencies",
        "description": "Call this endpoint to get the number of ProductSalesPriceInCurrencies. You can use filtering as well.",
        "operationId": "GetNumberOfProductSalesPriceInCurrencies",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/pricegroups/{priceGroupNumber}/specialprices/{number}": {
      "get": {
        "tags": [
          "ProductSpecialPrices"
        ],
        "summary": "Retrieve single ProductSpecialPrice",
        "description": "Use this endpoint to retrieve a ProductSpecialPrice.",
        "operationId": "GetOneProductSpecialPrice",
        "parameters": [
          {
            "name": "number",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "priceGroupNumber",
            "in": "path",
            "description": "The number of the price group for the product special price(s)",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductSpecialPrice"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "ProductSpecialPrices"
        ],
        "summary": "Delete single ProductSpecialPrice",
        "description": "Use this endpoint to delete a single ProductSpecialPrice by number.",
        "operationId": "DeleteProductSpecialPriceById",
        "parameters": [
          {
            "name": "number",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "priceGroupNumber",
            "in": "path",
            "description": "The number of the price group for the product special price(s)",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/pricegroups/{priceGroupNumber}/specialprices": {
      "get": {
        "tags": [
          "ProductSpecialPrices"
        ],
        "summary": "Retrieve all ProductSpecialPrices",
        "description": "Use this endpoint to retrieve all ProductSpecialPrices in bulk. <br/>The maximum number of items returned in a single call is defined in the `x-cursor-page-size` extension of the response type. Usually, the size is 1000, but in some cases, where we explicitly state so, it can be smaller than that.<br/>Use the continuation cursor parameter to set the cursor for retrieval of the next set of data.<br/>Please check the [pagination instructions](#section/Retrieving-data/Pagination).",
        "operationId": "GetAllProductSpecialPrices",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "description": "Use this parameter to set the continuation cursor for paging. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maxLength": 50,
              "minLength": 0,
              "type": "string",
              "description": "Use this parameter to set the continuation cursor for paging. [Pagination instructions](#section/Retrieving-data/Pagination)"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [filtering instructions](#section/Retrieving-data/Filtering)"
            }
          },
          {
            "name": "priceGroupNumber",
            "in": "path",
            "description": "The number of the price group for the product special price(s)",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Array of objects along with a cursor.",
                  "$ref": "#/components/schemas/ProductSpecialPriceCursorResults"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "ProductSpecialPrices"
        ],
        "summary": "Create a single ProductSpecialPrice",
        "description": "Use this endpoint to create a single ProductSpecialPrice.",
        "operationId": "CreateProductSpecialPrice",
        "parameters": [
          {
            "name": "priceGroupNumber",
            "in": "path",
            "description": "The number of the price group for the product special price(s)",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductSpecialPrice"
              },
              "example": {
                "productNumber": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedResult"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "ProductSpecialPrices"
        ],
        "summary": "Update a single ProductSpecialPrice",
        "description": "Use this endpoint to update a single ProductSpecialPrice.",
        "operationId": "UpdateProductSpecialPriceById",
        "parameters": [
          {
            "name": "priceGroupNumber",
            "in": "path",
            "description": "The number of the price group for the product special price(s)",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductSpecialPrice"
              },
              "example": {
                "productNumber": "string"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "**Update conflict. Object version does not match.** The resource has been updated by another user. Retrieve the resource/object and try the update again. This is needed in order to prevent you from rolling back another user's update.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/pricegroups/{priceGroupNumber}/specialprices/paged": {
      "get": {
        "tags": [
          "ProductSpecialPrices"
        ],
        "summary": "Retrieve a page of ProductSpecialPrices",
        "description": "Use this endpoint to load a page of ProductSpecialPrices.",
        "operationId": "GetPageOfProductSpecialPrices",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Use this parameter to set the sort fields and direction. [Sort instructions](#section/Retrieving-data/Sorting)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the sort fields and direction. [Sort instructions](#section/Retrieving-data/Sorting)"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Use this parameter to set the page size. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "description": "Use this parameter to set the page size. [Pagination instructions](#section/Retrieving-data/Pagination)",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "skipPages",
            "in": "query",
            "description": "Use this parameter to set number of pages to skip. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maximum": 100,
              "minimum": 0,
              "type": "integer",
              "description": "Use this parameter to set number of pages to skip. [Pagination instructions](#section/Retrieving-data/Pagination)",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "priceGroupNumber",
            "in": "path",
            "description": "The number of the price group for the product special price(s)",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductSpecialPrice"
                  }
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/pricegroups/{priceGroupNumber}/specialprices/count": {
      "get": {
        "tags": [
          "ProductSpecialPrices"
        ],
        "summary": "Retrieve the number of ProductSpecialPrices",
        "description": "Call this endpoint to get the number of ProductSpecialPrices. You can use filtering as well.",
        "operationId": "GetNumberOfProductSpecialPrices",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)"
            }
          },
          {
            "name": "priceGroupNumber",
            "in": "path",
            "description": "The number of the price group for the product special price(s)",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/specialprices/{productSpecialPriceNumber}/specialpricesincurrency/{currency}": {
      "get": {
        "tags": [
          "ProductSpecialPricesInCurrency"
        ],
        "summary": "Retrieve single ProductSpecialPriceInCurrency",
        "description": "Use this endpoint to retrieve a ProductSpecialPriceInCurrency.",
        "operationId": "GetOneProductSpecialPriceInCurrency",
        "parameters": [
          {
            "name": "currency",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^[A-Za-z]*$",
              "type": "string"
            }
          },
          {
            "name": "productSpecialPriceNumber",
            "in": "path",
            "description": "The number of the product special price for the product special price(s) in other currency",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductSpecialPriceInCurrency"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "ProductSpecialPricesInCurrency"
        ],
        "summary": "Delete single ProductSpecialPriceInCurrency",
        "description": "Use this endpoint to delete a single ProductSpecialPriceInCurrency by number.",
        "operationId": "DeleteProductSpecialPriceInCurrencyById",
        "parameters": [
          {
            "name": "currency",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^[A-Za-z]*$",
              "type": "string"
            }
          },
          {
            "name": "productSpecialPriceNumber",
            "in": "path",
            "description": "The number of the product special price for the product special price(s) in other currency",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/specialprices/{productSpecialPriceNumber}/specialpricesincurrency": {
      "get": {
        "tags": [
          "ProductSpecialPricesInCurrency"
        ],
        "summary": "Retrieve all ProductSpecialPricesInCurrency",
        "description": "Use this endpoint to retrieve all ProductSpecialPricesInCurrency in bulk. <br/>The maximum number of items returned in a single call is defined in the `x-cursor-page-size` extension of the response type. Usually, the size is 1000, but in some cases, where we explicitly state so, it can be smaller than that.<br/>Use the continuation cursor parameter to set the cursor for retrieval of the next set of data.<br/>Please check the [pagination instructions](#section/Retrieving-data/Pagination).",
        "operationId": "GetAllProductSpecialPricesInCurrency",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "description": "Use this parameter to set the continuation cursor for paging. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maxLength": 50,
              "minLength": 0,
              "type": "string",
              "description": "Use this parameter to set the continuation cursor for paging. [Pagination instructions](#section/Retrieving-data/Pagination)"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [filtering instructions](#section/Retrieving-data/Filtering)"
            }
          },
          {
            "name": "productSpecialPriceNumber",
            "in": "path",
            "description": "The number of the product special price for the product special price(s) in other currency",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Array of objects along with a cursor.",
                  "$ref": "#/components/schemas/ProductSpecialPriceInCurrencyCursorResults"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "ProductSpecialPricesInCurrency"
        ],
        "summary": "Create a single ProductSpecialPriceInCurrency",
        "description": "Use this endpoint to create a single ProductSpecialPriceInCurrency.",
        "operationId": "CreateProductSpecialPriceInCurrency",
        "parameters": [
          {
            "name": "productSpecialPriceNumber",
            "in": "path",
            "description": "The number of the product special price for the product special price(s) in other currency",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductSpecialPriceInCurrency"
              },
              "example": {
                "currency": "string",
                "salesPrice": 0.0
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductSpecialPriceInCurrencyCreatedResult"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "ProductSpecialPricesInCurrency"
        ],
        "summary": "Update a single ProductSpecialPriceInCurrency",
        "description": "Use this endpoint to update a single ProductSpecialPriceInCurrency.",
        "operationId": "UpdateProductSpecialPriceInCurrencyById",
        "parameters": [
          {
            "name": "productSpecialPriceNumber",
            "in": "path",
            "description": "The number of the product special price for the product special price(s) in other currency",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductSpecialPriceInCurrency"
              },
              "example": {
                "currency": "string",
                "salesPrice": 0.0
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "**Update conflict. Object version does not match.** The resource has been updated by another user. Retrieve the resource/object and try the update again. This is needed in order to prevent you from rolling back another user's update.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/specialprices/{productSpecialPriceNumber}/specialpricesincurrency/paged": {
      "get": {
        "tags": [
          "ProductSpecialPricesInCurrency"
        ],
        "summary": "Retrieve a page of ProductSpecialPricesInCurrency",
        "description": "Use this endpoint to load a page of ProductSpecialPricesInCurrency.",
        "operationId": "GetPageOfProductSpecialPricesInCurrency",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Use this parameter to set the sort fields and direction. [Sort instructions](#section/Retrieving-data/Sorting)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the sort fields and direction. [Sort instructions](#section/Retrieving-data/Sorting)"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Use this parameter to set the page size. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "description": "Use this parameter to set the page size. [Pagination instructions](#section/Retrieving-data/Pagination)",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "skipPages",
            "in": "query",
            "description": "Use this parameter to set number of pages to skip. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maximum": 100,
              "minimum": 0,
              "type": "integer",
              "description": "Use this parameter to set number of pages to skip. [Pagination instructions](#section/Retrieving-data/Pagination)",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "productSpecialPriceNumber",
            "in": "path",
            "description": "The number of the product special price for the product special price(s) in other currency",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductSpecialPriceInCurrency"
                  }
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/specialprices/{productSpecialPriceNumber}/specialpricesincurrency/count": {
      "get": {
        "tags": [
          "ProductSpecialPricesInCurrency"
        ],
        "summary": "Retrieve the number of ProductSpecialPricesInCurrency",
        "description": "Call this endpoint to get the number of ProductSpecialPricesInCurrency. You can use filtering as well.",
        "operationId": "GetNumberOfProductSpecialPricesInCurrency",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)"
            }
          },
          {
            "name": "productSpecialPriceNumber",
            "in": "path",
            "description": "The number of the product special price for the product special price(s) in other currency",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/productgroups/{productGroupNumber}/projectsettings": {
      "get": {
        "tags": [
          "ProjectSettings"
        ],
        "summary": "Retrieve project settings",
        "description": "Retrieve the project settings for the product group.",
        "operationId": "GetProjectSettings",
        "parameters": [
          {
            "name": "productGroupNumber",
            "in": "path",
            "description": "The number identifying the product group for the project settings",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectSettings"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "ProjectSettings"
        ],
        "summary": "Update project settings",
        "description": "Update the project settings for the product group.",
        "operationId": "PutProjectSettings",
        "parameters": [
          {
            "name": "productGroupNumber",
            "in": "path",
            "description": "The number identifying the product group for the project settings",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectSettings"
              },
              "example": {
                "isInProject": false
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "**Update conflict. Object version does not match.** The resource has been updated by another user. Retrieve the resource/object and try the update again. This is needed in order to prevent you from rolling back another user's update.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/productgroups/{productGroupNumber}/zones/count": {
      "get": {
        "tags": [
          "Zones"
        ],
        "summary": "Retrieve the number of Zones",
        "description": "Call this endpoint to get the number of Zones. You can use filtering as well.",
        "operationId": "GetNumberOfZones",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)"
            }
          },
          {
            "name": "productGroupNumber",
            "in": "path",
            "description": "The number identifying the product group for the zones",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/productgroups/{productGroupNumber}/zones/{number}": {
      "get": {
        "tags": [
          "Zones"
        ],
        "summary": "Retrieve single Zone",
        "description": "Use this endpoint to load a single Zone by number.",
        "operationId": "GetZoneById",
        "parameters": [
          {
            "name": "number",
            "in": "path",
            "description": "The number corresponding to the id of the zone",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "productGroupNumber",
            "in": "path",
            "description": "The number identifying the product group for the zones",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Zone"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Zones"
        ],
        "summary": "Delete single Zone",
        "description": "Use this endpoint to delete a single Zone by number.",
        "operationId": "DeleteZoneById",
        "parameters": [
          {
            "name": "number",
            "in": "path",
            "description": "The number corresponding to the id of the zone",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "productGroupNumber",
            "in": "path",
            "description": "The number identifying the product group for the zones",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/productgroups/{productGroupNumber}/zones": {
      "get": {
        "tags": [
          "Zones"
        ],
        "summary": "Retrieve all Zones",
        "description": "Use this endpoint to retrieve all Zones in bulk. <br/>The maximum number of items returned in a single call is defined in the `x-cursor-page-size` extension of the response type. Usually, the size is 1000, but in some cases, where we explicitly state so, it can be smaller than that.<br/>Use the continuation cursor parameter to set the cursor for retrieval of the next set of data.<br/>Please check the [pagination instructions](#section/Retrieving-data/Pagination).",
        "operationId": "GetAllZones",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "description": "Use this parameter to set the continuation cursor for paging. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maxLength": 50,
              "minLength": 0,
              "type": "string",
              "description": "Use this parameter to set the continuation cursor for paging. [Pagination instructions](#section/Retrieving-data/Pagination)"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [filtering instructions](#section/Retrieving-data/Filtering)"
            }
          },
          {
            "name": "productGroupNumber",
            "in": "path",
            "description": "The number identifying the product group for the zones",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Array of objects along with a cursor.",
                  "$ref": "#/components/schemas/ZoneCursorResults"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Zones"
        ],
        "summary": "Create a single Zone",
        "description": "Use this endpoint to create a single Zone.",
        "operationId": "CreateZone",
        "parameters": [
          {
            "name": "productGroupNumber",
            "in": "path",
            "description": "The number identifying the product group for the zones",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Zone"
              },
              "example": {
                "id": 0,
                "accountId": 0
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ZoneCreatedResult"
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Zones"
        ],
        "summary": "Update a single Zone",
        "description": "Use this endpoint to update a single Zone.",
        "operationId": "UpdateZoneById",
        "parameters": [
          {
            "name": "productGroupNumber",
            "in": "path",
            "description": "The number identifying the product group for the zones",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Zone"
              },
              "example": {
                "id": 0,
                "accountId": 0
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "**Resource not found.** The resource you have been looking for does not exist.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "**Update conflict. Object version does not match.** The resource has been updated by another user. Retrieve the resource/object and try the update again. This is needed in order to prevent you from rolling back another user's update.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/productgroups/{productGroupNumber}/zones/paged": {
      "get": {
        "tags": [
          "Zones"
        ],
        "summary": "Retrieve a page of Zones",
        "description": "Use this endpoint to load a page of Zones.",
        "operationId": "GetPageOfZones",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the filtering for fields. [Filtering instructions](#section/Retrieving-data/Filtering)"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Use this parameter to set the sort fields and direction. [Sort instructions](#section/Retrieving-data/Sorting)",
            "schema": {
              "type": "string",
              "description": "Use this parameter to set the sort fields and direction. [Sort instructions](#section/Retrieving-data/Sorting)"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Use this parameter to set the page size. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "description": "Use this parameter to set the page size. [Pagination instructions](#section/Retrieving-data/Pagination)",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "skipPages",
            "in": "query",
            "description": "Use this parameter to set number of pages to skip. [Pagination instructions](#section/Retrieving-data/Pagination)",
            "schema": {
              "maximum": 100,
              "minimum": 0,
              "type": "integer",
              "description": "Use this parameter to set number of pages to skip. [Pagination instructions](#section/Retrieving-data/Pagination)",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "productGroupNumber",
            "in": "path",
            "description": "The number identifying the product group for the zones",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Zone"
                  }
                }
              }
            }
          },
          "400": {
            "description": "**Bad request.** Your request does not pass our validation. Check the errors array for more details.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "**Unauthorized access.** Please take a look at https://apis.e-conomic.com and follow the links to help on authorization, or use the word demo for both tokens.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "**Access forbidden.** You won’t necessarily have access to everything. So even though you were authorized we might still deny access to certain resources. This depends on the roles asked for when the grant was issued.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "**Too many requests.** You have made too many calls towards our API. You are over your quota. Need to wait a bit. Check info in the response headers.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "**Internal server error.** Something went wrong but the error has been logged. If you continue to see errors here, please contact api@e-conomic.com. Remember to include log id and agreement number when contacting support.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccrualSettings": {
        "type": "object",
        "properties": {
          "accrualAccountId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "description": "The id of the account for accruals<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "format": "int32",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "objectVersion": {
            "type": [
              "null",
              "string"
            ],
            "description": "The object version, required for PUT requests to help ensure that updates made by others don’t get overwritten.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false
      },
      "CreatedResult": {
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "description": "<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "format": "int32",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false
      },
      "Error": {
        "type": "object",
        "properties": {
          "message": {
            "type": [
              "null",
              "string"
            ],
            "description": "<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "errorCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "property": {
            "type": [
              "null",
              "string"
            ],
            "description": "<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false
      },
      "PriceGroup": {
        "required": [
          "name",
          "number"
        ],
        "type": "object",
        "properties": {
          "number": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "The unique number of the price group<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, in, nin</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "format": "int32",
            "x-filterable": "eq, ne, lt, lte, gt, gte, in, nin",
            "x-sortable": true
          },
          "name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The name of the price group<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, in, nin</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "x-filterable": "eq, ne, lt, lte, gt, gte, in, nin",
            "x-sortable": true
          },
          "objectVersion": {
            "type": [
              "null",
              "string"
            ],
            "description": "The object version, required for PUT requests to help ensure that updates made by others don’t get overwritten.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false
      },
      "PriceGroupCursorResults": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": [
              "null",
              "string"
            ],
            "description": "Use this continuation cursor in a request back to continue the list. In case there are no more items to retrieve, the cursor is not returned at all.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Read-only: true</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "readOnly": true,
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "items": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PriceGroup"
            },
            "description": "Max number of items returned is 1000.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false,
        "description": "Array of objects along with a cursor.",
        "example": {
          "cursor": "234",
          "items": [
            {
              "id": "13",
              "name": "Patrick"
            },
            {
              "id": "16",
              "name": "John"
            }
          ]
        },
        "x-cursor-page-size": 1000
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "null",
              "string"
            ]
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "integer",
            "format": "int32"
          },
          "detail": {
            "type": [
              "null",
              "string"
            ]
          },
          "instance": {
            "type": [
              "null",
              "string"
            ]
          },
          "errors": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/Error"
            }
          },
          "traceId": {
            "type": "string"
          },
          "errorCode": {
            "type": "string"
          },
          "traceTimeUtc": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Product": {
        "required": [
          "isAccessible",
          "name",
          "productGroupId",
          "productNumber"
        ],
        "type": "object",
        "properties": {
          "productNumber": {
            "maxLength": 25,
            "minLength": 1,
            "type": "string",
            "description": "Identifier for the product, must be unique.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, like</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "x-filterable": "eq, ne, lt, lte, gt, gte, like",
            "x-sortable": true
          },
          "productGroupId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "Identifier for the group the product belongs to.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "format": "int32",
            "x-filterable": "eq, ne, lt, lte, gt, gte",
            "x-sortable": true
          },
          "name": {
            "maxLength": 300,
            "minLength": 1,
            "type": "string",
            "description": "Name of the product. Must be non-empty.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, like</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "x-filterable": "eq, ne, lt, lte, gt, gte, like",
            "x-sortable": true
          },
          "description": {
            "maxLength": 500,
            "type": [
              "null",
              "string"
            ],
            "description": "Description of the product.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "barCode": {
            "maxLength": 50,
            "type": [
              "null",
              "string"
            ],
            "description": "Bar code of the product.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "salesPrice": {
            "type": [
              "null",
              "number"
            ],
            "description": "Default sales price of the product in the base currency of the agreement.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "format": "double",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "costPrice": {
            "type": [
              "null",
              "number"
            ],
            "description": "Default cost price of the product in the base currency of the agreement.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "format": "double",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "recommendedPrice": {
            "type": [
              "null",
              "number"
            ],
            "description": "Default recommended price of the product in the base currency of the agreement.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "format": "double",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "unitId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "description": "Default 1st unit of the product.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "format": "int32",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "unit2Id": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "description": "Default 2nd unit of the product.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "format": "int32",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "isAccessible": {
            "type": "boolean",
            "description": "Whether or not the product is available for use or barred.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "eq, ne",
            "x-sortable": false
          },
          "lastUpdated": {
            "type": [
              "null",
              "string"
            ],
            "description": "When the product was last updated. Will be ignored if passed when creating or updating a product, as it is set internally.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "format": "date-time",
            "x-filterable": "eq, ne, lt, lte, gt, gte",
            "x-sortable": true
          },
          "objectVersion": {
            "type": [
              "null",
              "string"
            ],
            "description": "The object version, required for PUT requests to help ensure that updates made by others don’t get overwritten by your update request.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false
      },
      "ProductCreatedResult": {
        "type": "object",
        "properties": {
          "productNumber": {
            "maxLength": 25,
            "minLength": 1,
            "type": "string",
            "description": "Identifier for the product, must be unique.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, like</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "x-filterable": "eq, ne, lt, lte, gt, gte, like",
            "x-sortable": true
          }
        },
        "additionalProperties": false
      },
      "ProductCursorResults": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": [
              "null",
              "string"
            ],
            "description": "Use this continuation cursor in a request back to continue the list. In case there are no more items to retrieve, the cursor is not returned at all.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Read-only: true</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "readOnly": true,
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "items": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/Product"
            },
            "description": "Max number of items returned is 1000.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false,
        "description": "Array of objects along with a cursor.",
        "example": {
          "cursor": "234",
          "items": [
            {
              "id": "13",
              "name": "Patrick"
            },
            {
              "id": "16",
              "name": "John"
            }
          ]
        },
        "x-cursor-page-size": 1000
      },
      "ProductGroup": {
        "required": [
          "domesticAccountId",
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "The id of the product group<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, in, nin</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "format": "int32",
            "x-filterable": "eq, ne, lt, lte, gt, gte, in, nin",
            "x-sortable": true
          },
          "name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The name of the product group<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, in, nin, like</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "x-filterable": "eq, ne, lt, lte, gt, gte, in, nin, like",
            "x-sortable": true
          },
          "domesticAccountId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "The id of the account for domestic sales<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "format": "int32",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "objectVersion": {
            "type": [
              "null",
              "string"
            ],
            "description": "The object version, required for PUT requests to help ensure that updates made by others don’t get overwritten.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false
      },
      "ProductGroupCreatedResult": {
        "type": "object",
        "properties": {
          "id": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "The id of the product group<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, in, nin</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "format": "int32",
            "x-filterable": "eq, ne, lt, lte, gt, gte, in, nin",
            "x-sortable": true
          }
        },
        "additionalProperties": false
      },
      "ProductGroupCursorResults": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": [
              "null",
              "string"
            ],
            "description": "Use this continuation cursor in a request back to continue the list. In case there are no more items to retrieve, the cursor is not returned at all.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Read-only: true</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "readOnly": true,
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "items": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/ProductGroup"
            },
            "description": "Max number of items returned is 1000.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false,
        "description": "Array of objects along with a cursor.",
        "example": {
          "cursor": "234",
          "items": [
            {
              "id": "13",
              "name": "Patrick"
            },
            {
              "id": "16",
              "name": "John"
            }
          ]
        },
        "x-cursor-page-size": 1000
      },
      "ProductSalesPriceInCurrency": {
        "required": [
          "currency",
          "salesPrice"
        ],
        "type": "object",
        "properties": {
          "productNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, in, nin</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "x-filterable": "eq, ne, lt, lte, gt, gte, in, nin",
            "x-sortable": true
          },
          "currency": {
            "maxLength": 3,
            "minLength": 0,
            "type": "string",
            "description": "<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, in, nin</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "x-filterable": "eq, ne, lt, lte, gt, gte, in, nin",
            "x-sortable": true
          },
          "salesPrice": {
            "type": "number",
            "description": "<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "format": "double",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "objectVersion": {
            "type": [
              "null",
              "string"
            ],
            "description": "The object version, required for PUT requests to help ensure that updates made by others don’t get overwritten.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false
      },
      "ProductSalesPriceInCurrencyCreatedResult": {
        "type": "object",
        "properties": {
          "currency": {
            "maxLength": 3,
            "minLength": 0,
            "type": "string",
            "description": "<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, in, nin</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "x-filterable": "eq, ne, lt, lte, gt, gte, in, nin",
            "x-sortable": true
          }
        },
        "additionalProperties": false
      },
      "ProductSalesPriceInCurrencyCursorResults": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": [
              "null",
              "string"
            ],
            "description": "Use this continuation cursor in a request back to continue the list. In case there are no more items to retrieve, the cursor is not returned at all.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Read-only: true</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "readOnly": true,
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "items": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/ProductSalesPriceInCurrency"
            },
            "description": "Max number of items returned is 1000.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false,
        "description": "Array of objects along with a cursor.",
        "example": {
          "cursor": "234",
          "items": [
            {
              "id": "13",
              "name": "Patrick"
            },
            {
              "id": "16",
              "name": "John"
            }
          ]
        },
        "x-cursor-page-size": 1000
      },
      "ProductSpecialPrice": {
        "required": [
          "productNumber"
        ],
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "description": "The unique number of the product special price, required for PUT requests. Ignored for POST requests.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, in, nin</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "format": "int32",
            "x-filterable": "eq, ne, lt, lte, gt, gte, in, nin",
            "x-sortable": true
          },
          "productNumber": {
            "minLength": 1,
            "type": "string",
            "description": "Ignored in PUT requests, the project number with which resource was created cannot be updated.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, in, nin</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "eq, ne, lt, lte, gt, gte, in, nin",
            "x-sortable": false
          },
          "salesPriceBaseCurrency": {
            "type": [
              "null",
              "number"
            ],
            "description": "SalesPriceBaseCurrency and DiscountPercentage are mutually exclusive, meaning only one can have a value.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "format": "double",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "discountPercentage": {
            "maximum": 100,
            "minimum": 0,
            "type": [
              "null",
              "number"
            ],
            "description": "Setting DiscountPercentage will delete all currency specific prices related to this entity. Setting to 50 will result in 50% discount of the original product price.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "format": "double",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "objectVersion": {
            "type": [
              "null",
              "string"
            ],
            "description": "The object version, required for PUT requests to help ensure that updates made by others don’t get overwritten.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false
      },
      "ProductSpecialPriceCursorResults": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": [
              "null",
              "string"
            ],
            "description": "Use this continuation cursor in a request back to continue the list. In case there are no more items to retrieve, the cursor is not returned at all.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Read-only: true</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "readOnly": true,
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "items": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/ProductSpecialPrice"
            },
            "description": "Max number of items returned is 1000.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false,
        "description": "Array of objects along with a cursor.",
        "example": {
          "cursor": "234",
          "items": [
            {
              "id": "13",
              "name": "Patrick"
            },
            {
              "id": "16",
              "name": "John"
            }
          ]
        },
        "x-cursor-page-size": 1000
      },
      "ProductSpecialPriceInCurrency": {
        "required": [
          "currency",
          "salesPrice"
        ],
        "type": "object",
        "properties": {
          "currency": {
            "maxLength": 3,
            "minLength": 0,
            "type": "string",
            "description": "<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, in, nin</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "x-filterable": "eq, ne, lt, lte, gt, gte, in, nin",
            "x-sortable": true
          },
          "salesPrice": {
            "type": "number",
            "description": "<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "format": "double",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "objectVersion": {
            "type": [
              "null",
              "string"
            ],
            "description": "The object version, required for PUT requests to help ensure that updates made by others don’t get overwritten.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false
      },
      "ProductSpecialPriceInCurrencyCreatedResult": {
        "type": "object",
        "properties": {
          "currency": {
            "maxLength": 3,
            "minLength": 0,
            "type": "string",
            "description": "<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, in, nin</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "x-filterable": "eq, ne, lt, lte, gt, gte, in, nin",
            "x-sortable": true
          }
        },
        "additionalProperties": false
      },
      "ProductSpecialPriceInCurrencyCursorResults": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": [
              "null",
              "string"
            ],
            "description": "Use this continuation cursor in a request back to continue the list. In case there are no more items to retrieve, the cursor is not returned at all.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Read-only: true</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "readOnly": true,
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "items": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/ProductSpecialPriceInCurrency"
            },
            "description": "Max number of items returned is 1000.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false,
        "description": "Array of objects along with a cursor.",
        "example": {
          "cursor": "234",
          "items": [
            {
              "id": "13",
              "name": "Patrick"
            },
            {
              "id": "16",
              "name": "John"
            }
          ]
        },
        "x-cursor-page-size": 1000
      },
      "ProjectSettings": {
        "required": [
          "isInProject"
        ],
        "type": "object",
        "properties": {
          "isInProject": {
            "type": "boolean",
            "description": "Whether to include the product group in the project<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "projectAccountId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "description": "The id of the account for the project<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "format": "int32",
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "objectVersion": {
            "type": [
              "null",
              "string"
            ],
            "description": "The object version, required for PUT requests to help ensure that updates made by others don’t get overwritten.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false
      },
      "Zone": {
        "required": [
          "accountId",
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "maximum": 2147483647,
            "minimum": 1,
            "pattern": "(?!(6|7)$).*",
            "type": "integer",
            "description": "The id of the zone<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, in, nin</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "format": "int32",
            "x-filterable": "eq, ne, lt, lte, gt, gte, in, nin",
            "x-sortable": true
          },
          "accountId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "The id of the account for the zone<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, in, nin</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "format": "int32",
            "x-filterable": "eq, ne, lt, lte, gt, gte, in, nin",
            "x-sortable": true
          },
          "objectVersion": {
            "type": [
              "null",
              "string"
            ],
            "description": "The object version, required for PUT requests to help ensure that updates made by others don’t get overwritten.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false
      },
      "ZoneCreatedResult": {
        "type": "object",
        "properties": {
          "id": {
            "maximum": 2147483647,
            "minimum": 1,
            "pattern": "(?!(6|7)$).*",
            "type": "integer",
            "description": "The id of the zone<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: eq, ne, lt, lte, gt, gte, in, nin</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: true</p>",
            "format": "int32",
            "x-filterable": "eq, ne, lt, lte, gt, gte, in, nin",
            "x-sortable": true
          }
        },
        "additionalProperties": false
      },
      "ZoneCursorResults": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": [
              "null",
              "string"
            ],
            "description": "Use this continuation cursor in a request back to continue the list. In case there are no more items to retrieve, the cursor is not returned at all.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Read-only: true</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "readOnly": true,
            "x-filterable": "not filterable",
            "x-sortable": false
          },
          "items": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/Zone"
            },
            "description": "Max number of items returned is 1000.<p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Filterable: not filterable</p><p style='font-style:italic;font-family:monospace;font-size:small;margin:0'>Sortable: false</p>",
            "x-filterable": "not filterable",
            "x-sortable": false
          }
        },
        "additionalProperties": false,
        "description": "Array of objects along with a cursor.",
        "example": {
          "cursor": "234",
          "items": [
            {
              "id": "13",
              "name": "Patrick"
            },
            {
              "id": "16",
              "name": "John"
            }
          ]
        },
        "x-cursor-page-size": 1000
      }
    },
    "securitySchemes": {
      "X-AppSecretToken": {
        "type": "apiKey",
        "description": "Application secret token needed to access the endpoints.",
        "name": "X-AppSecretToken",
        "in": "header"
      },
      "X-AgreementGrantToken": {
        "type": "apiKey",
        "description": "Agreement grant token needed to access the endpoints.",
        "name": "X-AgreementGrantToken",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "X-AppSecretToken": [ ],
      "X-AgreementGrantToken": [ ]
    }
  ],
  "tags": [
    {
      "name": "AccrualSettings",
      "description": "Modify the accrual settings for a product group.\n\n#### Examples of use\n- Define the account for a product group used for accruals\n\n\n**Required application roles:** SuperUser or Sales [More info](https://www.e-conomic.com/developer/permissions)",
      "x-required-roles": [
        "Sales",
        "SuperUser"
      ]
    },
    {
      "name": "PriceGroups",
      "description": "<code>Price groups</code> contain special prices (særpriser) for products. Each product can have its special price defined within given price group.\n\t\tOnce price group is selected for a customer, the special prices are used instead of the standard prices when creating invoices/orders/quotes for given customer.\n\n\n#### Examples of use cases:\n\n* Create a price group;\n* Update a price group;\n* Delete a price group;\n\n\nRelated guide for users: [e-copedia](https://www.e-conomic.dk/support/artikler/opret-saerpriser) (Danish).\n\n\n<details><summary><b>Click to see the list of possible error codes.</b></summary>\n\n| Error Code | Description |\n| ---------- | ----------- |\n| PriceGroupNameIsRequired | PriceGroupNameIsRequired |\n| PriceGroupNameCanBe50CharMax | PriceGroupNameCanBe50CharMax |\n| PriceGroupIdExists | PriceGroupIdExists |\n| PriceGroupUsedByOneOrMoreCustomers | PriceGroupUsedByOneOrMoreCustomers |\n| PriceGroupInvalidPriceGroupId | PriceGroupInvalidPriceGroupId |\n| PriceGroupUsedByProductSpecialPrice | PriceGroupUsedByProductSpecialPrice |\n</details>\n\n**Required application roles:** SuperUser or Sales [More info](https://www.e-conomic.com/developer/permissions)",
      "x-error-codes": [
        "PriceGroupIdExists",
        "PriceGroupInvalidPriceGroupId",
        "PriceGroupNameCanBe50CharMax",
        "PriceGroupNameIsRequired",
        "PriceGroupUsedByOneOrMoreCustomers",
        "PriceGroupUsedByProductSpecialPrice"
      ],
      "x-required-roles": [
        "Sales",
        "SuperUser"
      ]
    },
    {
      "name": "ProductGroups",
      "description": "Create, modify, and delete product groups.\n\n#### Examples of use\n- Define the name of a product group\n- Define the account for a product group used for domestic VAT\n\n\n**Required application roles:** SuperUser or Sales [More info](https://www.e-conomic.com/developer/permissions)",
      "x-required-roles": [
        "Sales",
        "SuperUser"
      ]
    },
    {
      "name": "ProductSalesPriceInCurrencies",
      "description": "Create, modify, and delete product sales price in currencies.\n\n#### Examples of use\n- Define the sales price for a product in a given currency\n- Get the product sales price in currencies\n\n<details><summary><b>Click to see the list of possible error codes.</b></summary>\n\n| Error Code | Description |\n| ---------- | ----------- |\n| ProductPriceInCurrencyAlreadyExists | ProductPriceInCurrencyAlreadyExists |\n| InvalidCurrency | InvalidCurrency |\n| ProductDoesNotExist | ProductDoesNotExist |\n</details>\n\n**Required application roles:** SuperUser or Sales [More info](https://www.e-conomic.com/developer/permissions)",
      "x-error-codes": [
        "InvalidCurrency",
        "ProductDoesNotExist",
        "ProductPriceInCurrencyAlreadyExists"
      ],
      "x-required-roles": [
        "Sales",
        "SuperUser"
      ]
    },
    {
      "name": "ProductSpecialPrices",
      "description": "<code>Product special prices</code> allow you to define custom prices for products within a given price group. Once a price group is selected for a customer, the special prices are used instead of the standard prices when creating invoices/orders/quotes for the given customer.\n\n\n#### Examples of use cases:\n\n* Create a special price;\n* Update a special price;\n* Delete a special price;\n\n\nRelated guide for users: [e-copedia](https://www.e-conomic.dk/support/artikler/opret-saerpriser) (Danish).\n\n\n<details><summary><b>Click to see the list of possible error codes.</b></summary>\n\n| Error Code | Description |\n| ---------- | ----------- |\n| ProductSpecialPriceCreateProductDoesNotExist | ProductSpecialPriceCreateProductDoesNotExist |\n| ProductSpecialPriceCreatePriceGroupDoesNotExist | ProductSpecialPriceCreatePriceGroupDoesNotExist |\n| ProductSpecialPriceCreateProductAlreadyHasSpecialPriceInPriceGroup | ProductSpecialPriceCreateProductAlreadyHasSpecialPriceInPriceGroup |\n| ProductSpecialPriceDeleteSpecialPriceUsedBySpecialPriceInCurrency | ProductSpecialPriceDeleteSpecialPriceUsedBySpecialPriceInCurrency |\n| ProductSpecialPriceCreateSalesPriceBaseCurrencyAndDiscountPercentageSpecified | ProductSpecialPriceCreateSalesPriceBaseCurrencyAndDiscountPercentageSpecified |\n| ProductSpecialPriceCreateDiscountPercentageOutOfRange | ProductSpecialPriceCreateDiscountPercentageOutOfRange |\n</details>\n\n**Required application roles:** SuperUser or Sales [More info](https://www.e-conomic.com/developer/permissions)",
      "x-error-codes": [
        "ProductSpecialPriceCreateDiscountPercentageOutOfRange",
        "ProductSpecialPriceCreatePriceGroupDoesNotExist",
        "ProductSpecialPriceCreateProductAlreadyHasSpecialPriceInPriceGroup",
        "ProductSpecialPriceCreateProductDoesNotExist",
        "ProductSpecialPriceCreateSalesPriceBaseCurrencyAndDiscountPercentageSpecified",
        "ProductSpecialPriceDeleteSpecialPriceUsedBySpecialPriceInCurrency"
      ],
      "x-required-roles": [
        "Sales",
        "SuperUser"
      ]
    },
    {
      "name": "ProductSpecialPricesInCurrency",
      "description": "<code>Product special prices in currency</code> allow you to define custom prices for a given foreign currency for products within a given price group. Once a price group is selected for a customer, the special prices in currency are used when creating an invoice in given currency.\n\n\n#### Examples of use cases:\n\n* Create a special price in currency;\n* Update a special price in currency;\n* Delete a special price in currency;\n\n\nRelated guide for users: [e-copedia](https://www.e-conomic.dk/support/artikler/opret-saerpriser) (Danish).\n\n\n<details><summary><b>Click to see the list of possible error codes.</b></summary>\n\n| Error Code | Description |\n| ---------- | ----------- |\n| ProductSpecialPriceCurrencyCreateProductSpecialPriceDoesNotExist | ProductSpecialPriceCurrencyCreateProductSpecialPriceDoesNotExist |\n| ProductSpecialPriceCurrencyCreateCurrencyDoesNotExist | ProductSpecialPriceCurrencyCreateCurrencyDoesNotExist |\n| ProductSpecialPriceCurrencyCreateSpecialPriceInCurrencyAlreadyExists | ProductSpecialPriceCurrencyCreateSpecialPriceInCurrencyAlreadyExists |\n| ProductSpecialPriceCurrencyCreateDiscountPercentageSpecified | ProductSpecialPriceCurrencyCreateDiscountPercentageSpecified |\n</details>\n\n**Required application roles:** SuperUser or Sales [More info](https://www.e-conomic.com/developer/permissions)",
      "x-error-codes": [
        "ProductSpecialPriceCurrencyCreateCurrencyDoesNotExist",
        "ProductSpecialPriceCurrencyCreateDiscountPercentageSpecified",
        "ProductSpecialPriceCurrencyCreateProductSpecialPriceDoesNotExist",
        "ProductSpecialPriceCurrencyCreateSpecialPriceInCurrencyAlreadyExists"
      ],
      "x-required-roles": [
        "Sales",
        "SuperUser"
      ]
    },
    {
      "name": "Products",
      "description": "Create, modify, and delete products.\n<details><summary><b>Click to see the list of possible error codes.</b></summary>\n\n| Error Code | Description |\n| ---------- | ----------- |\n| ProductNumberAlreadyExists | ProductNumberAlreadyExists |\n| ProductNumberChangeSettingNotEnabled | ProductNumberChangeSettingNotEnabled |\n| ProductGroupDoesNotExist | ProductGroupDoesNotExist |\n| ProductUsedOnInvoiceLines | ProductUsedOnInvoiceLines |\n| ProductUsedOnDraftInvoiceLines | ProductUsedOnDraftInvoiceLines |\n| ProductUsedInSubscriptions | ProductUsedInSubscriptions |\n</details>\n\n**Required application roles:** SuperUser or Sales [More info](https://www.e-conomic.com/developer/permissions)",
      "x-error-codes": [
        "ProductGroupDoesNotExist",
        "ProductNumberAlreadyExists",
        "ProductNumberChangeSettingNotEnabled",
        "ProductUsedInSubscriptions",
        "ProductUsedOnDraftInvoiceLines",
        "ProductUsedOnInvoiceLines"
      ],
      "x-required-roles": [
        "Sales",
        "SuperUser"
      ]
    },
    {
      "name": "ProjectSettings",
      "description": "Modify the project settings for a product group.\n\n#### Examples of use\n- Define whether or not the product group is in a project\n- Define the account for a product group used for the project\n\n\n**Required application roles:** SuperUser or ProjectEmployee or Sales [More info](https://www.e-conomic.com/developer/permissions)",
      "x-required-roles": [
        "ProjectEmployee",
        "Sales",
        "SuperUser"
      ]
    },
    {
      "name": "Zones",
      "description": "Create, modify, and delete zones for a product group.\n\n#### VAT Zones\n\nThe id of a zone corresponds to the id of a VAT zone, and their existence on the product group links an account with the given zone for that group.\n\n| Zone id | Use |\n| --- | --- |\n| 1 | Domestic w/ VAT |\n| 2 | EU |\n| 3 | Abroad |\n| 4 | Domestic w/o VAT |\n| 5 | Project |\n| 6-7 | reserved |\n| 8+ | country specific VAT |\n\nDomestic w/ VAT must exist and its account is the same as the domestic account on the product group itself. Other VAT zones exist for specific countries and regions.\n\n#### Examples of use\n- Define the account for a product group used for a given VAT zone\n\n\n**Required application roles:** SuperUser or Sales [More info](https://www.e-conomic.com/developer/permissions)",
      "x-required-roles": [
        "Sales",
        "SuperUser"
      ]
    }
  ],
  "x-tagGroups": [
    {
      "name": "Products",
      "tags": [
        "Products"
      ]
    },
    {
      "name": "Product groups",
      "tags": [
        "AccrualSettings",
        "ProductGroups",
        "ProjectSettings",
        "Zones"
      ]
    },
    {
      "name": "Price groups",
      "tags": [
        "PriceGroups",
        "ProductSpecialPrices",
        "ProductSpecialPricesInCurrency"
      ]
    },
    {
      "name": "Product sales price in currencies",
      "tags": [
        "ProductSalesPriceInCurrencies"
      ]
    }
  ]
}