{
  "openapi": "3.0.0",
  "info": {
    "version": "1.0.0",
    "title": "OTTO Market API",
    "x-logo": {
      "url": "https://nonlive.portal.otto.market/static/assets/images/otto_market_logo_borderless.svg",
      "backgroundColor": "#ffffff"
    }
  },
  "servers": [
    {
      "url": "https://api.otto.market",
      "description": "Live Server"
    }
  ],
  "paths": {
    "/v5/products": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "The total number of results could be limited by specifying query parameters. Generally the resulting product variations will be paginated. The default page length is 100 product variations per response, also the page size limit. The links specified in the result can be used to page through the total result space.",
        "operationId": "Products-V5__getPartnerProducts",
        "parameters": [
          {
            "description": "search for product variations by their sku value. Use this if your sku values contain slash ('/') or dot ('.') characters.",
            "explode": true,
            "in": "query",
            "name": "sku",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their productReference value",
            "explode": true,
            "in": "query",
            "name": "productReference",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their category value",
            "explode": true,
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their brandId value",
            "explode": true,
            "in": "query",
            "name": "brandId",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "proposed limit for the number of products per response page (at most 100)",
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductVariationApiResult__Products-V5"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "Read product variations",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Returns a process-id to query results. The limit for the number of product variations in one request is 500.",
        "operationId": "Products-V5__createOrUpdateProductVariations",
        "parameters": [
          {
            "description": "Holds the optional client side update request timestamp, in ISO DateTime format",
            "example": "2000-10-31T01:30:10.000-05:00",
            "explode": false,
            "in": "header",
            "name": "X-Request-Timestamp",
            "required": false,
            "schema": {
              "format": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/ProductVariation__Products-V5"
                },
                "type": "array"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductProcessProgress__Products-V5"
                }
              }
            },
            "description": "The request for a modification of the specified product variations was accepted and will be executed"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to modify the specified product variations. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "Create or update product variations",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v5/products \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'X-Request-Timestamp: 2000-10-31T01:30:10.000-05:00' \\\n  --header 'content-type: application/json' \\\n  --data '[{\"productReference\":\"UBN-11779\",\"sku\":\"3858389911564\",\"ean\":\"3858389911564\",\"pzn\":\"PZN-4908802\",\"mpn\":\"H2G2-42\",\"moin\":\"M00A1234BC\",\"releaseDate\":\"2019-10-19T00:00:00Z\",\"productDescription\":{\"category\":\"Outdoorjacke\",\"brandId\":\"CMWBBRW2\",\"productLine\":\"501\",\"productionDate\":\"2021-07-02T09:30:52.093Z\",\"multiPack\":true,\"bundle\":false,\"fscCertified\":true,\"disposal\":false,\"productUrl\":\"http://myproduct.somewhere.com/productname/\",\"description\":\"<p>Some example words...<b>in bold</b>...some more</p>\",\"bulletPoints\":[\"My top key information...\"],\"attributes\":[{\"name\":\"Materialzusammensetzung\",\"values\":[\"100% Baumwolle\"],\"additional\":false}]},\"mediaAssets\":[{\"type\":\"IMAGE\",\"location\":\"http://apartners.url/image-location\"}],\"order\":{\"maxOrderQuantity\":{\"quantity\":10,\"periodInDays\":7}},\"pricing\":{\"standardPrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"vat\":\"FULL\",\"msrp\":{\"amount\":19.95,\"currency\":\"EUR\"},\"sale\":{\"salePrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"startDate\":\"2019-10-19T09:30:00Z\",\"endDate\":\"2019-10-19T09:30:00Z\"},\"normPriceInfo\":{\"normAmount\":100,\"normUnit\":\"g\",\"salesAmount\":500,\"salesUnit\":\"g\"}},\"logistics\":{\"packingUnitCount\":3,\"packingUnits\":[{\"weight\":365,\"width\":600,\"height\":200,\"length\":300}]},\"compliance\":{\"productSafety\":{\"addresses\":[{\"name\":\"Die Musterfirma GmbH\",\"address\":\"Musterstraße 1, 12345, Musterstadt, Deutschland\",\"regionCode\":\"DE\",\"email\":\"info@die-musterfirma.de\",\"url\":\"https://musterfirma/kontakt-information\",\"phone\":\"+ 49 40 123456789\",\"roles\":[\"DISTRIBUTOR\"],\"components\":[\"mouse\"]}]},\"foodInformation\":{\"addresses\":[{\"name\":\"Die Musterfirma GmbH\",\"address\":\"Musterstraße 1, 12345, Musterstadt, Deutschland\",\"regionCode\":\"DE\",\"email\":\"info@die-musterfirma.de\",\"url\":\"https://musterfirma/kontakt-information\",\"phone\":\"+ 49 40 123456789\",\"roles\":[\"FOOD_BUSINESS_OPERATOR\"],\"components\":[\"Salad\"]}]}}}]'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '[{\"productReference\":\"UBN-11779\",\"sku\":\"3858389911564\",\"ean\":\"3858389911564\",\"pzn\":\"PZN-4908802\",\"mpn\":\"H2G2-42\",\"moin\":\"M00A1234BC\",\"releaseDate\":\"2019-10-19T00:00:00Z\",\"productDescription\":{\"category\":\"Outdoorjacke\",\"brandId\":\"CMWBBRW2\",\"productLine\":\"501\",\"productionDate\":\"2021-07-02T09:30:52.093Z\",\"multiPack\":true,\"bundle\":false,\"fscCertified\":true,\"disposal\":false,\"productUrl\":\"http://myproduct.somewhere.com/productname/\",\"description\":\"<p>Some example words...<b>in bold</b>...some more</p>\",\"bulletPoints\":[\"My top key information...\"],\"attributes\":[{\"name\":\"Materialzusammensetzung\",\"values\":[\"100% Baumwolle\"],\"additional\":false}]},\"mediaAssets\":[{\"type\":\"IMAGE\",\"location\":\"http://apartners.url/image-location\"}],\"order\":{\"maxOrderQuantity\":{\"quantity\":10,\"periodInDays\":7}},\"pricing\":{\"standardPrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"vat\":\"FULL\",\"msrp\":{\"amount\":19.95,\"currency\":\"EUR\"},\"sale\":{\"salePrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"startDate\":\"2019-10-19T09:30:00Z\",\"endDate\":\"2019-10-19T09:30:00Z\"},\"normPriceInfo\":{\"normAmount\":100,\"normUnit\":\"g\",\"salesAmount\":500,\"salesUnit\":\"g\"}},\"logistics\":{\"packingUnitCount\":3,\"packingUnits\":[{\"weight\":365,\"width\":600,\"height\":200,\"length\":300}]},\"compliance\":{\"productSafety\":{\"addresses\":[{\"name\":\"Die Musterfirma GmbH\",\"address\":\"Musterstraße 1, 12345, Musterstadt, Deutschland\",\"regionCode\":\"DE\",\"email\":\"info@die-musterfirma.de\",\"url\":\"https://musterfirma/kontakt-information\",\"phone\":\"+ 49 40 123456789\",\"roles\":[\"DISTRIBUTOR\"],\"components\":[\"mouse\"]}]},\"foodInformation\":{\"addresses\":[{\"name\":\"Die Musterfirma GmbH\",\"address\":\"Musterstraße 1, 12345, Musterstadt, Deutschland\",\"regionCode\":\"DE\",\"email\":\"info@die-musterfirma.de\",\"url\":\"https://musterfirma/kontakt-information\",\"phone\":\"+ 49 40 123456789\",\"roles\":[\"FOOD_BUSINESS_OPERATOR\"],\"components\":[\"Salad\"]}]}}}]' |  \\\n  http POST https://api.otto.market/v5/products \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  X-Request-Timestamp:2000-10-31T01:30:10.000-05:00 \\\n  content-type:application/json"
          }
        ]
      }
    },
    "/v5/products/active-status": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "The total number of results could be limited by specifying query parameters. Generally the resulting active status values will be paginated. The default page length is 100 active status entries per response, also the page size limit. The links specified in the result can be used to page through the total result space.",
        "operationId": "Products-V5__getActiveStatus",
        "parameters": [
          {
            "description": "search for product variations by their sku value. Use this if your sku values contain slash ('/') or dot ('.') characters.",
            "explode": true,
            "in": "query",
            "name": "sku",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their productReference value",
            "explode": true,
            "in": "query",
            "name": "productReference",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their category value",
            "explode": true,
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their brand ID value",
            "explode": true,
            "in": "query",
            "name": "brandId",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "proposed limit for the number of active status values per response page (at most 100)",
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActiveStatusListResponse__Products-V5"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the active status of the specified product variations. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "Read active status",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products/active-status?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products/active-status?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Returns a process-id to query results. The limit for the number of product active statuses in one request is 500.",
        "operationId": "Products-V5__updateActiveStatus",
        "parameters": [
          {
            "description": "Holds the optional client side update request timestamp, in ISO DateTime format",
            "example": "2000-10-31T01:30:10.000-05:00",
            "explode": false,
            "in": "header",
            "name": "X-Request-Timestamp",
            "required": false,
            "schema": {
              "format": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActiveStatusListRequest__Products-V5"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductProcessProgress__Products-V5"
                }
              }
            },
            "description": "The request for a modification of the active status of the specified product variation was accepted and will be executed"
          },
          "400": {
            "description": "The request body is no valid JSON document"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to modify the active status of the specified product variations. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "Update active status",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v5/products/active-status \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'X-Request-Timestamp: 2000-10-31T01:30:10.000-05:00' \\\n  --header 'content-type: application/json' \\\n  --data '{\"status\":[{\"sku\":\"82388894-5883-488\",\"active\":true}]}'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '{\"status\":[{\"sku\":\"82388894-5883-488\",\"active\":true}]}' |  \\\n  http POST https://api.otto.market/v5/products/active-status \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  X-Request-Timestamp:2000-10-31T01:30:10.000-05:00 \\\n  content-type:application/json"
          }
        ]
      }
    },
    "/v5/products/brands": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          },
          {
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          }
        ],
        "description": "Read the list of brands that are known on the Otto market place. The list of brands will be paginated. Brands consist of a name, a brand Id, a (link to a) logo and a boolean useable that lets you know wheter you are allowed to set up variants with this brand on the Otto Marketplace. The default page length is 100 entries per response, the page size upper limit is 1000. The links specified in the result can be used to page through the total result space. Note that there will be no prev link on the first page and no next link on the last page.",
        "operationId": "Products-V5__getBrands",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrandListResponse__Products-V5"
                }
              }
            },
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read a list of known brands. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "List of allowed brands",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products/brands?page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'If-Match: 7da7a728f910' \\\n  --header 'If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT' \\\n  --header 'If-None-Match: 7da7a728f910' \\\n  --header 'If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products/brands?page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  If-Match:7da7a728f910 \\\n  If-Modified-Since:'Sat, 29 Oct 1994 19:43:31 GMT' \\\n  If-None-Match:7da7a728f910 \\\n  If-Unmodified-Since:'Sat, 29 Oct 1994 19:43:31 GMT'"
          }
        ]
      }
    },
    "/v5/products/categories": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Returns product categories and associated attributes of the OTTO market place. The total number of results could be limited by specifying query parameters. Generally the resulting product categories values will be paginated. The default page length is 100 product categories per response, the page size limit is 2000. The links specified in the result can be used to page through the total result space.",
        "operationId": "Products-V5__getCategoryGroups",
        "parameters": [
          {
            "description": "the number (starting with 0) of the page, that should be delivered.",
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "proposed limit for the number of product categories per response page  (at most 2000)",
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "read a single category",
            "explode": true,
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryGroups__Products-V5"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the product categories. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The category could not be found."
          }
        },
        "summary": "Read product categories",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products/categories?page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&category=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products/categories?page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&category=SOME_STRING_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/content-changes": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Read the content changes for all your product variations within a specific time period. You can also use this endpoint to read the content changes for more than one variation or if the sku value contains slash ('/') or dot ('.') characters, so that you cannot use the other endpoint with one dedicated sku value in the path. The resulting content changes will be paginated. The default page length is 100 entries per response, which also is the page size upper limit. The links specified in the result can be used to page through the total result space.",
        "operationId": "Products-V5__getContentChanges2",
        "parameters": [
          {
            "description": "search for product variations by their sku value. Use this to query for multiple variations or if your sku values contain slash ('/') or dot ('.') characters. You may separate multiple sku values by comma or state each one with a &sku= in front of the value. Please note that if you like to query for a single variation whose value contains a comma you have to add one empty &sku= at the end of the query string or use the other endpoint.",
            "explode": true,
            "in": "query",
            "name": "sku",
            "required": false,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "style": "form"
          },
          {
            "description": "search for content changes from this time on. The maxmimum and default value is 28 days before now. Future values can be specified, but lead to an empty result.",
            "explode": true,
            "in": "query",
            "name": "fromDate",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            },
            "style": "form"
          },
          {
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "proposed limit for the number of content changes per response page (at most 100)",
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentChangesApiResult__Products-V5"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read content changes of the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product variation with the specified sku value could not be found."
          }
        },
        "summary": "Read content changes within time period",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products/content-changes?sku=SOME_ARRAY_VALUE&fromDate=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products/content-changes?sku=SOME_ARRAY_VALUE&fromDate=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/marketplace-status": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "The total number of results could be limited by specifying query parameters. Generally the resulting marketplace status will be paginated. The default page length is 100 product variations per response, also the page size limit. The links specified in the result can be used to page through the total result space.",
        "operationId": "Products-V5__getMarketPlaceStatusList",
        "parameters": [
          {
            "description": "search for product variations by their sku value. Use this if your sku values contain slash ('/') or dot ('.') characters.",
            "explode": true,
            "in": "query",
            "name": "sku",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search marketplace status by the productReference value of the related product variations",
            "explode": true,
            "in": "query",
            "name": "productReference",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search marketplace status by the category value of the related product variations",
            "explode": true,
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search marketplace status by the brand ID value of the related product variations",
            "explode": true,
            "in": "query",
            "name": "brandId",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search marketplace status for a time range starting with the given date (in ISO8601, like '2021-10-09T07:52:19.820Z' or '2021-10-09T07:52:19.820+01:00')",
            "explode": true,
            "in": "query",
            "name": "fromDate",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "page to load",
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "proposed limit for the number of marketplace status per response page (at most 1000)",
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "only include items that match any of the provided status",
            "explode": true,
            "in": "query",
            "name": "marketPlaceStatus",
            "required": false,
            "schema": {
              "items": {
                "enum": [
                  "PENDING",
                  "ONLINE",
                  "RESTRICTED",
                  "REJECTED",
                  "INACTIVE"
                ],
                "type": "string"
              },
              "type": "array"
            },
            "style": "form"
          },
          {
            "description": "Define the sort order of the resulting entries. Available values are 'desc' for 'newest lastModified first' and 'asc' for 'oldest lastModified first' - default is 'desc'",
            "explode": true,
            "in": "query",
            "name": "sort-order",
            "required": false,
            "schema": {
              "enum": [
                "desc",
                "asc"
              ],
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketPlaceStatusApiResult__Products-V5"
                }
              }
            },
            "description": "successful operation"
          },
          "304": {
            "description": "The request included an If-Modified-Since header, but the resource has not been modified since the specified date."
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified marketplace status. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "Read marketplace status of product variations",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products/marketplace-status?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&fromDate=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&marketPlaceStatus=SOME_ARRAY_VALUE&sort-order=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products/marketplace-status?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&fromDate=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&marketPlaceStatus=SOME_ARRAY_VALUE&sort-order=SOME_STRING_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/prices": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Read your product variations prices. The total number of results could be limited by specifying query parameters. Generally the resulting product variations will be paginated. The default page length is 100 product variations per response, also the page size limit. The links specified in the result can be used to page through the total result space.",
        "operationId": "Products-V5__getProductVariationPrices",
        "parameters": [
          {
            "description": "search for product variations by their sku value. Use this if your sku values contain slash ('/') or dot ('.') characters.",
            "explode": true,
            "in": "query",
            "name": "sku",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their productReference value",
            "explode": true,
            "in": "query",
            "name": "productReference",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their category value",
            "explode": true,
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their ID value",
            "explode": true,
            "in": "query",
            "name": "brandId",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "proposed limit for the number of products per response page (at most 100)",
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceApiResult__Products-V5"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations prices. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "Read product variations prices",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products/prices?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products/prices?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Update your product variation prices and get a process-id to query results. The limit for the number of product variation prices in one request is 500.",
        "operationId": "Products-V5__updateProductVariationPrices",
        "parameters": [
          {
            "description": "Holds the optional client side update request timestamp, in ISO DateTime format",
            "example": "2000-10-31T01:30:10.000-05:00",
            "explode": false,
            "in": "header",
            "name": "X-Request-Timestamp",
            "required": false,
            "schema": {
              "format": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/SkuPricing__Products-V5"
                },
                "type": "array"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductProcessProgress__Products-V5"
                }
              }
            },
            "description": "The request for a modification of the specified product variation prices was accepted and will be executed"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to modify the specified product variation prices. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "Update product variation prices",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v5/products/prices \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'X-Request-Timestamp: 2000-10-31T01:30:10.000-05:00' \\\n  --header 'content-type: application/json' \\\n  --data '[{\"sku\":\"string\",\"standardPrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"sale\":{\"salePrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"startDate\":\"2019-10-19T09:30:00Z\",\"endDate\":\"2019-10-19T09:30:00Z\"}}]'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '[{\"sku\":\"string\",\"standardPrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"sale\":{\"salePrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"startDate\":\"2019-10-19T09:30:00Z\",\"endDate\":\"2019-10-19T09:30:00Z\"}}]' |  \\\n  http POST https://api.otto.market/v5/products/prices \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  X-Request-Timestamp:2000-10-31T01:30:10.000-05:00 \\\n  content-type:application/json"
          }
        ]
      }
    },
    "/v5/products/update-tasks/{processUuid}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "The response will contain the links for the different parts of the result: products successfully created or updated, products with failures, products which did not contain any changes compared to the last sent version.",
        "operationId": "Products-V5__progressByProcessId",
        "parameters": [
          {
            "description": "search for a product data delivery result by its processUuid.",
            "explode": false,
            "in": "path",
            "name": "processUuid",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductProcessProgress__Products-V5"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product data delivery results with the specified processUuid value could not be found."
          }
        },
        "summary": "Request the results of a product data delivery",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/update-tasks/{processUuid}/failed": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Request the failed products of the product data delivery with the linked processUuid. The response will contain a list of failed products with associated error details.",
        "operationId": "Products-V5__failedByProcessId",
        "parameters": [
          {
            "description": "search for the failed products of a product data delivery identified by its processUuid.",
            "explode": false,
            "in": "path",
            "name": "processUuid",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductProcessResult__Products-V5"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product data delivery results with the specified processUuid value could not be found."
          }
        },
        "summary": "List failed products of a product data delivery",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D/failed \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D/failed \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/update-tasks/{processUuid}/succeeded": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Request the succeeded products of the product data delivery with the linked processUuid. The response will contain a list of successfully delivered products.",
        "operationId": "Products-V5__succeededByProcessId",
        "parameters": [
          {
            "description": "search for the succeeded products of a product data delivery identified by its processUuid.",
            "explode": false,
            "in": "path",
            "name": "processUuid",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductProcessResult__Products-V5"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product data delivery results with the specified processUuid value could not be found."
          }
        },
        "summary": "List succeeded products of a product data delivery",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D/succeeded \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D/succeeded \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/update-tasks/{processUuid}/unchanged": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Request the unchanged products of the product data delivery with the linked processUuid. The response will contain a list of unchanged products.",
        "operationId": "Products-V5__unchangedByProcessId",
        "parameters": [
          {
            "description": "search for the unchanged products of a product data delivery identified by its processUuid.",
            "explode": false,
            "in": "path",
            "name": "processUuid",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductProcessResult__Products-V5"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product data delivery results with the specified processUuid value could not be found."
          }
        },
        "summary": "List unchanged products of a product data delivery",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D/unchanged \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D/unchanged \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/{sku}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Returns a single product variation by SKU.",
        "operationId": "Products-V5__getProductVariation",
        "parameters": [
          {
            "description": "search for a product variation by its SKU value",
            "explode": false,
            "in": "path",
            "name": "sku",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductVariation__Products-V5"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product variation with the specified sku value could not be found."
          }
        },
        "summary": "Read a single product variation",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/%7Bsku%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/%7Bsku%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/{sku}/active-status": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Returns active status of the requested product variation by SKU.",
        "operationId": "Products-V5__getVariationActiveStatus",
        "parameters": [
          {
            "description": "search for a product variation by its SKU value",
            "explode": false,
            "in": "path",
            "name": "sku",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActiveStatus__Products-V5"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the active status of the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product variation with the specified sku value could not be found."
          }
        },
        "summary": "Read the active status of a single product variation",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/%7Bsku%7D/active-status \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/%7Bsku%7D/active-status \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/{sku}/content-changes": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Returns the content changes info for a single product variation within a specific time period. The resulting content changes will be paginated. The default page length is 100 entries per response, also the page size limit. The links specified in the result can be used to page through the total result space.",
        "operationId": "Products-V5__getContentChanges",
        "parameters": [
          {
            "description": "search for a product variation by its SKU value",
            "explode": false,
            "in": "path",
            "name": "sku",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          },
          {
            "description": "search for content changes from this ISO8601 date on. The maxmimum and default value is 28 days before now. Future values can be specified, but lead to an empty result.",
            "explode": true,
            "in": "query",
            "name": "fromDate",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            },
            "style": "form"
          },
          {
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "proposed limit for the number of entries per response page (at most 100)",
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentChangesApiResult__Products-V5"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the content changes of the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product variation with the specified sku value could not be found."
          }
        },
        "summary": "Read content changes for a single product variation",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products/%7Bsku%7D/content-changes?fromDate=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products/%7Bsku%7D/content-changes?fromDate=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/{sku}/marketplace-status": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Returns marketplace status for a single product variation by SKU.",
        "operationId": "Products-V5__getMarketPlaceStatus",
        "parameters": [
          {
            "description": "search for a marketplace status by its SKU value",
            "explode": false,
            "in": "path",
            "name": "sku",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketPlaceStatus__Products-V5"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified marketplace status. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product variation with the specified sku value could not be found."
          }
        },
        "summary": "Read marketplace status for a single product variation",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/%7Bsku%7D/marketplace-status \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/%7Bsku%7D/marketplace-status \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/{sku}/prices": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Read the price data of a single product variation.",
        "operationId": "Products-V5__getProductVariationPrice",
        "parameters": [
          {
            "description": "search for a product variation by its SKU value",
            "explode": false,
            "in": "path",
            "name": "sku",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkuPricing__Products-V5"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product variation with the specified sku value could not be found."
          }
        },
        "summary": "Read a single product variation price",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/%7Bsku%7D/prices \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/%7Bsku%7D/prices \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v4/orders": {
      "get": {
        "description": "Retrieve orders sorted by order date from oldest to newest. The number of returned orders is limited to 128; cursor based pagination is supported.",
        "operationId": "Orders-V4__findPartnerOrders",
        "parameters": [
          {
            "description": "Defines earliest change date (ISO 8601) the returned orders should have",
            "example": "2019-08-01T01:00:00+02:00",
            "in": "query",
            "name": "fromDate",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only orders newer than the date specified (ISO 8601) will be returned",
            "example": "2020-07-01T00:00:00+02:00",
            "in": "query",
            "name": "fromOrderDate",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only orders older than the date specified (ISO 8601) will be returned",
            "example": "2020-07-01T23:59:59+02:00",
            "in": "query",
            "name": "toOrderDate",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "<br>ANNOUNCED: Orders with at least one position item in state ANNOUNCED<br>PROCESSABLE: Orders with at least one position item in state PROCESSABLE and none in ANNOUNCED<br>SENT: Orders with at least one position item in state SENT and none in either ANNOUNCED or PROCESSABLE<br>RETURNED: Orders with at least one position item in state RETURNED and none in either ANNOUNCED, PROCESSABLE, or SENT<br>CANCELLED_BY_PARTNER: Orders with at least one position item in state CANCELLED_BY_PARTNER<br>CANCELLED_BY_MARKETPLACE: Orders with at least one position item in state CANCELLED_BY_MARKETPLACE<br><br>If no state is provided, orders in all possible states are returned.<br>Several values can be passed; it will return a combination of these states without duplicates.<br>Also see parameter 'mode'.",
            "example": "PROCESSABLE&fulfillmentStatus=CANCELLED_BY_MARKETPLACE",
            "explode": true,
            "in": "query",
            "name": "fulfillmentStatus",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ANNOUNCED",
                "PROCESSABLE",
                "SENT",
                "RETURNED",
                "CANCELLED_BY_PARTNER",
                "CANCELLED_BY_MARKETPLACE"
              ]
            },
            "style": "form"
          },
          {
            "description": "The maximum amount of orders to return. The maximum value is 256",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort result by 'orderColumnType' in ASCending or DESCending order",
            "in": "query",
            "name": "orderDirection",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The column on which to apply 'orderDirection' parameter",
            "in": "query",
            "name": "orderColumnType",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "In search mode AT_LEAST_ONE orders with at least one  position item in given 'fulfillmentStatus' will always be returned",
            "in": "query",
            "name": "mode",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Cursor for paging requests. If a next cursor is provided, the only other request parameter being considered is 'limit'<br><br>Note: Only the cursor string is required - not the whole link",
            "example": "eyJmZiI6MTU5NDg5NDQ3MTA1OCwicGlmIjoiNDcxM",
            "in": "query",
            "name": "nextcursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "List of orders": {
                    "description": "List of orders",
                    "summary": "List of orders",
                    "value": {
                      "resources": [
                        {
                          "salesOrderId": "8bd8a7cb-1ce1-4024-bdec-1c60de3c8006",
                          "orderNumber": "bwvdp9gcyk",
                          "orderDate": "2021-03-31T09:45:52.313+0000",
                          "lastModifiedDate": "2021-03-31T10:30:52.434+0000",
                          "positionItems": [
                            {
                              "positionItemId": "41d73c45-6177-4230-8907-4ffafd09064e",
                              "fulfillmentStatus": "ANNOUNCED",
                              "dealName": "Deal der Woche 52",
                              "dealId": "b65ef4bc-8f28-4fdd-a14a-b30b98449698",
                              "itemValueGrossPrice": {
                                "amount": 13.37,
                                "currency": "EUR"
                              },
                              "product": {
                                "sku": "P4567",
                                "productTitle": "Red T-Shirt",
                                "articleNumber": "X2G1D12FT8",
                                "ean": "4606938545083",
                                "vatRate": 19
                              }
                            }
                          ],
                          "orderLifecycleInformation": {
                            "lifecycleChangeDate": "2021-03-31T10:30:52.433+0000"
                          },
                          "payment": {
                            "paymentMethod": "PREPAYMENT"
                          },
                          "initialDeliveryFees": [
                            {
                              "name": "DELIVERY_FEE_STANDARD",
                              "deliveryFeeAmount": {
                                "amount": 5.95,
                                "currency": "EUR"
                              },
                              "positionItemIds": [
                                "41d73c45-6177-4230-8907-4ffafd09064e"
                              ],
                              "vatRate": 19
                            }
                          ],
                          "links": [
                            {
                              "rel": "self",
                              "href": "/v4/orders/8bd8a7cb-1ce1-4024-bdec-1c60de3c8006"
                            }
                          ]
                        },
                        {
                          "salesOrderId": "02807492-35b8-46a1-9493-ac34ba006da0",
                          "orderNumber": "cwvcp4gvyy",
                          "orderDate": "2021-04-15T12:19:49.007+0000",
                          "lastModifiedDate": "2021-04-15T13:04:51.121+0000",
                          "positionItems": [
                            {
                              "positionItemId": "50606ce0-fb36-47af-b5f2-30e18da115b4",
                              "fulfillmentStatus": "ANNOUNCED",
                              "itemValueGrossPrice": {
                                "amount": 11.49,
                                "currency": "EUR"
                              },
                              "product": {
                                "sku": "T7781",
                                "productTitle": "Blue Socks",
                                "articleNumber": "Y7G1D73GH1",
                                "vatRate": 19
                              }
                            }
                          ],
                          "orderLifecycleInformation": {
                            "lifecycleChangeDate": "2021-04-15T13:04:51.112+0000"
                          },
                          "payment": {
                            "paymentMethod": "PREPAYMENT"
                          },
                          "initialDeliveryFees": [
                            {
                              "name": "DELIVERY_FEE_STANDARD",
                              "deliveryFeeAmount": {
                                "amount": 5.95,
                                "currency": "EUR"
                              },
                              "positionItemIds": [
                                "50606ce0-fb36-47af-b5f2-30e18da115b4"
                              ],
                              "vatRate": 19
                            }
                          ],
                          "links": [
                            {
                              "rel": "self",
                              "href": "/v4/orders/02807492-35b8-46a1-9493-ac34ba006da0"
                            }
                          ]
                        }
                      ],
                      "links": [
                        {
                          "rel": "next",
                          "href": "/v4/orders?nextcursor=QlVDS0VUOjE1NjgyMjAwNDg2MTM6NDcxMTpBTk5PVU5DRUQ6&limit=128"
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/PartnerOrderList__Orders-V4"
                }
              }
            },
            "description": "Successfully retrieved sales orders"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "Bad request": {
                    "description": "Bad request",
                    "summary": "Response for invalid requests",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Bad Request",
                          "detail": "Cannot parse request - please check query parameters and/or body"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Request is invalid"
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "Auth failed": {
                    "description": "Auth failed",
                    "summary": "Response for invalid credentials",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Unauthorized",
                          "detail": "No proper credentials were provided"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Authentication failed"
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "Authorization missing": {
                    "description": "Authorization missing",
                    "summary": "Response for missing access role rights",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Forbidden",
                          "detail": "No permission to access specified resource(s)"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "orders"
            ]
          }
        ],
        "summary": "List of orders filtered by fulfillment state",
        "tags": [
          "Orders V4"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v4/orders?fromDate=2019-08-01T01%3A00%3A00%2B02%3A00&fromOrderDate=2020-07-01T00%3A00%3A00%2B02%3A00&toOrderDate=2020-07-01T23%3A59%3A59%2B02%3A00&fulfillmentStatus=PROCESSABLE%26fulfillmentStatus%3DCANCELLED_BY_MARKETPLACE&limit=SOME_STRING_VALUE&orderDirection=SOME_STRING_VALUE&orderColumnType=SOME_STRING_VALUE&mode=SOME_STRING_VALUE&nextcursor=eyJmZiI6MTU5NDg5NDQ3MTA1OCwicGlmIjoiNDcxM' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v4/orders?fromDate=2019-08-01T01%3A00%3A00%2B02%3A00&fromOrderDate=2020-07-01T00%3A00%3A00%2B02%3A00&toOrderDate=2020-07-01T23%3A59%3A59%2B02%3A00&fulfillmentStatus=PROCESSABLE%26fulfillmentStatus%3DCANCELLED_BY_MARKETPLACE&limit=SOME_STRING_VALUE&orderDirection=SOME_STRING_VALUE&orderColumnType=SOME_STRING_VALUE&mode=SOME_STRING_VALUE&nextcursor=eyJmZiI6MTU5NDg5NDQ3MTA1OCwicGlmIjoiNDcxM' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v4/orders/{orderNumber}": {
      "get": {
        "description": "Fetch a single order by its unique order number.",
        "operationId": "Orders-V4__getPartnerOrderByOrderNumber",
        "parameters": [
          {
            "in": "path",
            "name": "orderNumber",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "Announced order": {
                    "description": "Announced order",
                    "summary": "An order in state ANNOUNCED",
                    "value": {
                      "salesOrderId": "8bd8a7cb-1ce1-4024-bdec-1c60de3c8006",
                      "orderNumber": "bwvdp9gcyk",
                      "orderDate": "2021-03-31T09:45:52.313+0000",
                      "lastModifiedDate": "2021-03-31T10:30:52.434+0000",
                      "positionItems": [
                        {
                          "positionItemId": "41d73c45-6177-4230-8907-4ffafd09064e",
                          "fulfillmentStatus": "ANNOUNCED",
                          "dealName": "Deal der Woche 52",
                          "dealId": "b65ef4bc-8f28-4fdd-a14a-b30b98449698",
                          "itemValueGrossPrice": {
                            "amount": 13.37,
                            "currency": "EUR"
                          },
                          "product": {
                            "sku": "P4567",
                            "productTitle": "Red T-Shirt",
                            "articleNumber": "X2G1D12FT8",
                            "ean": "4606938545083",
                            "vatRate": 19
                          }
                        }
                      ],
                      "orderLifecycleInformation": {
                        "lifecycleChangeDate": "2021-03-31T10:30:52.433+0000"
                      },
                      "payment": {
                        "paymentMethod": "PREPAYMENT"
                      },
                      "initialDeliveryFees": [
                        {
                          "name": "DELIVERY_FEE_STANDARD",
                          "deliveryFeeAmount": {
                            "amount": 5.95,
                            "currency": "EUR"
                          },
                          "positionItemIds": [
                            "41d73c45-6177-4230-8907-4ffafd09064e"
                          ],
                          "vatRate": 19
                        }
                      ],
                      "links": [
                        {
                          "rel": "self",
                          "href": "/v4/orders/8bd8a7cb-1ce1-4024-bdec-1c60de3c8006"
                        }
                      ]
                    }
                  },
                  "Processable order": {
                    "description": "Processable order",
                    "summary": "An order in state PROCESSABLE",
                    "value": {
                      "salesOrderId": "a24c37c0-768f-44e6-9f5c-1e4430d4ab32",
                      "orderNumber": "bwqwz7s8cx",
                      "orderDate": "2021-04-16T05:59:01.255+0000",
                      "lastModifiedDate": "2021-04-16T06:44:02.249+0000",
                      "positionItems": [
                        {
                          "positionItemId": "8a88e387-a03d-4cc9-99d9-3de6a5c038bd",
                          "fulfillmentStatus": "PROCESSABLE",
                          "dealName": "Deal der Woche 52",
                          "dealId": "b65ef4bc-8f28-4fdd-a14a-b30b98449698",
                          "expectedDeliveryDate": "2021-04-21T12:00:00.000+02:00",
                          "itemValueGrossPrice": {
                            "amount": 23.95,
                            "currency": "EUR"
                          },
                          "product": {
                            "sku": "V0533",
                            "productTitle": "White Shirt",
                            "articleNumber": "1563237W3",
                            "vatRate": 19
                          }
                        },
                        {
                          "positionItemId": "43111eca-18e5-4fe4-846c-2009d3643495",
                          "fulfillmentStatus": "CANCELLED_BY_PARTNER",
                          "dealName": "Deal der Woche 52",
                          "dealId": "b65ef4bc-8f28-4fdd-a14a-b30b98449698",
                          "expectedDeliveryDate": "2021-04-21T12:00:00.000+02:00",
                          "cancellationReason": "CANCELLED_ON_PARTNER_WISH",
                          "itemValueGrossPrice": {
                            "amount": 99.2,
                            "currency": "EUR"
                          },
                          "product": {
                            "sku": "A7567",
                            "productTitle": "Black Jeans",
                            "articleNumber": "333207J4",
                            "vatRate": 19
                          }
                        },
                        {
                          "positionItemId": "e4b96f70-495a-423c-877e-8886b5532ba4",
                          "fulfillmentStatus": "PROCESSABLE",
                          "expectedDeliveryDate": "2021-04-24T12:00:00.000+02:00",
                          "itemValueGrossPrice": {
                            "amount": 15.7,
                            "currency": "EUR"
                          },
                          "product": {
                            "sku": "L8456",
                            "productTitle": "Red Socks",
                            "articleNumber": "4561237P3",
                            "vatRate": 19
                          }
                        }
                      ],
                      "orderLifecycleInformation": {
                        "lifecycleChangeDate": "2021-04-16T06:44:02.249+0000"
                      },
                      "payment": {
                        "paymentMethod": "PREPAYMENT"
                      },
                      "initialDeliveryFees": [
                        {
                          "name": "DELIVERY_FEE_STANDARD",
                          "deliveryFeeAmount": {
                            "amount": 5.95,
                            "currency": "EUR"
                          },
                          "positionItemIds": [
                            "8a88e387-a03d-4cc9-99d9-3de6a5c038bd",
                            "43111eca-18e5-4fe4-846c-2009d3643495",
                            "e4b96f70-495a-423c-877e-8886b5532ba4"
                          ],
                          "vatRate": 19
                        }
                      ],
                      "deliveryAddress": {
                        "salutation": "MS",
                        "title": "Dr.",
                        "lastName": "Mustermann",
                        "firstName": "Max",
                        "street": "Werner-Otto-Str.",
                        "addition": "Hinterm Haus",
                        "houseNumber": "960",
                        "city": "Hamburg",
                        "zipCode": "22179",
                        "countryCode": "DEU",
                        "phoneNumber": "040 12345678",
                        "email": "test@example.com"
                      },
                      "invoiceAddress": {
                        "salutation": "MS",
                        "title": "Dr.",
                        "lastName": "Mustermann",
                        "firstName": "Max",
                        "street": "Werner-Otto-Str.",
                        "addition": "Hinterm Haus",
                        "houseNumber": "960",
                        "city": "Hamburg",
                        "zipCode": "22179",
                        "countryCode": "DEU"
                      },
                      "links": [
                        {
                          "rel": "self",
                          "href": "/v4/orders/a24c37c0-768f-44e6-9f5c-1e4430d4ab32"
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/PartnerOrder__Orders-V4"
                }
              }
            },
            "description": "Successfully found the requested sales order"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "Bad request": {
                    "description": "Bad request",
                    "summary": "Response for invalid requests",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Bad Request",
                          "detail": "Cannot parse request - please check query parameters and/or body"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Request is invalid"
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "Auth failed": {
                    "description": "Auth failed",
                    "summary": "Response for invalid credentials",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Unauthorized",
                          "detail": "No proper credentials were provided"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Authentication failed"
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "Authorization missing": {
                    "description": "Authorization missing",
                    "summary": "Response for missing access role rights",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Forbidden",
                          "detail": "No permission to access specified resource(s)"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "Not found": {
                    "description": "Not found",
                    "summary": "Resource 'Not Found' response",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Not Found",
                          "detail": "The specified resource(s) could not be found"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Order with given orderNumber not found"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "orders"
            ]
          }
        ],
        "summary": "Get an order via order number",
        "tags": [
          "Orders V4"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v4/orders/%7BorderNumber%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v4/orders/%7BorderNumber%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v4/orders/{salesOrderId}": {
      "get": {
        "description": "Fetch a single order by its unique sales order id.",
        "operationId": "Orders-V4__getPartnerOrderBySalesOrderId",
        "parameters": [
          {
            "in": "path",
            "name": "salesOrderId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "Announced order": {
                    "description": "Announced order",
                    "summary": "An order in state ANNOUNCED",
                    "value": {
                      "salesOrderId": "8bd8a7cb-1ce1-4024-bdec-1c60de3c8006",
                      "orderNumber": "bwvdp9gcyk",
                      "orderDate": "2021-03-31T09:45:52.313+0000",
                      "lastModifiedDate": "2021-03-31T10:30:52.434+0000",
                      "positionItems": [
                        {
                          "positionItemId": "41d73c45-6177-4230-8907-4ffafd09064e",
                          "fulfillmentStatus": "ANNOUNCED",
                          "dealName": "Deal der Woche 52",
                          "dealId": "b65ef4bc-8f28-4fdd-a14a-b30b98449698",
                          "itemValueGrossPrice": {
                            "amount": 13.37,
                            "currency": "EUR"
                          },
                          "product": {
                            "sku": "P4567",
                            "productTitle": "Red T-Shirt",
                            "articleNumber": "X2G1D12FT8",
                            "ean": "4606938545083",
                            "vatRate": 19
                          }
                        }
                      ],
                      "orderLifecycleInformation": {
                        "lifecycleChangeDate": "2021-03-31T10:30:52.433+0000"
                      },
                      "payment": {
                        "paymentMethod": "PREPAYMENT"
                      },
                      "initialDeliveryFees": [
                        {
                          "name": "DELIVERY_FEE_STANDARD",
                          "deliveryFeeAmount": {
                            "amount": 5.95,
                            "currency": "EUR"
                          },
                          "positionItemIds": [
                            "41d73c45-6177-4230-8907-4ffafd09064e"
                          ],
                          "vatRate": 19
                        }
                      ],
                      "links": [
                        {
                          "rel": "self",
                          "href": "/v4/orders/8bd8a7cb-1ce1-4024-bdec-1c60de3c8006"
                        }
                      ]
                    }
                  },
                  "Processable order": {
                    "description": "Processable order",
                    "summary": "An order in state PROCESSABLE",
                    "value": {
                      "salesOrderId": "a24c37c0-768f-44e6-9f5c-1e4430d4ab32",
                      "orderNumber": "bwqwz7s8cx",
                      "orderDate": "2021-04-16T05:59:01.255+0000",
                      "lastModifiedDate": "2021-04-16T06:44:02.249+0000",
                      "positionItems": [
                        {
                          "positionItemId": "8a88e387-a03d-4cc9-99d9-3de6a5c038bd",
                          "fulfillmentStatus": "PROCESSABLE",
                          "dealName": "Deal der Woche 52",
                          "dealId": "b65ef4bc-8f28-4fdd-a14a-b30b98449698",
                          "expectedDeliveryDate": "2021-04-21T12:00:00.000+02:00",
                          "itemValueGrossPrice": {
                            "amount": 23.95,
                            "currency": "EUR"
                          },
                          "product": {
                            "sku": "V0533",
                            "productTitle": "White Shirt",
                            "articleNumber": "1563237W3",
                            "vatRate": 19
                          }
                        },
                        {
                          "positionItemId": "43111eca-18e5-4fe4-846c-2009d3643495",
                          "fulfillmentStatus": "CANCELLED_BY_PARTNER",
                          "dealName": "Deal der Woche 52",
                          "dealId": "b65ef4bc-8f28-4fdd-a14a-b30b98449698",
                          "expectedDeliveryDate": "2021-04-21T12:00:00.000+02:00",
                          "cancellationReason": "CANCELLED_ON_PARTNER_WISH",
                          "itemValueGrossPrice": {
                            "amount": 99.2,
                            "currency": "EUR"
                          },
                          "product": {
                            "sku": "A7567",
                            "productTitle": "Black Jeans",
                            "articleNumber": "333207J4",
                            "vatRate": 19
                          }
                        },
                        {
                          "positionItemId": "e4b96f70-495a-423c-877e-8886b5532ba4",
                          "fulfillmentStatus": "PROCESSABLE",
                          "expectedDeliveryDate": "2021-04-24T12:00:00.000+02:00",
                          "itemValueGrossPrice": {
                            "amount": 15.7,
                            "currency": "EUR"
                          },
                          "product": {
                            "sku": "L8456",
                            "productTitle": "Red Socks",
                            "articleNumber": "4561237P3",
                            "vatRate": 19
                          }
                        }
                      ],
                      "orderLifecycleInformation": {
                        "lifecycleChangeDate": "2021-04-16T06:44:02.249+0000"
                      },
                      "payment": {
                        "paymentMethod": "PREPAYMENT"
                      },
                      "initialDeliveryFees": [
                        {
                          "name": "DELIVERY_FEE_STANDARD",
                          "deliveryFeeAmount": {
                            "amount": 5.95,
                            "currency": "EUR"
                          },
                          "positionItemIds": [
                            "8a88e387-a03d-4cc9-99d9-3de6a5c038bd",
                            "43111eca-18e5-4fe4-846c-2009d3643495",
                            "e4b96f70-495a-423c-877e-8886b5532ba4"
                          ],
                          "vatRate": 19
                        }
                      ],
                      "deliveryAddress": {
                        "salutation": "MS",
                        "title": "Dr.",
                        "lastName": "Mustermann",
                        "firstName": "Max",
                        "street": "Werner-Otto-Str.",
                        "addition": "Hinterm Haus",
                        "houseNumber": "960",
                        "city": "Hamburg",
                        "zipCode": "22179",
                        "countryCode": "DEU",
                        "phoneNumber": "040 12345678",
                        "email": "test@example.com"
                      },
                      "invoiceAddress": {
                        "salutation": "MS",
                        "title": "Dr.",
                        "lastName": "Mustermann",
                        "firstName": "Max",
                        "street": "Werner-Otto-Str.",
                        "addition": "Hinterm Haus",
                        "houseNumber": "960",
                        "city": "Hamburg",
                        "zipCode": "22179",
                        "countryCode": "DEU"
                      },
                      "links": [
                        {
                          "rel": "self",
                          "href": "/v4/orders/a24c37c0-768f-44e6-9f5c-1e4430d4ab32"
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/PartnerOrder__Orders-V4"
                }
              }
            },
            "description": "Successfully found the requested sales order"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "Bad request": {
                    "description": "Bad request",
                    "summary": "Response for invalid requests",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Bad Request",
                          "detail": "Cannot parse request - please check query parameters and/or body"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Request is invalid"
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "Auth failed": {
                    "description": "Auth failed",
                    "summary": "Response for invalid credentials",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Unauthorized",
                          "detail": "No proper credentials were provided"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Authentication failed"
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "Authorization missing": {
                    "description": "Authorization missing",
                    "summary": "Response for missing access role rights",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Forbidden",
                          "detail": "No permission to access specified resource(s)"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "Not found": {
                    "description": "Not found",
                    "summary": "Resource 'Not Found' response",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Not Found",
                          "detail": "The specified resource(s) could not be found"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Order with given salesOrderId not found"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "orders"
            ]
          }
        ],
        "summary": "Get an order via sales order id",
        "tags": [
          "Orders V4"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v4/orders/%7BsalesOrderId%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v4/orders/%7BsalesOrderId%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v4/orders/{salesOrderId}/cancellation": {
      "post": {
        "description": "Allows to cancel all position items of one or more orders by salesOrderId.<br>Note: Only position items in state PROCESSABLE can be cancelled. Position items in different states will be ignored. If no position item can be cancelled the operation will respond with a conflict error message.",
        "operationId": "Orders-V4__cancelPartnerOrders",
        "parameters": [
          {
            "description": "The salesOrderIds of the orders to cancel",
            "in": "path",
            "name": "salesOrderId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "The request was accepted - update will be processed asynchronously"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "Bad request": {
                    "description": "Bad request",
                    "summary": "Response for invalid requests",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Bad Request",
                          "detail": "Cannot parse request - please check query parameters and/or body"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Request is invalid"
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "Auth failed": {
                    "description": "Auth failed",
                    "summary": "Response for invalid credentials",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Unauthorized",
                          "detail": "No proper credentials were provided"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Authentication failed"
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "Authorization missing": {
                    "description": "Authorization missing",
                    "summary": "Response for missing access role rights",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Forbidden",
                          "detail": "No permission to access specified resource(s)"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "Not found": {
                    "description": "Not found",
                    "summary": "Resource 'Not Found' response",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Not Found",
                          "detail": "The specified resource(s) could not be found"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "At least one of the given salesOrderIds is unknown"
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "errors": [
                    {
                      "path": "/v4/orders/9404a8e2-8203-43de-889d-b5d733b6698f/cancellation",
                      "title": "Conflict",
                      "detail": "No position item in sales order [9404a8e2-8203-43de-889d-b5d733b6698f] has a fulfillment status that can be changed to [CANCELLED_BY_PARTNER]. Fulfillment status needs to be [PROCESSABLE]."
                    }
                  ]
                }
              }
            },
            "description": "There was a conflict while trying to cancel"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "orders"
            ]
          }
        ],
        "summary": "Cancel all position items of an order",
        "tags": [
          "Orders V4"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v4/orders/%7BsalesOrderId%7D/cancellation \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http POST https://api.otto.market/v4/orders/%7BsalesOrderId%7D/cancellation \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v4/orders/{salesOrderId}/positionItems/{positionItemIds}/cancellation": {
      "post": {
        "description": "Allows to cancel specific position items of an order by salesOrderId and positionItemIds.<br>Note: Only position items in state PROCESSABLE can be cancelled. Position items in state CANCELLED_BY_PARTNER will be ignored. If any position item is in a different state the operation will leave the whole order unchanged and respond with a conflict error message.",
        "operationId": "Orders-V4__cancelPartnerOrderPositionItems",
        "parameters": [
          {
            "description": "The salesOrderId of the order",
            "in": "path",
            "name": "salesOrderId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The positionItemIds of the order to cancel",
            "in": "path",
            "name": "positionItemIds",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "The request was accepted - update will be processed asynchronously"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "Bad request": {
                    "description": "Bad request",
                    "summary": "Response for invalid requests",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Bad Request",
                          "detail": "Cannot parse request - please check query parameters and/or body"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Request is invalid"
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "Auth failed": {
                    "description": "Auth failed",
                    "summary": "Response for invalid credentials",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Unauthorized",
                          "detail": "No proper credentials were provided"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Authentication failed"
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "Authorization missing": {
                    "description": "Authorization missing",
                    "summary": "Response for missing access role rights",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Forbidden",
                          "detail": "No permission to access specified resource(s)"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "Not found": {
                    "description": "Not found",
                    "summary": "Resource 'Not Found' response",
                    "value": {
                      "errors": [
                        {
                          "path": "/v4/orders/...",
                          "title": "Not Found",
                          "detail": "The specified resource(s) could not be found"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Order with given salesOrderId not found or order did not contain one of the given positionItemIds"
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "errors": [
                    {
                      "path": "/v4/orders/9404a8e2-8203-43de-889d-b5d733b6698f/positionItems/ac50ec7f-0e0a-404f-a06d-524cfc2374ba/cancellation",
                      "title": "Conflict",
                      "detail": "Fulfillment status of position item [ac50ec7f-0e0a-404f-a06d-524cfc2374ba] in sales order [9404a8e2-8203-43de-889d-b5d733b6698f] can't be changed from [ANNOUNCED] to [CANCELLED_BY_PARTNER]. Fulfillment status needs to be [PROCESSABLE]."
                    }
                  ]
                }
              }
            },
            "description": "There was a conflict while trying to cancel"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "orders"
            ]
          }
        ],
        "summary": "Cancel specific position items of an order",
        "tags": [
          "Orders V4"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v4/orders/%7BsalesOrderId%7D/positionItems/%7BpositionItemIds%7D/cancellation \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http POST https://api.otto.market/v4/orders/%7BsalesOrderId%7D/positionItems/%7BpositionItemIds%7D/cancellation \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/return-shipments": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "shipments"
            ]
          }
        ],
        "tags": [
          "ReturnShipments V1"
        ],
        "summary": "Retrieve returnShipments.",
        "description": "This endpoint can be used to retrieve the returned shipments for a given authorized partner.",
        "operationId": "ReturnShipments-V1__listReturnShipmentsUsingGET",
        "parameters": [
          {
            "name": "datefrom",
            "description": "ReturnShipments which are announced after this date or had an status update after this date will be returned for the partner which is determined from the authorization token. The date is considered as UTC.",
            "in": "query",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of returnShipments to be returned in each response.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          },
          {
            "name": "next",
            "in": "query",
            "description": "The cursor which points to the next returnShipment that should be queried. It is used to paginate the results.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReturnShipmentList__ReturnShipments-V1"
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequest__ReturnShipments-V1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized__ReturnShipments-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorGetReturnShipmentList__ReturnShipments-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v1/return-shipments?datefrom=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&next=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v1/return-shipments?datefrom=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&next=SOME_STRING_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/return-shipments/carriers/{carrier}/trackingnumbers/{trackingNumber}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "shipments"
            ]
          }
        ],
        "tags": [
          "ReturnShipments V1"
        ],
        "summary": "Retrieve returnShipment by carrier and tracking number.",
        "description": "This endpoint can be used to retrieve a returned shipment by carrier and tracking number.",
        "operationId": "ReturnShipments-V1__returnShipmentByCarrierAndTrackingNumberUsingGET",
        "parameters": [
          {
            "name": "carrier",
            "in": "path",
            "description": "The carrier of the returnShipment.",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "DHL",
                "GLS",
                "HERMES",
                "HES"
              ]
            }
          },
          {
            "name": "trackingNumber",
            "in": "path",
            "description": "The tracking number of the returnShipment assigned by the carrier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReturnShipment__ReturnShipments-V1"
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequest__ReturnShipments-V1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized__ReturnShipments-V1"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForbiddenGetReturnShipmentByTrackingNumber__ReturnShipments-V1"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundGetReturnShipmentByTrackingNumber__ReturnShipments-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorGetReturnShipmentByTrackingNumber__ReturnShipments-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v1/return-shipments/carriers/%7Bcarrier%7D/trackingnumbers/%7BtrackingNumber%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v1/return-shipments/carriers/%7Bcarrier%7D/trackingnumbers/%7BtrackingNumber%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/return-shipments/{returnShipmentId}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "shipments"
            ]
          }
        ],
        "tags": [
          "ReturnShipments V1"
        ],
        "summary": "Retrieve returnShipments by returnShipment ID.",
        "description": "This endpoint can be used to retrieve a returned shipment by OTTO internal returnShipment ID.",
        "operationId": "ReturnShipments-V1__returnShipmentUsingGET",
        "parameters": [
          {
            "name": "returnShipmentId",
            "in": "path",
            "description": "Internal return shipment identifier assigned by OTTO Market.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReturnShipment__ReturnShipments-V1"
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequest__ReturnShipments-V1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized__ReturnShipments-V1"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForbiddenGetReturnShipmentByReturnShipmentId__ReturnShipments-V1"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundGetReturnShipmentByReturnShipmentId__ReturnShipments-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorGetReturnShipmentByReturnShipmentId__ReturnShipments-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v1/return-shipments/%7BreturnShipmentId%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v1/return-shipments/%7BreturnShipmentId%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/shipments": {
      "post": {
        "security": [
          {
            "bearerAuth": [
              "shipments"
            ]
          }
        ],
        "tags": [
          "Shipments V1"
        ],
        "summary": "Create a shipment and mark the position items as sent.",
        "description": "This endpoint should be used to create a shipment with a list of position items.",
        "operationId": "Shipments-V1__createdAndSentShipmentUsingPOST",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateShipmentRequest__Shipments-V1"
              },
              "examples": {
                "parcel delivery request": {
                  "$ref": "#/components/examples/ShipmentCreateRequestParcelDelivery__Shipments-V1"
                },
                "forwarder delivery request": {
                  "$ref": "#/components/examples/ShipmentCreateRequestForwarderDelivery__Shipments-V1"
                },
                "forwarder delivery request (no trackingNumber available)": {
                  "$ref": "#/components/examples/ShipmentCreateRequestForwarderDeliveryWithoutTrackingNo__Shipments-V1"
                }
              }
            }
          },
          "description": "request",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Resource created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateShipmentResponse__Shipments-V1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequest__Shipments-V1"
                },
                "examples": {
                  "insufficent permissions": {
                    "$ref": "#/components/examples/ShipmentCreateInsufficientPermissionsResponse__Shipments-V1"
                  },
                  "tracking key mandatory": {
                    "$ref": "#/components/examples/ShipmentCreateTrackingKeyMandatoryResponse__Shipments-V1"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized__Shipments-V1"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Conflict__Shipments-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError__Shipments-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v1/shipments \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"trackingKey\":{\"carrier\":\"HERMES\",\"trackingNumber\":\"H1234567890123456789\"},\"shipDate\":\"2019-10-11T07:49:12.642Z\",\"shipFromAddress\":{\"city\":\"Dresden\",\"countryCode\":\"DEU\",\"zipCode\":\"01067\"},\"positionItems\":[{\"positionItemId\":\"b01b8ad2-a49c-47fc-8ade-8629ec000020\",\"salesOrderId\":\"bf43d748-f13d-49ca-b2e2-1824e9000021\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"}},{\"positionItemId\":\"b01b8ad2-a49c-47fc-8ade-8629ec000022\",\"salesOrderId\":\"bf43d748-f13d-49ca-b2e2-1824e9000021\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"}}]}'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '{\"trackingKey\":{\"carrier\":\"HERMES\",\"trackingNumber\":\"H1234567890123456789\"},\"shipDate\":\"2019-10-11T07:49:12.642Z\",\"shipFromAddress\":{\"city\":\"Dresden\",\"countryCode\":\"DEU\",\"zipCode\":\"01067\"},\"positionItems\":[{\"positionItemId\":\"b01b8ad2-a49c-47fc-8ade-8629ec000020\",\"salesOrderId\":\"bf43d748-f13d-49ca-b2e2-1824e9000021\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"}},{\"positionItemId\":\"b01b8ad2-a49c-47fc-8ade-8629ec000022\",\"salesOrderId\":\"bf43d748-f13d-49ca-b2e2-1824e9000021\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"}}]}' |  \\\n  http POST https://api.otto.market/v1/shipments \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  content-type:application/json"
          }
        ]
      },
      "get": {
        "security": [
          {
            "bearerAuth": [
              "shipments"
            ]
          }
        ],
        "tags": [
          "Shipments V1"
        ],
        "summary": "Retrieve shipments.",
        "description": "This endpoint can be used to retrieve the shipments for a given authorized partner.",
        "operationId": "Shipments-V1__listShipmentsUsingGET",
        "parameters": [
          {
            "name": "datefrom",
            "description": "Shipments created from this date onwards for the given authorized partner will be returned. Can be specified as either an ISO date (`YYYY-MM-DD`), which will be inferred to be in UTC time, or an ISO date time (`YYYY-MM-DD'T'HH:mm:ss.SSSXXX`).\n\nFor example, `2024-01-10` would be interpreted the same as `2024-01-10T00:00:00Z`.",
            "in": "query",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string",
              "format": "YYYY-MM-DD['T'HH:mm:ss.SSSXXX]"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of shipments to be returned in each response.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          },
          {
            "name": "next",
            "in": "query",
            "description": "The cursor which points to the next shipment that should be queried. It is used to paginate the results.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShipmentList__Shipments-V1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized__Shipments-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorGetShipmentList__Shipments-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v1/shipments?datefrom=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&next=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v1/shipments?datefrom=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&next=SOME_STRING_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/shipments/carriers/{carrier}/trackingnumbers/{trackingNumber}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "shipments"
            ]
          }
        ],
        "tags": [
          "Shipments V1"
        ],
        "summary": "Retrieve shipment by carrier and tracking number.",
        "description": "This endpoint can be used to retrieve a shipment by carrier and tracking number.",
        "operationId": "Shipments-V1__shipmentByCarrierAndTrackingNumberUsingGET",
        "parameters": [
          {
            "name": "carrier",
            "in": "path",
            "description": "The carrier of the shipment.",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "DHL",
                "DHL_EXPRESS",
                "DPD",
                "GLS",
                "HERMES",
                "UPS",
                "ABIKS",
                "AJ",
                "AJE",
                "BTW",
                "BURSPED",
                "CARGOLINE",
                "CARGOBOARD",
                "CTL",
                "DACHSER",
                "DB_SCHENKER",
                "DHL_FREIGHT",
                "DHL_HOME_DELIVERY",
                "DSV",
                "ECE",
                "EMONS",
                "EPH_DIREKT",
                "FEDEX",
                "FROEDE",
                "GEIS",
                "GEL",
                "GRASSL",
                "GUETTLER",
                "HASENAUER",
                "HEPPNER",
                "HELLMANN",
                "HES",
                "HEUEL",
                "IDS",
                "ISG",
                "KIESSLING",
                "KOCH",
                "KUEHNE_NAGEL",
                "LOGWIN",
                "MEYER_JUMBO",
                "MIRJAN",
                "ORCARGO",
                "PALLETWAYS",
                "PEISKER",
                "RABEN_LOGISTIK",
                "REIMER",
                "REITHMEIER",
                "RHENUS",
                "RIECK",
                "SCHMIDT_GEVELSBERG",
                "SCHOCKEMOEHLE",
                "SIEVERS",
                "SIMPLE_LOGISTIK",
                "SPEEDTRANS",
                "SPT",
                "VERHOEK",
                "WEISS",
                "ZUFALL",
                "OTHER_FORWARDER"
              ]
            }
          },
          {
            "name": "trackingNumber",
            "in": "path",
            "description": "The tracking number of the shipment assigned by the carrier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Shipment__Shipments-V1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized__Shipments-V1"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForbiddenGetShipmentByTrackingNumber__Shipments-V1"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundGetShipmentByTrackingNumber__Shipments-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorGetShipmentByTrackingNumber__Shipments-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v1/shipments/carriers/%7Bcarrier%7D/trackingnumbers/%7BtrackingNumber%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v1/shipments/carriers/%7Bcarrier%7D/trackingnumbers/%7BtrackingNumber%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/shipments/{shipmentId}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "shipments"
            ]
          }
        ],
        "tags": [
          "Shipments V1"
        ],
        "summary": "Retrieve shipment by shipment ID.",
        "description": "This endpoint can be used to retrieve a shipment by OTTO internal shipment ID.",
        "operationId": "Shipments-V1__shipmentUsingGET",
        "parameters": [
          {
            "name": "shipmentId",
            "in": "path",
            "description": "Internal shipment identifier assigned by OTTO Market.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Shipment__Shipments-V1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized__Shipments-V1"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForbiddenGetShipmentByShipmentId__Shipments-V1"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundGetShipmentByShipmentId__Shipments-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorGetShipmentByShipmentId__Shipments-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v1/shipments/%7BshipmentId%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v1/shipments/%7BshipmentId%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/shipments/carriers/{carrier}/trackingnumbers/{trackingNumber}/positionitems": {
      "post": {
        "security": [
          {
            "bearerAuth": [
              "shipments"
            ]
          }
        ],
        "tags": [
          "Shipments V1"
        ],
        "summary": "Correct an existing shipment (add sent items) by carrier and tracking number.",
        "description": "This endpoint allows to update an existing shipment with new position items.",
        "operationId": "Shipments-V1__appendPositionItemsByCarrierAndTrackingNumberUsingPOST",
        "parameters": [
          {
            "name": "carrier",
            "in": "path",
            "description": "The carrier of the shipment.",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "DHL",
                "DHL_EXPRESS",
                "DPD",
                "GLS",
                "HERMES",
                "UPS",
                "ABIKS",
                "AJ",
                "AJE",
                "BTW",
                "BURSPED",
                "CARGOLINE",
                "CARGOBOARD",
                "CTL",
                "DACHSER",
                "DB_SCHENKER",
                "DHL_FREIGHT",
                "DHL_HOME_DELIVERY",
                "DSV",
                "ECE",
                "EMONS",
                "EPH_DIREKT",
                "FEDEX",
                "FROEDE",
                "GEIS",
                "GEL",
                "GRASSL",
                "GUETTLER",
                "HASENAUER",
                "HEPPNER",
                "HELLMANN",
                "HES",
                "HEUEL",
                "IDS",
                "ISG",
                "KIESSLING",
                "KOCH",
                "KUEHNE_NAGEL",
                "LOGWIN",
                "MEYER_JUMBO",
                "MIRJAN",
                "ORCARGO",
                "PALLETWAYS",
                "PEISKER",
                "RABEN_LOGISTIK",
                "REIMER",
                "REITHMEIER",
                "RHENUS",
                "RIECK",
                "SCHMIDT_GEVELSBERG",
                "SCHOCKEMOEHLE",
                "SIEVERS",
                "SIMPLE_LOGISTIK",
                "SPEEDTRANS",
                "SPT",
                "VERHOEK",
                "WEISS",
                "ZUFALL",
                "OTHER_FORWARDER"
              ]
            }
          },
          {
            "name": "trackingNumber",
            "in": "path",
            "description": "The tracking number of the shipment assigned by the carrier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PositionItem__Shipments-V1"
                }
              }
            }
          },
          "description": "The position items included in shipment.",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestAddPositionItemByTrackingNumber__Shipments-V1"
                },
                "examples": {
                  "insufficent permissions": {
                    "$ref": "#/components/examples/ShipmentAddPositionItemsInsufficientPermissionsResponse__Shipments-V1"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized__Shipments-V1"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundAddPositionItemByTrackingNumber__Shipments-V1"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictAddPositionItemByTrackingNumber__Shipments-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorAddPositionItemByTrackingNumber__Shipments-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v1/shipments/carriers/%7Bcarrier%7D/trackingnumbers/%7BtrackingNumber%7D/positionitems \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '[{\"positionItemId\":\"e454dff5-a96f-4e96-9399-710cf59645c2\",\"salesOrderId\":\"a46fb35b-9c77-41c9-af10-2676b756a9af\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"},\"returnAddressCarrierId\":\"7423afd2-e7ab-4bae-ac30-048b7c0346c1\"}]'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '[{\"positionItemId\":\"e454dff5-a96f-4e96-9399-710cf59645c2\",\"salesOrderId\":\"a46fb35b-9c77-41c9-af10-2676b756a9af\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"},\"returnAddressCarrierId\":\"7423afd2-e7ab-4bae-ac30-048b7c0346c1\"}]' |  \\\n  http POST https://api.otto.market/v1/shipments/carriers/%7Bcarrier%7D/trackingnumbers/%7BtrackingNumber%7D/positionitems \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  content-type:application/json"
          }
        ]
      }
    },
    "/v1/shipments/{shipmentId}/positionitems": {
      "post": {
        "security": [
          {
            "bearerAuth": [
              "shipments"
            ]
          }
        ],
        "tags": [
          "Shipments V1"
        ],
        "summary": "Correct an existing shipment (add sent items) by shipment ID.",
        "description": "This endpoint allows to update an existing shipment with new position items. Note that this is just a correction process for shipments where position items are missing. A separate purchase receipt will be generated for the newly added position items.",
        "operationId": "Shipments-V1__appendPositionItemsUsingPOST",
        "parameters": [
          {
            "name": "shipmentId",
            "in": "path",
            "description": "Internal shipment identifier assigned by OTTO Market.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PositionItem__Shipments-V1"
                }
              }
            }
          },
          "description": "positionItems",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestAddPositionItemByShipmentId__Shipments-V1"
                },
                "examples": {
                  "insufficent permissions": {
                    "$ref": "#/components/examples/ShipmentAddPositionItemsInsufficientPermissionsResponse__Shipments-V1"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized__Shipments-V1"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundAddPositionItemByShipmentId__Shipments-V1"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictAddPositionItemByShipmentId__Shipments-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorAddPositionItemByShipmentId__Shipments-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v1/shipments/%7BshipmentId%7D/positionitems \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '[{\"positionItemId\":\"e454dff5-a96f-4e96-9399-710cf59645c2\",\"salesOrderId\":\"a46fb35b-9c77-41c9-af10-2676b756a9af\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"},\"returnAddressCarrierId\":\"7423afd2-e7ab-4bae-ac30-048b7c0346c1\"}]'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '[{\"positionItemId\":\"e454dff5-a96f-4e96-9399-710cf59645c2\",\"salesOrderId\":\"a46fb35b-9c77-41c9-af10-2676b756a9af\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"},\"returnAddressCarrierId\":\"7423afd2-e7ab-4bae-ac30-048b7c0346c1\"}]' |  \\\n  http POST https://api.otto.market/v1/shipments/%7BshipmentId%7D/positionitems \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  content-type:application/json"
          }
        ]
      }
    },
    "/v1/multiparcel-shipments": {
      "post": {
        "security": [
          {
            "bearerAuth": [
              "shipments"
            ]
          }
        ],
        "tags": [
          "Shipments V1"
        ],
        "summary": "Create a multiparcel shipment and mark the position items as sent.",
        "description": "This endpoint is designed for creating a shipment of a single article (position item) that, due to its size or nature, must be shipped in multiple physical parcels, each with its own tracking key.\n\nA typical use case is, for example, a large piece of furniture shipped in 2 to 3 parcels.\n\nPlease note: If you are shipping different articles, each packed in its own parcel with a separate tracking number, each of these shipments must be reported individually via the standard API endpoint for shipment creation. You cannot use the Multiparcel Shipment endpoint for this purpose.\n",
        "operationId": "Shipments-V1__createdAndSentMultiparcelShipmentUsingPOST",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMultiparcelShipmentRequest__Shipments-V1"
              },
              "examples": {
                "multiparcel delivery request": {
                  "$ref": "#/components/examples/MultiparcelShipmentCreateRequestParcelDelivery__Shipments-V1"
                }
              }
            }
          },
          "description": "request",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Resource created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateMultiparcelShipmentResponse__Shipments-V1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequest__Shipments-V1"
                },
                "examples": {
                  "insufficent permissions": {
                    "$ref": "#/components/examples/MultiparcelShipmentCreateInsufficientPermissionsResponse__Shipments-V1"
                  },
                  "tracking key mandatory": {
                    "$ref": "#/components/examples/MultiparcelShipmentCreateTrackingKeyMandatoryResponse__Shipments-V1"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized__Shipments-V1"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictMultiparcel__Shipments-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorMultiparcel__Shipments-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v1/multiparcel-shipments \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '[{\"trackingKey\":{\"carrier\":\"HERMES\",\"trackingNumber\":\"H1234567890123456789\"},\"shipDate\":\"2019-10-11T07:49:12.642Z\",\"shipFromAddress\":{\"city\":\"Dresden\",\"countryCode\":\"DEU\",\"zipCode\":\"01067\"},\"positionItems\":[{\"positionItemId\":\"b01b8ad2-a49c-47fc-8ade-8629ec000020\",\"salesOrderId\":\"bf43d748-f13d-49ca-b2e2-1824e9000021\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"}},{\"positionItemId\":\"b01b8ad2-a49c-47fc-8ade-8629ec000022\",\"salesOrderId\":\"bf43d748-f13d-49ca-b2e2-1824e9000021\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"}}]},{\"trackingKey\":{\"carrier\":\"HERMES\",\"trackingNumber\":\"H1234567890123456789\"},\"shipDate\":\"2019-10-11T07:49:12.642Z\",\"shipFromAddress\":{\"city\":\"Dresden\",\"countryCode\":\"DEU\",\"zipCode\":\"01067\"},\"positionItems\":[{\"positionItemId\":\"b01b8ad2-a49c-47fc-8ade-8629ec000020\",\"salesOrderId\":\"bf43d748-f13d-49ca-b2e2-1824e9000021\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"}},{\"positionItemId\":\"b01b8ad2-a49c-47fc-8ade-8629ec000022\",\"salesOrderId\":\"bf43d748-f13d-49ca-b2e2-1824e9000021\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"}}]}]'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '[{\"trackingKey\":{\"carrier\":\"HERMES\",\"trackingNumber\":\"H1234567890123456789\"},\"shipDate\":\"2019-10-11T07:49:12.642Z\",\"shipFromAddress\":{\"city\":\"Dresden\",\"countryCode\":\"DEU\",\"zipCode\":\"01067\"},\"positionItems\":[{\"positionItemId\":\"b01b8ad2-a49c-47fc-8ade-8629ec000020\",\"salesOrderId\":\"bf43d748-f13d-49ca-b2e2-1824e9000021\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"}},{\"positionItemId\":\"b01b8ad2-a49c-47fc-8ade-8629ec000022\",\"salesOrderId\":\"bf43d748-f13d-49ca-b2e2-1824e9000021\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"}}]},{\"trackingKey\":{\"carrier\":\"HERMES\",\"trackingNumber\":\"H1234567890123456789\"},\"shipDate\":\"2019-10-11T07:49:12.642Z\",\"shipFromAddress\":{\"city\":\"Dresden\",\"countryCode\":\"DEU\",\"zipCode\":\"01067\"},\"positionItems\":[{\"positionItemId\":\"b01b8ad2-a49c-47fc-8ade-8629ec000020\",\"salesOrderId\":\"bf43d748-f13d-49ca-b2e2-1824e9000021\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"}},{\"positionItemId\":\"b01b8ad2-a49c-47fc-8ade-8629ec000022\",\"salesOrderId\":\"bf43d748-f13d-49ca-b2e2-1824e9000021\",\"returnTrackingKey\":{\"carrier\":\"DHL\",\"trackingNumber\":\"577546565072\"}}]}]' |  \\\n  http POST https://api.otto.market/v1/multiparcel-shipments \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  content-type:application/json"
          }
        ]
      }
    },
    "/v3/returns": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "returns"
            ]
          }
        ],
        "tags": [
          "Returns V3"
        ],
        "summary": "Get all the items filtered on return status",
        "description": "The items will be sorted on status modified time in reverse chronological order. Additionally we provide cursor based pagination via next link. This endpoint is limited to at max 50 results per page",
        "operationId": "Returns-V3__getPositionItemsForUsingGETV3",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Page size to limit the number of items returned in the response. Maximum value for limit can 50",
            "required": false,
            "allowEmptyValue": false,
            "example": 10,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number to fetch. This parameter is required to fetch data for specific page number",
            "required": false,
            "allowEmptyValue": false,
            "example": 1,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Return status for which items are being queried for (case-insensitive)",
            "example": "MISDIRECTED",
            "schema": {
              "type": "string",
              "enum": [
                "MISDIRECTED",
                "ANNOUNCED",
                "ACCEPTED",
                "REJECTED"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/PositionItemList__Returns-V3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponseV3__Returns-V3"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized to access"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponseV3__Returns-V3"
                }
              }
            }
          },
          "404": {
            "description": "Item not found",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponseV3__Returns-V3"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponseV3__Returns-V3"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v3/returns?limit=10&page=1&status=MISDIRECTED' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v3/returns?limit=10&page=1&status=MISDIRECTED' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v3/returns/acceptance": {
      "post": {
        "security": [
          {
            "bearerAuth": [
              "returns"
            ]
          }
        ],
        "tags": [
          "Returns V3"
        ],
        "summary": "Accept the return for a sent position item (up to 200 items per request)",
        "operationId": "Returns-V3__receiveAcceptedReturnsV3UsingPOSTV3",
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/AcceptedPartnerReturnV3__Returns-V3"
              }
            }
          },
          "description": "acceptedPartnerReturn",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "207": {
            "description": "Multi status",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/AcceptedReturnMultiStatusResponse__Returns-V3"
                }
              }
            }
          },
          "401": {
            "description": "Invalid token",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponseV3__Returns-V3"
                }
              }
            }
          },
          "413": {
            "description": "Payload too large",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponseV3__Returns-V3"
                }
              }
            }
          },
          "422": {
            "description": "Non-processable",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponseV3__Returns-V3"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponseV3__Returns-V3"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v3/returns/acceptance \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http POST https://api.otto.market/v3/returns/acceptance \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v3/returns/rejection": {
      "post": {
        "security": [
          {
            "bearerAuth": [
              "returns"
            ]
          }
        ],
        "tags": [
          "Returns V3"
        ],
        "summary": "Reject the return for a sent position item (up to 200 items per request)",
        "operationId": "Returns-V3__receiveRejectedReturnsV3UsingPOSTV3",
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/RejectedPartnerReturnV3__Returns-V3"
              }
            }
          },
          "description": "rejectedPartnerReturn",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "207": {
            "description": "Multi status",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/RejectedReturnMultiStatusResponse__Returns-V3"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Invalid token",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponseV3__Returns-V3"
                }
              }
            }
          },
          "413": {
            "description": "Payload too large",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponseV3__Returns-V3"
                }
              }
            }
          },
          "422": {
            "description": "Non-processable",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponseV3__Returns-V3"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponseV3__Returns-V3"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v3/returns/rejection \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http POST https://api.otto.market/v3/returns/rejection \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v3/receipts/{receiptNumber}.pdf": {
      "get": {
        "tags": [
          "Receipts V3"
        ],
        "summary": "Get the PDF document of a specific receipt",
        "description": "Get PDF document by 'receiptNumber'",
        "operationId": "Receipts-V3__getReceiptPdfUsingGET_3",
        "parameters": [
          {
            "name": "receiptNumber",
            "in": "path",
            "description": "ReceiptNumber",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "R-DE-123456789-2020-1507"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the receipt PDF",
            "content": {
              "application/pdf": {}
            }
          },
          "401": {
            "description": "Unauthorized Access"
          },
          "403": {
            "description": "Forbidden Access"
          },
          "404": {
            "description": "Receipt PDF Not Found"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "receipts"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v3/receipts/R-DE-123456789-2020-1507.pdf \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v3/receipts/R-DE-123456789-2020-1507.pdf \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v3/receipts/{receiptNumber}": {
      "get": {
        "tags": [
          "Receipts V3"
        ],
        "summary": "Get the JSON object of a specific receipt",
        "description": "Get JSON object by the 'receiptNumber'",
        "operationId": "Receipts-V3__getReceiptUsingGET_5",
        "parameters": [
          {
            "name": "receiptNumber",
            "in": "path",
            "description": "ReceiptNumber",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "R-DE-123456789-2020-1507"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the receipt",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Receipt__Receipts-V3"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Access"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Receipt Not Found"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "receipts"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v3/receipts/R-DE-123456789-2020-1507 \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v3/receipts/R-DE-123456789-2020-1507 \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v3/receipts": {
      "get": {
        "tags": [
          "Receipts V3"
        ],
        "summary": "Get receipts as list of JSON objects",
        "description": "Retrieve receips sorted by creation date, latest ones first. The number of receipts is limited to 128 results; cursor based pagination is supported.",
        "operationId": "Receipts-V3__getReceiptsUsingGET_5",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Page size to limit the number of receipts returned in the response",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "default": 128
            },
            "example": 128
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number to fetch. This parameter is required to fetch data for specific page number.\n</br>This field is deprecated, please use 'next' parameter",
            "required": false,
            "deprecated": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            },
            "example": 1
          },
          {
            "name": "receiptTypes",
            "in": "query",
            "description": "\nSearch for receipts filtered by multiple receipt types.\n\n</br>PURCHASE - A purchase receipt (also known as an invoice) records the prices charged to the customer at the time of sale.\nThe receipt contains information per order, partner and shipment. It is generated when items are shipped to the customer, so there may be more than one receipt per order.\nShipping costs are charged only once per partner and per order, and are billed with first purchase receipt of this partner order.\nSurcharges imposed by payment provider on the customer for using special payment conditions are not included in the OTTO Market receipts.\n\n</br>REFUND - We distinguish between different types of reimbursement documents. A refund receipt documents a credit note issued to a customer for a refund.\nThis document is currently created when returns are accepted.  In very rare cases, refund receipts may also be created during the cancellation process to reimburse shipping costs for full returns.\n Previous partial refunds will be taken into account.\n\n</br> PARTIAL_REFUND -  We distinguish different types of reimbursement documents. A partial refund receipt documents a credit note issued to a customer without return.\n As a partner, you might offer a customer a partial refund if there is a legitimate complaint to avoid a return.\n\n</br>If no receiptType is provided, receipts  of all existing receiptTypes will be returned.\n\n<b>Please for your own interest, hand over all receipt types you are interested in using the list parameter receiptTypes, so that OTTO Market could add new receipt types without side effects for your own processes.\nUsing this option you can decide by your own when to incorporate new receipt types in your own processes.\n\n\nPlease do not use the possibility of calls without specifying the receiptTypes anymore.</b>",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "PURCHASE",
                  "REFUND",
                  "PARTIAL_REFUND"
                ]
              }
            },
            "example": "PURCHASE,REFUND"
          },
          {
            "name": "from",
            "in": "query",
            "description": "Only receipts with creation date newer or equal than the date specified (yyy-mm-dd in UTC) will be returned.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "example": "2022-08-01"
          },
          {
            "name": "to",
            "in": "query",
            "description": "Only receipts with creation date older or equal than the date specified (yyy-mm-dd in UTC) will be returned.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "example": "2022-08-31"
          },
          {
            "name": "salesOrderId",
            "in": "query",
            "description": "Search for receipts filtered by sales order Id",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "f23eb274-a8a2-4721-a7bc-0d9aa1b11940"
          },
          {
            "name": "next",
            "in": "query",
            "description": "Cursor for paging requests. If a next cursor is provided, the only other request parameter being considered is 'limit'\n\nNote: Only the cursor string is required - not the whole link",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "eyJjcmVhdGlvbkRhdGUiOjE2ODU2OTE1NjUuMTk4MDAwMDAwLCJyZWNlaXB0TnVtYmVyIjoiRS1ERS0xMTg0NzU2OTAtMjAyMy0zNTgxMyJ9"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved list of receipts",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReceiptsList__Receipts-V3"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Access"
          },
          "403": {
            "description": "Forbidden Access"
          },
          "404": {
            "description": "Receipts Not Found"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "receipts"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v3/receipts?limit=128&page=1&receiptTypes=PURCHASE%2CREFUND&from=2022-08-01&to=2022-08-31&salesOrderId=f23eb274-a8a2-4721-a7bc-0d9aa1b11940&next=eyJjcmVhdGlvbkRhdGUiOjE2ODU2OTE1NjUuMTk4MDAwMDAwLCJyZWNlaXB0TnVtYmVyIjoiRS1ERS0xMTg0NzU2OTAtMjAyMy0zNTgxMyJ9' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v3/receipts?limit=128&page=1&receiptTypes=PURCHASE%2CREFUND&from=2022-08-01&to=2022-08-31&salesOrderId=f23eb274-a8a2-4721-a7bc-0d9aa1b11940&next=eyJjcmVhdGlvbkRhdGUiOjE2ODU2OTE1NjUuMTk4MDAwMDAwLCJyZWNlaXB0TnVtYmVyIjoiRS1ERS0xMTg0NzU2OTAtMjAyMy0zNTgxMyJ9' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/price-reductions": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "price-reduction"
            ]
          }
        ],
        "tags": [
          "Price Reductions V1"
        ],
        "summary": "Get all priceReductions",
        "description": "This API can be used to fetch the price reduction for a single positionItemId by providing positionId as a query parameter in the request. If the positionItemId is not specified, then this api would list the price reductions for all your products.",
        "operationId": "Price-Reductions-V1__getAllReductionsForPartner",
        "parameters": [
          {
            "name": "positionItemId",
            "in": "query",
            "description": "positionItemId for which price reductions are to be fetched",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "example": "72d5b4ce-83c0-43aa-9645-0913456648a8"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number to be fetched. Page number should not be less than 1",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Number of positionItemIds to be fetched per page. Limit should not exceed 128",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved price reductions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceReductionsResponse__Price-Reductions-V1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Access"
          },
          "403": {
            "description": "Forbidden Access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForbiddenApplyPriceReduction__Price-Reductions-V1"
                }
              }
            }
          },
          "404": {
            "description": "Price reductions Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundPriceReductionForPositionItemId__Price-Reductions-V1"
                }
              }
            }
          },
          "424": {
            "description": "Unable to retrieve price discounts due to internal errors with downstream systems. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FailedDependency__Price-Reductions-V1"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v1/price-reductions?positionItemId=72d5b4ce-83c0-43aa-9645-0913456648a8&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v1/price-reductions?positionItemId=72d5b4ce-83c0-43aa-9645-0913456648a8&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "security": [
          {
            "bearerAuth": [
              "price-reduction"
            ]
          }
        ],
        "tags": [
          "Price Reductions V1"
        ],
        "summary": "Apply price reduction for a positionItemId",
        "description": "Apply price reduction on a positionItemId",
        "operationId": "Price-Reductions-V1__applyPriceReduction",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerPriceReductionRequest__Price-Reductions-V1"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Successfully applied price reduction for a positionItemId",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcceptedPriceReductionResponse__Price-Reductions-V1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Access"
          },
          "403": {
            "description": "Forbidden Access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForbiddenApplyPriceReduction__Price-Reductions-V1"
                }
              }
            }
          },
          "404": {
            "description": "PositionItemId not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundPositionItemId__Price-Reductions-V1"
                }
              }
            }
          },
          "409": {
            "description": "PositionItemId is not shipped or returned",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictPositionItemId__Price-Reductions-V1"
                }
              }
            }
          },
          "424": {
            "description": "Unable to retrieve price discounts due to internal errors with downstream systems. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FailedDependency__Price-Reductions-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorApplyPriceReduction__Price-Reductions-V1"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v1/price-reductions \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"positionItemId\":\"ef0decec-e5b7-40d8-bd91-9dafec8041a2\",\"salesOrderId\":\"9bd8f312-a044-4003-9f73-706a82f71a8f\",\"priceReduction\":{\"amount\":121.01,\"currency\":\"EUR\"}}'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '{\"positionItemId\":\"ef0decec-e5b7-40d8-bd91-9dafec8041a2\",\"salesOrderId\":\"9bd8f312-a044-4003-9f73-706a82f71a8f\",\"priceReduction\":{\"amount\":121.01,\"currency\":\"EUR\"}}' |  \\\n  http POST https://api.otto.market/v1/price-reductions \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  content-type:application/json"
          }
        ]
      }
    },
    "/v2/returns-warehouse/addresses": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "returns-warehouse-read"
            ]
          }
        ],
        "tags": [
          "ReturnsWarehouse V2"
        ],
        "summary": "get all returnWarehouse addresses",
        "description": "This GET API endpoint is to fetch all return warehouse addresses.\nResponse is by default paginated with default page size of 50.\n",
        "operationId": "ReturnsWarehouse-V2__getAllReturnsWarehouseAddresses",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Page size to limit the number of items returned in the response. Maximum value for limit can 50",
            "required": false,
            "allowEmptyValue": false,
            "example": 10,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50,
              "minimum": 1,
              "maximum": 50
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number to fetch. This parameter is required to fetch data for specific page number",
            "required": false,
            "allowEmptyValue": false,
            "example": 1,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1,
              "minimum": 1
            }
          },
          {
            "name": "returnWarehouseType",
            "in": "query",
            "description": "This parameter allows fetching results filtered by the specified returnWarehouseType.",
            "required": false,
            "allowEmptyValue": false,
            "example": "NATIONAL",
            "schema": {
              "type": "string",
              "enum": [
                "NATIONAL",
                "INTERNATIONAL",
                "INTERNATIONAL_CONSOLIDATION_HUB"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The return warehouse address(s) of the partner",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ReturnsWarehouseAddresses__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request </br> When the limit is either less than 1 or greater than 50",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "The requester does not have the required permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "404": {
            "description": "Not found. </br>1. If request path is not /v2 </br>2. When the requested page does not exist"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "503": {
            "description": "The service is currently unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v2/returns-warehouse/addresses?limit=10&page=1&returnWarehouseType=NATIONAL' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v2/returns-warehouse/addresses?limit=10&page=1&returnWarehouseType=NATIONAL' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "security": [
          {
            "bearerAuth": [
              "returns-warehouse-write"
            ]
          }
        ],
        "tags": [
          "ReturnsWarehouse V2"
        ],
        "summary": "create returnWarehouse address",
        "description": "This POST API endpoint is to add a new return warehouse address.\n\nA new return address will always be created after verifying it is not a duplicate.\n\nThe address will be validated before being saved.\n\nWhen the warehouse type is `INTERNATIONAL_CONSOLIDATION_HUB`, address details should not be entered. \nThe address is automatically set to `Robert-Bosch-Breite 912, 37079 Göttingen, Germany`.\n`INTERNATIONAL_CONSOLIDATION_HUB` cannot be a misdirected/standard address, you need to first enter standard/misdirected address.\n\nIn order to ensure the processing of misdirected returns, we need an address to which these shipments can be delivered.\n",
        "operationId": "ReturnsWarehouse-V2__createReturnWarehouseAddress",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/ReturnsWarehouseAddressRequest__ReturnsWarehouse-V2"
              }
            }
          },
          "description": "return warehouse address",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReturnsWarehouseAddressIdResponse__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request </br>1. If any mandatory attribute is missing in the request body. </br>2. If request body attributes type/format is wrong </br>3. The address validation fails for the provided address. </br>4. If the address is inaccurate, we provide up to three suggested matches as a response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsWithSuggestions__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "The requester does not have the required permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "404": {
            "description": "Not found. </br>1. If request path is not /v2/returns-warehouse/addresses"
          },
          "409": {
            "description": "Conflict. </br>1. When the same address exists for the partner </br>2. When the first parcel address for partner creation is called without isMisdirected=true and with returnWarehouseType set to either NATIONAL or INTERNATIONAL."
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "503": {
            "description": "The service is currently unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v2/returns-warehouse/addresses \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http POST https://api.otto.market/v2/returns-warehouse/addresses \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v2/returns-warehouse/addresses/{returnAddressId}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "returns-warehouse-read"
            ]
          }
        ],
        "tags": [
          "ReturnsWarehouse V2"
        ],
        "summary": "get returnWarehouse address by returnAddressId",
        "description": "This GET API endpoint retrieves the return warehouse address for a partner based on the provided ID.\n",
        "operationId": "ReturnsWarehouse-V2__getReturnsWarehouseAddressById",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "returnAddressId",
            "in": "path",
            "description": "Unique identifier of the returnWarehouse",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The partner's parcel return address, specific to the return warehouse associated with the given returnAddressId.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ReturnsWarehouseAddressWithID__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request </br>1. When given return address id is not in a valid UUID format",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "The requester does not have the required permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "404": {
            "description": "Not found. </br>1. If request path is not /v2/returns-warehouse/addresses </br>2. If requested address id is not found"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "503": {
            "description": "The service is currently unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "put": {
        "security": [
          {
            "bearerAuth": [
              "returns-warehouse-write"
            ]
          }
        ],
        "tags": [
          "ReturnsWarehouse V2"
        ],
        "summary": "update returnWarehouse address by returnAddressId",
        "description": "This PUT API endpoint is to update a return warehouse address.\n\nAddress will be validated before being saved.\n\nWhen the warehouse type is `INTERNATIONAL_CONSOLIDATION_HUB`, address details should not be entered. \nThe address is automatically set to `Robert-Bosch-Breite 912, 37079 Göttingen, Germany`.\n\nThe country and warehouse type of the return warehouse address cannot be updated. Zipcode changes are restricted for addresses linked to a DHL carrier.\n",
        "operationId": "ReturnsWarehouse-V2__updateReturnWarehouseAddress",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "returnAddressId",
            "in": "path",
            "description": "Unique identifier of the returnWarehouse",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/ReturnsWarehouseAddressRequest__ReturnsWarehouse-V2"
              }
            }
          },
          "description": "return warehouse address update request",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request </br>1. If any mandatory attribute is missing in the request body. </br>2. If request body attributes type/format is wrong </br>3. The address validation fails for the provided address. </br>4. If the address is inaccurate, we provide up to three suggested matches as a response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsWithSuggestions__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden. The requester does not have the required permissions"
          },
          "404": {
            "description": "Not found. </br>1. If the path is incorrect or the resource does not exist"
          },
          "409": {
            "description": "Conflict. </br>1. When the same return warehouse address exists for the partner </br>2. When the first parcel address of a partner creation called without `isMisdirected=true`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable entity </br> 1. When the address validation from Lightfish returns Unprocessable entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsWithSuggestions__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "503": {
            "description": "The service is currently unavailable"
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PUT \\\n  --url https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http PUT https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "delete": {
        "security": [
          {
            "bearerAuth": [
              "returns-warehouse-write"
            ]
          }
        ],
        "tags": [
          "ReturnsWarehouse V2"
        ],
        "summary": "delete returnWarehouse address by returnAddressId",
        "description": "This DELETE API endpoint is to delete a return warehouse address by id.\n\n**Deleting a misdirected address is not allowed.**\n**Deleting an address which has one or more return carrier(s) is not allowed.**\n",
        "operationId": "ReturnsWarehouse-V2__deleteReturnsWarehouseAddressById",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "returnAddressId",
            "in": "path",
            "description": "Unique identifier of the returnWarehouse",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request </br>When given return address id is not in a valid UUID format",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "The requester does not have the required permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "404": {
            "description": "Not found. </br>1. If request path is not /v2/returns-warehouse/addresses/{returnAddressId} </br>2. If the return address id not found"
          },
          "409": {
            "description": "Conflict. </br>1. When one or more return carriers are present for the given returnAddressId </br>2. When partner has only one return warehouse address for the partner </br>3. When partner tries to delete the misdirected address",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "503": {
            "description": "The service is currently unavailable"
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request DELETE \\\n  --url https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http DELETE https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v2/returns-warehouse/addresses/{returnAddressId}/carriers": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "returns-warehouse-read"
            ]
          }
        ],
        "tags": [
          "ReturnsWarehouse V2"
        ],
        "summary": "get returnWarehouse Carriers by returnAddressId",
        "description": "This GET API endpoint retrieves the return warehouse carriers associated with a partner for a specific address, identified by the Return Address ID.\n",
        "operationId": "ReturnsWarehouse-V2__getReturnsWarehouseCarriersByReturnAddressId",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "returnAddressId",
            "in": "path",
            "description": "Unique identifier of the returnWarehouse",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The carriers linked to the partner's return address are retrieved as return warehouse carriers for the specified Return Address ID.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ReturnsWarehouseCarriers__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request </br>1. When given return address id is not in a valid UUID format",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden, probably the partner Id is not present is the token claims"
          },
          "404": {
            "description": "Not found. </br>1. If request path is not /v2/returns-warehouse/addresses </br>2. If requested return warehouse address id not found"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "503": {
            "description": "The service is currently unavailable"
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D/carriers \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D/carriers \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "security": [
          {
            "bearerAuth": [
              "returns-warehouse-write"
            ]
          }
        ],
        "tags": [
          "ReturnsWarehouse V2"
        ],
        "summary": "create returnCarrier for returnWarehouse address",
        "description": "This POST API endpoint is used to add a return carrier and its associated routing codes to a specified return warehouse.\n\nTo add a carrier, the return warehouse must be identified by its ID. \n\nEnsure that a return warehouse address has been created before adding a parcel return carrier. \nThe warehouse address can be created using the `create a parcel return address` (POST ).\n\nThe Return Address ID must be provided as a path parameter.\n",
        "operationId": "ReturnsWarehouse-V2__createReturnsWarehouseCarrier",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "returnAddressId",
            "in": "path",
            "description": "Unique identifier of the returnWarehouse",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/ReturnsWarehouseCarrierRequest__ReturnsWarehouse-V2"
              }
            }
          },
          "description": "return warehouse carrier post request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReturnCarrierResponse__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request </br>1. If any mandatory attribute is missing in the request body. </br>2. If the type or format of request body attributes is incorrect. </br>3. If return carrier codes are not provided when the carrier is DHL or GLS.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "The requester does not have the required permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "404": {
            "description": "Not found </br>1. If request path is not /v2/returns-warehouse/addresses. </br>2. If requested return warehouse address id not found."
          },
          "409": {
            "description": "Conflict </br> If same return carrier already attached to the given return address"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "503": {
            "description": "The service is currently unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D/carriers \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http POST https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D/carriers \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v2/returns-warehouse/addresses/{returnAddressId}/carriers/{returnAddressCarrierId}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "returns-warehouse-read"
            ]
          }
        ],
        "tags": [
          "ReturnsWarehouse V2"
        ],
        "summary": "get returnWarehouse Carriers by returnAddressCarrierId",
        "description": "This GET API endpoint retrieves a specific return warehouse carrier of a partner using the Return Address ID and Carrier ID.\n",
        "operationId": "ReturnsWarehouse-V2__getReturnsWarehouseCarriersByReturnAddressIdAndReturnAddressCarrierId",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "returnAddressId",
            "in": "path",
            "description": "Unique identifier of the returnWarehouse",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "returnAddressCarrierId",
            "in": "path",
            "description": "Unique identifier for each returnCarrier, which is linked with a returnWarehouse",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The carrier associated with the specified Return Address ID and Carrier ID of the partner. </br>It retrieves the return warehouse carrier for the given Return Address ID and Return Address Carrier ID.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ReturnsWarehouseCarrier__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request </br> When given return address id is not in a valid UUID format",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden, probably the partner Id is not present is the token claims"
          },
          "404": {
            "description": "Not found. </br>1. If request path is not /v2/returns-warehouse/addresses </br>2. If requested return warehouse address id not found"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "503": {
            "description": "The service is currently unavailable"
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D/carriers/%7BreturnAddressCarrierId%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D/carriers/%7BreturnAddressCarrierId%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "put": {
        "security": [
          {
            "bearerAuth": [
              "returns-warehouse-write"
            ]
          }
        ],
        "tags": [
          "ReturnsWarehouse V2"
        ],
        "summary": "update returnCarrier for returnWarehouse address",
        "description": "This PUT API endpoint is used to update an existing parcel return carrier by its ID.\n\nThe PUT request will only allow updating the carrier codes.\n\n**Note that the HERMES carrier does not have carrier codes, so it cannot be updated.**\n",
        "operationId": "ReturnsWarehouse-V2__updateParcelReturnCarrier",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "returnAddressId",
            "in": "path",
            "description": "Unique identifier of the returnWarehouse",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "returnAddressCarrierId",
            "in": "path",
            "description": "Unique identifier for each returnCarrier, which is linked with a returnWarehouse",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/ReturnsWarehouseCarrierRequest__ReturnsWarehouse-V2"
              }
            }
          },
          "description": "return warehouse carrier update request",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request. </br>1. If the provided return address carrier ID is not in a valid UUID format. </br>2. If the provided return address ID is not in a valid UUID format. </br>3. If the provided return address ID does not match the one in the database. </br>4. If the return carrier is invalid, not one of `DHL` or `GLS`. </br>5. If any mandatory attribute is missing in the request body. </br>6. f the type or format of request body attributes is incorrect. </br>7. If an update request is made for a Hermes carrier.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "The requester does not have the required permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "404": {
            "description": "Not found. </br>1. If request path is not /v2/returns-warehouse/addresses </br>2. If requested return warehouse address id not found </br>3. If requested return warehouse carrier id not found"
          },
          "409": {
            "description": "Conflict. </br> When the \"create carrier\" endpoint is called with existing carrier codes for the return carrier, as duplicate carrier codes are not allowed for the same return carrier."
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "503": {
            "description": "The service is currently unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PUT \\\n  --url https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D/carriers/%7BreturnAddressCarrierId%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http PUT https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D/carriers/%7BreturnAddressCarrierId%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "delete": {
        "security": [
          {
            "bearerAuth": [
              "returns-warehouse-write"
            ]
          }
        ],
        "tags": [
          "ReturnsWarehouse V2"
        ],
        "summary": "delete returnCarrier for returnWarehouse address",
        "description": "This DELETE API endpoint is to delete a return address carrier by id.\n",
        "operationId": "ReturnsWarehouse-V2__deleteParcelReturnCarrier",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "returnAddressId",
            "in": "path",
            "description": "Unique identifier of the returnWarehouse",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "returnAddressCarrierId",
            "in": "path",
            "description": "Unique identifier for each returnCarrier, which is linked with a returnWarehouse",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request </br>When given return address carrier id is not in a valid UUID format",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "The requester does not have the required permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "404": {
            "description": "Not found </br>1. If request path is not /v2/returns-warehouse/addresses </br>2. If requested return warehouse address id not found </br>2. If requested return warehouse address carrier id not found"
          },
          "409": {
            "description": "Conflict </br>1. When partner has only one return carrier"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          },
          "503": {
            "description": "The service is currently unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails__ReturnsWarehouse-V2"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request DELETE \\\n  --url https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D/carriers/%7BreturnAddressCarrierId%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http DELETE https://api.otto.market/v2/returns-warehouse/addresses/%7BreturnAddressId%7D/carriers/%7BreturnAddressCarrierId%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/shipping-profiles": {
      "post": {
        "security": [
          {
            "bearerAuth": [
              "shipping-profiles"
            ]
          }
        ],
        "tags": [
          "ShippingProfiles V1"
        ],
        "summary": "Create shipping profile",
        "description": "This POST API endpoint is to create shipping profile API\nPOST will always create a new shipping profile after ensuring it is not a duplicate for a partner.\n",
        "operationId": "ShippingProfiles-V1__createShippingProfile",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/CreateShippingProfileRequest__ShippingProfiles-V1"
              }
            }
          },
          "description": "create shipping profile",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateShippingProfileResponse__ShippingProfiles-V1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request </br>1. If any of the mandatory attribute missing in request body </br>2. If request body attributes type/format is wrong </br>3. Shipping Profile name is already existing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponseForBadRequest__ShippingProfiles-V1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden (Invalid token)",
            "content": {
              "application/json": {
                "examples": {
                  "Token is invalid": {
                    "value": {
                      "message": "Forbidden"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found (URL is invalid)",
            "content": {
              "application/json": {
                "examples": {
                  "URL is invalid": {
                    "value": {
                      "message": "Not Found"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. </br> When the same shipping profile ID already exists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponseForConflict__ShippingProfiles-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIInternalServerErrorResponse__ShippingProfiles-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v1/shipping-profiles \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http POST https://api.otto.market/v1/shipping-profiles \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "get": {
        "security": [
          {
            "bearerAuth": [
              "shipping-profiles"
            ]
          }
        ],
        "tags": [
          "ShippingProfiles V1"
        ],
        "summary": "Get all shipping profiles from a partner",
        "description": "This GET API endpoint is to get all shipping profiles for a partner.\nResponse is by default paginated with default page size of 300.\n",
        "operationId": "ShippingProfiles-V1__getShippingProfiles",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Page number to fetch. This parameter is required to fetch data for specific page number",
            "required": false,
            "allowEmptyValue": false,
            "example": "YtNTQzZS01YTBiLWFjNzktNTNmNWRiMTMyZTQ0fFJldmlld0RlbW8x",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The shipping profile(s) of the partner",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/GetAllShippingProfilesResponse__ShippingProfiles-V1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden (Invalid token)",
            "content": {
              "application/json": {
                "examples": {
                  "Token is invalid": {
                    "value": {
                      "message": "Forbidden"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found (URL is invalid)",
            "content": {
              "application/json": {
                "examples": {
                  "URL is invalid": {
                    "value": {
                      "message": "Not Found"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIInternalServerErrorResponse__ShippingProfiles-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v1/shipping-profiles?cursor=YtNTQzZS01YTBiLWFjNzktNTNmNWRiMTMyZTQ0fFJldmlld0RlbW8x' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v1/shipping-profiles?cursor=YtNTQzZS01YTBiLWFjNzktNTNmNWRiMTMyZTQ0fFJldmlld0RlbW8x' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/shipping-profiles/{shippingProfileId}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "shipping-profiles"
            ]
          }
        ],
        "tags": [
          "ShippingProfiles V1"
        ],
        "summary": "Get shipping profile by shipping profile id",
        "description": "This GET API endpoint is to get a shipping profile of the partner by shipping profile id.\n",
        "operationId": "ShippingProfiles-V1__getShippingProfileById",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "shippingProfileId",
            "in": "path",
            "description": "The id of the shipping profile in uuid4 format and the primaryKey for mapping a Profile to a SKU",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string",
              "example": "7bec0ef6-4324-4fa4-9fbf-42c54659ef04"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The shipping profile details of the partner </br>1. specific shipping profile for the given shippingProfileId",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/GetShippingProfileResponse__ShippingProfiles-V1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden (Invalid token)",
            "content": {
              "application/json": {
                "examples": {
                  "Token is invalid": {
                    "value": {
                      "message": "Forbidden"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. </br>1. If request path is not /v1/shipping-profiles </br>2. If shipping profile id is not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponseForNotFound__ShippingProfiles-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIInternalServerErrorResponse__ShippingProfiles-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v1/shipping-profiles/7bec0ef6-4324-4fa4-9fbf-42c54659ef04 \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v1/shipping-profiles/7bec0ef6-4324-4fa4-9fbf-42c54659ef04 \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "put": {
        "security": [
          {
            "bearerAuth": [
              "shipping-profiles"
            ]
          }
        ],
        "tags": [
          "ShippingProfiles V1"
        ],
        "summary": "Update shipping profile",
        "description": "This PUT API endpoint is to update a shipping profile\nPUT will always take an shipping profile and update it. \ndeliveryType field cannot be updated\n",
        "operationId": "ShippingProfiles-V1__updateShippingProfile",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "shippingProfileId",
            "in": "path",
            "description": "The id of the shipping profile in uuid4 format and the primaryKey for mapping a Profile to a SKU",
            "required": true,
            "allowEmptyValue": false,
            "example": "7bec0ef6-4324-4fa4-9fbf-42c54659ef04",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/CreateShippingProfileRequest__ShippingProfiles-V1"
              }
            }
          },
          "description": "shipping profile request",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request </br>1. If any of the mandatory attribute missing in request body </br>2. If request body attributes type/format is wrong </br>3. Shipping Profile name is already existing </br>4. Trying to update deliveryType",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponseForBadRequest__ShippingProfiles-V1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden (Invalid token)",
            "content": {
              "application/json": {
                "examples": {
                  "Token is invalid": {
                    "value": {
                      "message": "Forbidden"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. </br>1. If request path is not /v1/shipping-profiles </br>2. If shipping profile ID is not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponseForNotFound__ShippingProfiles-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIInternalServerErrorResponse__ShippingProfiles-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PUT \\\n  --url https://api.otto.market/v1/shipping-profiles/7bec0ef6-4324-4fa4-9fbf-42c54659ef04 \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http PUT https://api.otto.market/v1/shipping-profiles/7bec0ef6-4324-4fa4-9fbf-42c54659ef04 \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "delete": {
        "security": [
          {
            "bearerAuth": [
              "shipping-profiles"
            ]
          }
        ],
        "tags": [
          "ShippingProfiles V1"
        ],
        "summary": "Delete shipping profile",
        "description": "This DELETE API endpoint is to delete a shipping profile by id.\n",
        "operationId": "ShippingProfiles-V1__deleteShippingProfile",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "shippingProfileId",
            "in": "path",
            "description": "The id of the shipping profile in uuid4 format and the primaryKey for mapping a Profile to a SKU",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string",
              "example": "7bec0ef6-4324-4fa4-9fbf-42c54659ef04"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden (Invalid token)",
            "content": {
              "application/json": {
                "examples": {
                  "Token is invalid": {
                    "value": {
                      "message": "Forbidden"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. </br>1. If request path is not /v1/shipping-profiles </br>2. If the shipping profile id not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponseForNotFound__ShippingProfiles-V1"
                }
              }
            }
          },
          "412": {
            "description": "Pre condition failed. </br>1. When only one shipping profile exist for a partner. A partner must have at least one shipping profile </br>2. When shipping profile has one or more skus linked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponseForPrecondition__ShippingProfiles-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIInternalServerErrorResponse__ShippingProfiles-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request DELETE \\\n  --url https://api.otto.market/v1/shipping-profiles/7bec0ef6-4324-4fa4-9fbf-42c54659ef04 \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http DELETE https://api.otto.market/v1/shipping-profiles/7bec0ef6-4324-4fa4-9fbf-42c54659ef04 \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/availability/quantities": {
      "post": {
        "security": [
          {
            "bearerAuth": [
              "availability"
            ]
          }
        ],
        "tags": [
          "Availability V1"
        ],
        "summary": "Update quantities",
        "operationId": "Availability-V1__storeAvailableQuantitiesUsingPOST",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "type": "array",
                "minItems": 1,
                "maxItems": 200,
                "items": {
                  "$ref": "#/components/schemas/AvailableQuantityRequestDTO__Availability-V1"
                },
                "example": [
                  {
                    "quantity": 123,
                    "sku": "4007781056144"
                  },
                  {
                    "quantity": 123,
                    "sku": "4007781056145"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ok"
          },
          "207": {
            "description": "Multi Status (SKUs is unknown | Quantity must be >= 0 | Field must not be empty)",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateQuantityMultiStatusResponse__Availability-V1"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "description": "Forbidden (Invalid token)",
            "content": {
              "application/json": {
                "examples": {
                  "Token is invalid": {
                    "value": {
                      "message": "Forbidden"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found (URL is invalid)",
            "content": {
              "application/json": {
                "examples": {
                  "URL is invalid": {
                    "value": {
                      "message": "Not Found"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Payload too large",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/PayloadTooLargeApiErrorResponseForQuantities__Availability-V1"
                }
              }
            }
          },
          "422": {
            "description": "Non-processable (SKUs is unknown | Quantity must be >= 0 | Field must not be empty | Invalid Quantity: Can only accept whole numbers)",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse__Availability-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v1/availability/quantities \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http POST https://api.otto.market/v1/availability/quantities \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "get": {
        "security": [
          {
            "bearerAuth": [
              "availability"
            ]
          }
        ],
        "tags": [
          "Availability V1"
        ],
        "summary": "Get quantities from a partner (up to 200 per request)",
        "description": "Retrieve available quantities sorted by sku name in ascending.The maximum number of returned quantities is limited to 200.",
        "operationId": "Availability-V1__getAvailableQuantities",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of available quantities to be returned in each response.",
            "required": false,
            "deprecated": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 200
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number (0..N)",
            "required": false,
            "deprecated": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor for paging requests. If a cursor is provided, the only other request parameter being considered is 'limit'. The cursor value is the last evaluted sku in the request response (Needs to be a valid sku value)",
            "required": false,
            "schema": {
              "type": "string",
              "example": "c2t1NDM="
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/AvailableQuantityResponse__Availability-V1"
                }
              }
            }
          },
          "400": {
            "description": "Limit and page need to be integers",
            "content": {
              "application/json": {
                "examples": {
                  "Bad request": {
                    "summary": "Response for invalid requests",
                    "description": "BAD REQUEST",
                    "value": {
                      "errors": [
                        {
                          "code": 400,
                          "detail": "Limit and page need to be valid integers",
                          "path": "/v1/availability/quantities",
                          "title": "BAD REQUEST",
                          "logreg": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized to access",
            "content": {
              "application/json": {
                "examples": {
                  "Bad request": {
                    "summary": "Response for invalid requests",
                    "description": "FORBIDDEN",
                    "value": {
                      "errors": [
                        {
                          "code": 403,
                          "detail": "User is unauthorised to perform this action",
                          "path": "/v1/availability/quantities",
                          "title": "Access Forbidden",
                          "logreg": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found (URL is invalid)",
            "content": {
              "application/json": {
                "examples": {
                  "URL is invalid": {
                    "value": {
                      "message": "Not Found"
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v1/availability/quantities?limit=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE&cursor=c2t1NDM%3D' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v1/availability/quantities?limit=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE&cursor=c2t1NDM%3D' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/availability/quantities/{sku}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "availability"
            ]
          }
        ],
        "tags": [
          "Availability V1"
        ],
        "summary": "Get quantity for a sku",
        "description": "Fetch a single available quantity by its unique sku name.",
        "operationId": "Availability-V1__getAvailableQuantityBySku",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sku",
            "in": "path",
            "required": true,
            "description": "The sku for the available quantity",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/AvailableQuantitySingleResponseDTO__Availability-V1"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized to access",
            "content": {
              "application/json": {
                "examples": {
                  "Bad request": {
                    "summary": "Response for invalid requests",
                    "description": "FORBIDDEN",
                    "value": {
                      "errors": [
                        {
                          "code": 403,
                          "detail": "User is unauthorised to perform this action",
                          "path": "/v1/availability/quantities",
                          "title": "Access Forbidden",
                          "logreg": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Requested sku was unknown (send a quantity update for the product before trying to retrieve it)",
            "content": {
              "application/json": {
                "examples": {
                  "Bad request": {
                    "summary": "Requested sku was unknown",
                    "description": "NOT FOUND",
                    "value": {
                      "errors": [
                        {
                          "code": 404,
                          "detail": "No record found for requested sku",
                          "path": "/v1/availability/quantities/{sku}",
                          "title": "NOT FOUND",
                          "logreg": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v1/availability/quantities/%7Bsku%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v1/availability/quantities/%7Bsku%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/availability/product-delivery-information": {
      "post": {
        "security": [
          {
            "bearerAuth": [
              "availability"
            ]
          }
        ],
        "tags": [
          "Availability V1"
        ],
        "summary": "Update product delivery information",
        "operationId": "Availability-V1__storeProductDeliveryInformationUsingPOST",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "type": "array",
                "minItems": 1,
                "maxItems": 200,
                "items": {
                  "$ref": "#/components/schemas/ProductDeliveryInformationRequestDTO__Availability-V1"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Ok",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "OK"
                    }
                  }
                }
              }
            }
          },
          "207": {
            "description": "Multi Status",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDeliveryInformationMultiStatusResponse__Availability-V1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request </br>1. If any of the mandatory attribute missing in request body </br>2. If request body attributes type/format is wrong </br>3. Duplicate sku records exists in the request </br>4. All items have invalid Sku or shipping profile ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponseForBadRequest__Availability-V1"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "description": "Forbidden (Invalid token)",
            "content": {
              "application/json": {
                "examples": {
                  "Token is invalid": {
                    "value": {
                      "message": "Forbidden"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found (URL is invalid)",
            "content": {
              "application/json": {
                "examples": {
                  "URL is invalid": {
                    "value": {
                      "message": "Not Found"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Payload too large",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponseForPayloadTooLarge__Availability-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponseForInternalServer__Availability-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v1/availability/product-delivery-information \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http POST https://api.otto.market/v1/availability/product-delivery-information \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "get": {
        "security": [
          {
            "bearerAuth": [
              "availability"
            ]
          }
        ],
        "tags": [
          "Availability V1"
        ],
        "summary": "Get product delivery information from a partner",
        "description": "Retrieve sku and shipping profile mapping.The maximum number of returned items is limited to 200. If there are more items, a cursor field is returned to get the next results.",
        "operationId": "Availability-V1__getProductDeliveryInformation",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of shipping profile and sku mappings to be returned in each response.",
            "deprecated": true,
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 200
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor for paging requests. If a cursor is provided, the only other request parameter being considered is 'limit'. <br><br> Note:The cursor value must remain unchanged from the previous request.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "c2t1NDM="
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The sku(s)-shipping profile(s) mapping of the partner",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/GetAllProductDeliveryInfoResponse__Availability-V1"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden (Invalid token)",
            "content": {
              "application/json": {
                "examples": {
                  "Token is invalid": {
                    "value": {
                      "message": "Forbidden"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found (URL is invalid)",
            "content": {
              "application/json": {
                "examples": {
                  "URL is invalid": {
                    "value": {
                      "message": "Not Found"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponseForInternalServer__Availability-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v1/availability/product-delivery-information?limit=SOME_INTEGER_VALUE&cursor=c2t1NDM%3D' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v1/availability/product-delivery-information?limit=SOME_INTEGER_VALUE&cursor=c2t1NDM%3D' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/availability/product-delivery-information/{sku}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "availability"
            ]
          }
        ],
        "tags": [
          "Availability V1"
        ],
        "summary": "Get product delivery information for a SKU",
        "description": "This GET API endpoint is to get a shipping profile id and processing time for given sku\n",
        "operationId": "Availability-V1__getDeliveryInformationBySKU",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access Token",
            "required": true,
            "example": "Bearer access_token",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sku",
            "in": "path",
            "description": "the sku in string format",
            "required": true,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The delivery information of the sku",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDeliveryInformationResponseDTO__Availability-V1"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "description": "Forbidden (Invalid token)",
            "content": {
              "application/json": {
                "examples": {
                  "Token is invalid": {
                    "value": {
                      "message": "Forbidden"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. </br>1. If request path is not  /v1/availability/product-delivery-information/ </br>2. If sku is not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponseForNotFound__Availability-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponseForInternalServer__Availability-V1"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v1/availability/product-delivery-information/%7Bsku%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v1/availability/product-delivery-information/%7Bsku%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/sponsored-product-ads/campaigns": {
      "post": {
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "tags": [
          "SponsoredProductAds V1"
        ],
        "summary": "Create campaign",
        "description": "Creates a campaign.",
        "operationId": "SponsoredProductAds-V1__createCampaign",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCampaignRequest__SponsoredProductAds-V1"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Campaign creation accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCampaignResponse__SponsoredProductAds-V1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Invalid or rejected input data.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponse__SponsoredProductAds-V1"
                },
                "examples": {
                  "missingRequiredFields": {
                    "summary": "Required fields missing",
                    "value": {
                      "errors": [
                        {
                          "message": "'name' must not be null.",
                          "field": "name"
                        },
                        {
                          "message": "'startDate' must not be null.",
                          "field": "startDate"
                        },
                        {
                          "message": "'budget' must not be null.",
                          "field": "budget"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  },
                  "startDateInPast": {
                    "summary": "Start date is in the past",
                    "value": {
                      "errors": [
                        {
                          "message": "'startDate' must be today or a future date.",
                          "field": "startDate"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  },
                  "invalidNameCharacters": {
                    "summary": "Name contains forbidden characters",
                    "value": {
                      "errors": [
                        {
                          "message": "'name' must not contain $, §, \", #, *, or unmatched parentheses.",
                          "field": "name"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  },
                  "lifetimeBudgetWithoutEndDate": {
                    "summary": "LIFETIME budget type requires an end date",
                    "value": {
                      "errors": [
                        {
                          "message": "'endDate' must not be null when 'budgetType' is LIFETIME.",
                          "field": "endDate"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v1/sponsored-product-ads/campaigns \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"name\":\"My awesome campaign\",\"startDate\":\"2026-04-28\",\"endDate\":\"2026-10-28\",\"budget\":{\"amount\":20,\"currency\":\"EUR\"},\"pacing\":\"ASAP\",\"budgetType\":\"DAILY\",\"campaignType\":\"AUTOMATIC\"}'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '{\"name\":\"My awesome campaign\",\"startDate\":\"2026-04-28\",\"endDate\":\"2026-10-28\",\"budget\":{\"amount\":20,\"currency\":\"EUR\"},\"pacing\":\"ASAP\",\"budgetType\":\"DAILY\",\"campaignType\":\"AUTOMATIC\"}' |  \\\n  http POST https://api.otto.market/v1/sponsored-product-ads/campaigns \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  content-type:application/json"
          }
        ]
      },
      "get": {
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "tags": [
          "SponsoredProductAds V1"
        ],
        "summary": "Get campaigns",
        "description": "Retrieve a paginated list of campaigns for the authenticated partner.",
        "operationId": "SponsoredProductAds-V1__getCampaigns",
        "parameters": [
          {
            "$ref": "#/components/parameters/CursorQuery"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "default": 100,
              "maximum": 1000
            },
            "description": "Results per page (max 1000)",
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "List of campaigns retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedCampaignsResponse__SponsoredProductAds-V1"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v1/sponsored-product-ads/campaigns?cursor=eyJjcmVhdGVkQXQi...&limit=100' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v1/sponsored-product-ads/campaigns?cursor=eyJjcmVhdGVkQXQi...&limit=100' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/sponsored-product-ads/campaigns/{campaignId}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "tags": [
          "SponsoredProductAds V1"
        ],
        "summary": "Get campaign",
        "description": "Retrieve details of a specific campaign.",
        "operationId": "SponsoredProductAds-V1__getCampaign",
        "parameters": [
          {
            "$ref": "#/components/parameters/CampaignIdPath"
          }
        ],
        "responses": {
          "200": {
            "description": "Campaign details retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignDTO__SponsoredProductAds-V1"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001 \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001 \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "patch": {
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "tags": [
          "SponsoredProductAds V1"
        ],
        "summary": "Update campaign",
        "description": "Partially updates a campaign using [JSON Merge Patch (RFC 7386)](https://datatracker.ietf.org/doc/html/rfc7386). Only include the fields you want to change; omitted fields remain unchanged. Setting a nullable field to `null` clears its value.\n",
        "operationId": "SponsoredProductAds-V1__updateCampaign",
        "parameters": [
          {
            "$ref": "#/components/parameters/CampaignIdPath"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PatchCampaignRequest__SponsoredProductAds-V1"
              },
              "examples": {
                "renameAndPauseCampaign": {
                  "summary": "Rename and pause a campaign",
                  "value": {
                    "name": "My updated campaign name",
                    "status": "PAUSED"
                  }
                },
                "clearEndDate": {
                  "summary": "Remove the end date (make campaign ongoing)",
                  "value": {
                    "endDate": null
                  }
                },
                "updateBudget": {
                  "summary": "Update budget only",
                  "value": {
                    "budget": {
                      "amount": 15000,
                      "currency": "EUR"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Campaign update accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WriteOperationResponse__SponsoredProductAds-V1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Invalid or rejected input data.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponse__SponsoredProductAds-V1"
                },
                "examples": {
                  "noFieldsProvided": {
                    "summary": "No fields provided (empty patch)",
                    "value": {
                      "errors": [
                        {
                          "message": "At least one field must be provided."
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  },
                  "startDateInPast": {
                    "summary": "Start date is in the past",
                    "value": {
                      "errors": [
                        {
                          "message": "'startDate' must be today or a future date.",
                          "field": "startDate"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  },
                  "endDateBeforeStartDate": {
                    "summary": "End date is before start date",
                    "value": {
                      "errors": [
                        {
                          "message": "'endDate' must be at least one day after 'startDate'.",
                          "field": "endDate"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "409": {
            "$ref": "#/components/responses/ConflictError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PATCH \\\n  --url https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001 \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http PATCH https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001 \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/sponsored-product-ads/campaigns/{campaignId}/targets": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "tags": [
          "SponsoredProductAds V1"
        ],
        "summary": "Get targets",
        "description": "Retrieve a paginated list of targets with keywords and bids for one campaign.",
        "operationId": "SponsoredProductAds-V1__getCampaignTargets",
        "parameters": [
          {
            "$ref": "#/components/parameters/CampaignIdPath"
          },
          {
            "$ref": "#/components/parameters/CursorQuery"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "default": 100,
              "maximum": 1000
            },
            "description": "Results per page (max 1000)",
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "Campaign targets retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedTargetsResponse__SponsoredProductAds-V1"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets?cursor=eyJjcmVhdGVkQXQi...&limit=100' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets?cursor=eyJjcmVhdGVkQXQi...&limit=100' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "tags": [
          "SponsoredProductAds V1"
        ],
        "summary": "Create targets",
        "description": "Creates one or more targets for the campaign.",
        "operationId": "SponsoredProductAds-V1__createTargets",
        "parameters": [
          {
            "$ref": "#/components/parameters/CampaignIdPath"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTargetsRequest__SponsoredProductAds-V1"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Target creation accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateTargetsResponse__SponsoredProductAds-V1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Invalid or rejected input data.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponse__SponsoredProductAds-V1"
                },
                "examples": {
                  "emptyTargetsList": {
                    "summary": "targets array must not be empty",
                    "value": {
                      "errors": [
                        {
                          "message": "'targets' must contain at least 1 item.",
                          "field": "targets"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  },
                  "missingSku": {
                    "summary": "SKU missing on a target",
                    "value": {
                      "errors": [
                        {
                          "message": "'targets[0].sku' must not be null.",
                          "field": "targets[0].sku"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  },
                  "missingBidForAutomaticCampaign": {
                    "summary": "Bid is required for AUTOMATIC campaigns",
                    "value": {
                      "errors": [
                        {
                          "message": "'targets[0].bid' is required for AUTOMATIC campaigns.",
                          "field": "targets[0].bid"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "409": {
            "$ref": "#/components/responses/ConflictError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"targets\":[{\"sku\":\"string\",\"bid\":{\"amount\":20,\"currency\":\"EUR\"}}]}'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '{\"targets\":[{\"sku\":\"string\",\"bid\":{\"amount\":20,\"currency\":\"EUR\"}}]}' |  \\\n  http POST https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  content-type:application/json"
          }
        ]
      },
      "patch": {
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "tags": [
          "SponsoredProductAds V1"
        ],
        "summary": "Update targets",
        "description": "Updates one or more targets using [JSON Merge Patch (RFC 7386)](https://datatracker.ietf.org/doc/html/rfc7386) semantics. For each item in `targets`, only include the fields you want to change alongside `targetId`; omitted fields remain unchanged.\nOnly targets for a campaign with campaign type `AUTOMATIC` can be updated, as targets with campaign type `MANUAL` only contain the immutable `sku` field.\n",
        "operationId": "SponsoredProductAds-V1__updateTargets",
        "parameters": [
          {
            "$ref": "#/components/parameters/CampaignIdPath"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTargetsRequest__SponsoredProductAds-V1"
              },
              "examples": {
                "updateBidForOneTarget": {
                  "summary": "Update the bid for a single target",
                  "value": {
                    "targets": [
                      {
                        "targetId": "00000002-0000-4000-8000-000000000002",
                        "bid": {
                          "amount": 150,
                          "currency": "EUR"
                        }
                      }
                    ]
                  }
                },
                "updateMultipleTargets": {
                  "summary": "Update bids for multiple targets",
                  "value": {
                    "targets": [
                      {
                        "targetId": "00000002-0000-4000-8000-000000000002",
                        "bid": {
                          "amount": 150,
                          "currency": "EUR"
                        }
                      },
                      {
                        "targetId": "00000002-0000-4000-8000-000000000003",
                        "bid": {
                          "amount": 200,
                          "currency": "EUR"
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Target update accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WriteOperationResponse__SponsoredProductAds-V1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Invalid or rejected input data.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponse__SponsoredProductAds-V1"
                },
                "examples": {
                  "missingTargetId": {
                    "summary": "targetId missing in an item",
                    "value": {
                      "errors": [
                        {
                          "message": "'targets[0].targetId' must not be null.",
                          "field": "targets[0].targetId"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  },
                  "noFieldsToUpdate": {
                    "summary": "No updatable fields provided alongside targetId",
                    "value": {
                      "errors": [
                        {
                          "message": "'targets[0]' must contain at least one field to update besides 'targetId'.",
                          "field": "targets[0]"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "409": {
            "$ref": "#/components/responses/ConflictError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PATCH \\\n  --url https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http PATCH https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "delete": {
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "tags": [
          "SponsoredProductAds V1"
        ],
        "summary": "Delete targets",
        "description": "Deletes one or more targets.",
        "operationId": "SponsoredProductAds-V1__deleteTargets",
        "parameters": [
          {
            "$ref": "#/components/parameters/CampaignIdPath"
          },
          {
            "name": "targetIds",
            "in": "query",
            "required": true,
            "description": "One or more target IDs to delete. Repeat the parameter for multiple values (e.g. `?targetIds=X&targetIds=Y`).\n",
            "schema": {
              "type": "array",
              "minItems": 1,
              "maxItems": 50,
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "style": "form",
            "explode": true,
            "example": [
              "00000002-0000-4000-8000-000000000002"
            ]
          }
        ],
        "responses": {
          "202": {
            "description": "Target deletion accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WriteOperationResponse__SponsoredProductAds-V1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Invalid or rejected input data.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponse__SponsoredProductAds-V1"
                },
                "examples": {
                  "tooManyTargetIds": {
                    "summary": "More than 50 target IDs provided",
                    "value": {
                      "errors": [
                        {
                          "message": "'targetIds' must contain between 1 and 50 items.",
                          "field": "targetIds"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "409": {
            "$ref": "#/components/responses/ConflictError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request DELETE \\\n  --url 'https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets?targetIds=00000002-0000-4000-8000-000000000002' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http DELETE 'https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets?targetIds=00000002-0000-4000-8000-000000000002' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/sponsored-product-ads/campaigns/{campaignId}/targets/{targetId}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "tags": [
          "SponsoredProductAds V1"
        ],
        "summary": "Get target",
        "description": "Retrieve details of a specific target.",
        "operationId": "SponsoredProductAds-V1__getTarget",
        "parameters": [
          {
            "$ref": "#/components/parameters/CampaignIdPath"
          },
          {
            "$ref": "#/components/parameters/TargetIdPath"
          }
        ],
        "responses": {
          "200": {
            "description": "Target details retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TargetDTO__SponsoredProductAds-V1"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002 \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002 \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/sponsored-product-ads/campaigns/{campaignId}/targets/{targetId}/keywords": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "tags": [
          "SponsoredProductAds V1"
        ],
        "summary": "Get keywords",
        "description": "Retrieve a paginated list of keywords for one target.",
        "operationId": "SponsoredProductAds-V1__getCampaignKeywords",
        "parameters": [
          {
            "$ref": "#/components/parameters/CampaignIdPath"
          },
          {
            "$ref": "#/components/parameters/TargetIdPath"
          },
          {
            "$ref": "#/components/parameters/CursorQuery"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "default": 100,
              "maximum": 1000
            },
            "description": "Results per page (max 1000)",
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "Keywords retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedKeywordsResponse__SponsoredProductAds-V1"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords?cursor=eyJjcmVhdGVkQXQi...&limit=100' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords?cursor=eyJjcmVhdGVkQXQi...&limit=100' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "tags": [
          "SponsoredProductAds V1"
        ],
        "summary": "Create keywords",
        "description": "Creates one or more keywords for the target.",
        "operationId": "SponsoredProductAds-V1__createKeywords",
        "parameters": [
          {
            "$ref": "#/components/parameters/CampaignIdPath"
          },
          {
            "$ref": "#/components/parameters/TargetIdPath"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateKeywordsRequest__SponsoredProductAds-V1"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Keyword creation accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeywordWriteOperationResponse__SponsoredProductAds-V1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Invalid or rejected input data.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponse__SponsoredProductAds-V1"
                },
                "examples": {
                  "missingMatchType": {
                    "summary": "matchType is required",
                    "value": {
                      "errors": [
                        {
                          "message": "'keywords[0].matchType' must not be null.",
                          "field": "keywords[0].matchType"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  },
                  "keywordTooLong": {
                    "summary": "Keyword text exceeds maximum length",
                    "value": {
                      "errors": [
                        {
                          "message": "'keywords[0].keyword' must be between 1 and 100 characters.",
                          "field": "keywords[0].keyword"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  },
                  "bidRequiredForPositiveKeyword": {
                    "summary": "Bid is required for POSITIVE keywords",
                    "value": {
                      "errors": [
                        {
                          "message": "'keywords[0].bid' is required for POSITIVE keywords.",
                          "field": "keywords[0].bid"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "409": {
            "$ref": "#/components/responses/ConflictError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"keywords\":[{\"keyword\":\"string\",\"matchType\":\"EXACT\",\"keywordType\":\"POSITIVE\",\"bid\":{\"amount\":20,\"currency\":\"EUR\"}}]}'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '{\"keywords\":[{\"keyword\":\"string\",\"matchType\":\"EXACT\",\"keywordType\":\"POSITIVE\",\"bid\":{\"amount\":20,\"currency\":\"EUR\"}}]}' |  \\\n  http POST https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  content-type:application/json"
          }
        ]
      },
      "patch": {
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "tags": [
          "SponsoredProductAds V1"
        ],
        "summary": "Update keywords",
        "description": "Updates one or more keywords using [JSON Merge Patch (RFC 7386)](https://datatracker.ietf.org/doc/html/rfc7386) semantics. For each item in `keywords`, only include the fields you want to change alongside `keywordId`; omitted fields remain unchanged.\n",
        "operationId": "SponsoredProductAds-V1__updateKeywords",
        "parameters": [
          {
            "$ref": "#/components/parameters/CampaignIdPath"
          },
          {
            "$ref": "#/components/parameters/TargetIdPath"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/merge-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateKeywordsRequest__SponsoredProductAds-V1"
              },
              "examples": {
                "updateBidForOneKeyword": {
                  "summary": "Update the bid for a single keyword",
                  "value": {
                    "keywords": [
                      {
                        "keywordId": "00000003-0000-4000-8000-000000000003",
                        "bid": {
                          "amount": 75,
                          "currency": "EUR"
                        }
                      }
                    ]
                  }
                },
                "updateMatchTypeForMultipleKeywords": {
                  "summary": "Update match type for multiple keywords",
                  "value": {
                    "keywords": [
                      {
                        "keywordId": "00000003-0000-4000-8000-000000000003",
                        "matchType": "EXACT"
                      },
                      {
                        "keywordId": "00000003-0000-4000-8000-000000000004",
                        "matchType": "PHRASE"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Keyword update accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeywordWriteOperationResponse__SponsoredProductAds-V1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Invalid or rejected input data.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponse__SponsoredProductAds-V1"
                },
                "examples": {
                  "missingKeywordId": {
                    "summary": "keywordId missing in an item",
                    "value": {
                      "errors": [
                        {
                          "message": "'keywords[0].keywordId' must not be null.",
                          "field": "keywords[0].keywordId"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  },
                  "noFieldsToUpdate": {
                    "summary": "No updatable fields provided alongside keywordId",
                    "value": {
                      "errors": [
                        {
                          "message": "'keywords[0]' must contain at least one field to update besides 'keywordId'.",
                          "field": "keywords[0]"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "409": {
            "$ref": "#/components/responses/ConflictError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PATCH \\\n  --url https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http PATCH https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "delete": {
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "tags": [
          "SponsoredProductAds V1"
        ],
        "summary": "Delete keywords",
        "description": "Deletes one or more keywords.",
        "operationId": "SponsoredProductAds-V1__deleteKeywords",
        "parameters": [
          {
            "$ref": "#/components/parameters/CampaignIdPath"
          },
          {
            "$ref": "#/components/parameters/TargetIdPath"
          },
          {
            "name": "keywordIds",
            "in": "query",
            "required": true,
            "description": "One or more keyword IDs to delete. Repeat the parameter for multiple values (e.g. `?keywordIds=X&keywordIds=Y`).\n",
            "schema": {
              "type": "array",
              "minItems": 1,
              "maxItems": 50,
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "style": "form",
            "explode": true,
            "example": [
              "00000003-0000-4000-8000-000000000003"
            ]
          }
        ],
        "responses": {
          "202": {
            "description": "Keyword deletion accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeywordWriteOperationResponse__SponsoredProductAds-V1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Invalid or rejected input data.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrorResponse__SponsoredProductAds-V1"
                },
                "examples": {
                  "tooManyKeywordIds": {
                    "summary": "More than 50 keyword IDs provided",
                    "value": {
                      "errors": [
                        {
                          "message": "'keywordIds' must contain between 1 and 50 items.",
                          "field": "keywordIds"
                        }
                      ],
                      "timestamp": "2026-04-15T10:00:00Z"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "409": {
            "$ref": "#/components/responses/ConflictError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request DELETE \\\n  --url 'https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords?keywordIds=00000003-0000-4000-8000-000000000003' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http DELETE 'https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords?keywordIds=00000003-0000-4000-8000-000000000003' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/sponsored-product-ads/campaigns/{campaignId}/targets/{targetId}/keywords/{keywordId}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "tags": [
          "SponsoredProductAds V1"
        ],
        "summary": "Get keyword",
        "description": "Retrieve details of a specific keyword.",
        "operationId": "SponsoredProductAds-V1__getKeyword",
        "parameters": [
          {
            "$ref": "#/components/parameters/CampaignIdPath"
          },
          {
            "$ref": "#/components/parameters/TargetIdPath"
          },
          {
            "$ref": "#/components/parameters/KeywordIdPath"
          }
        ],
        "responses": {
          "200": {
            "description": "Keyword details retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeywordDTO__SponsoredProductAds-V1"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords/00000003-0000-4000-8000-000000000003 \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords/00000003-0000-4000-8000-000000000003 \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/sponsored-product-ads/change-requests/{requestId}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "tags": [
          "SponsoredProductAds V1"
        ],
        "summary": "Get change request",
        "description": "Retrieve the current status and details of a change request. Use this endpoint to check whether a previously submitted write operation was accepted or rejected, and to obtain the rejection reason if applicable.\n\nCommon rejection reasons:\n- `\"The specified SKU does not exist in the product catalog.\"` — SKU provided in a target creation was not found in OTTO's product catalog.\n- `\"The partner account is blocked and cannot create or modify campaigns.\"` — the partner has been blocked; no write operations will be processed until the block is lifted.\n- `\"An internal error occurred while processing the request. Please retry.\"` — transient internal failure; the entity was not modified and the request can be safely retried.\n",
        "operationId": "SponsoredProductAds-V1__getChangeRequest",
        "parameters": [
          {
            "$ref": "#/components/parameters/ChangeRequestIdPath"
          }
        ],
        "responses": {
          "200": {
            "description": "Change request details retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChangeRequestResponse__SponsoredProductAds-V1"
                },
                "examples": {
                  "pending": {
                    "summary": "Still being processed",
                    "value": {
                      "requestId": "00000004-0000-4000-8000-000000000004",
                      "requestType": "CREATE_CAMPAIGN",
                      "status": "PENDING",
                      "lastModifiedAt": "2026-04-23T08:00:00Z",
                      "_links": {
                        "self": {
                          "href": "https://api.otto.market/v1/sponsored-product-ads/change-requests/00000004-0000-4000-8000-000000000004"
                        }
                      }
                    }
                  },
                  "accepted": {
                    "summary": "Accepted — campaign created",
                    "value": {
                      "requestId": "00000004-0000-4000-8000-000000000004",
                      "requestType": "CREATE_CAMPAIGN",
                      "status": "ACCEPTED",
                      "lastModifiedAt": "2026-04-23T08:00:01Z",
                      "entityIds": [
                        "00000001-0000-4000-8000-000000000001"
                      ],
                      "_links": {
                        "self": {
                          "href": "https://api.otto.market/v1/sponsored-product-ads/change-requests/00000004-0000-4000-8000-000000000004"
                        },
                        "campaign": {
                          "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001"
                        }
                      }
                    }
                  },
                  "rejectedSkuNotFound": {
                    "summary": "Rejected — SKU not in product catalog",
                    "value": {
                      "requestId": "00000004-0000-4000-8000-000000000004",
                      "requestType": "CREATE_TARGETS",
                      "status": "REJECTED",
                      "lastModifiedAt": "2026-04-23T08:00:01Z",
                      "rejectionReason": "The specified SKU does not exist in the product catalog.",
                      "entityIds": [],
                      "_links": {
                        "self": {
                          "href": "https://api.otto.market/v1/sponsored-product-ads/change-requests/00000004-0000-4000-8000-000000000004"
                        }
                      }
                    }
                  },
                  "rejectedCampaignEnded": {
                    "summary": "Rejected — campaign is in a terminal state",
                    "value": {
                      "requestId": "00000004-0000-4000-8000-000000000004",
                      "requestType": "CREATE_TARGETS",
                      "status": "REJECTED",
                      "lastModifiedAt": "2026-04-23T08:00:01Z",
                      "rejectionReason": "The specified SKU does not exist in the product catalog.",
                      "entityIds": [],
                      "_links": {
                        "self": {
                          "href": "https://api.otto.market/v1/sponsored-product-ads/change-requests/00000004-0000-4000-8000-000000000004"
                        }
                      }
                    }
                  },
                  "rejectedPartnerBlocked": {
                    "summary": "Rejected — partner account is blocked",
                    "value": {
                      "requestId": "00000004-0000-4000-8000-000000000004",
                      "requestType": "CREATE_CAMPAIGN",
                      "status": "REJECTED",
                      "lastModifiedAt": "2026-04-23T08:00:01Z",
                      "rejectionReason": "The partner account is blocked and cannot create or modify campaigns.",
                      "entityIds": [],
                      "_links": {
                        "self": {
                          "href": "https://api.otto.market/v1/sponsored-product-ads/change-requests/00000004-0000-4000-8000-000000000004"
                        }
                      }
                    }
                  },
                  "rejectedInternalError": {
                    "summary": "Rejected — internal error (safe to retry)",
                    "value": {
                      "requestId": "00000004-0000-4000-8000-000000000004",
                      "requestType": "CREATE_CAMPAIGN",
                      "status": "REJECTED",
                      "lastModifiedAt": "2026-04-23T08:00:01Z",
                      "rejectionReason": "An internal error occurred while processing the request. Please retry.",
                      "entityIds": [],
                      "_links": {
                        "self": {
                          "href": "https://api.otto.market/v1/sponsored-product-ads/change-requests/00000004-0000-4000-8000-000000000004"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v1/sponsored-product-ads/change-requests/00000004-0000-4000-8000-000000000004 \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v1/sponsored-product-ads/change-requests/00000004-0000-4000-8000-000000000004 \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/spa-reporting/product-performance": {
      "get": {
        "tags": [
          "SponsoredProductAdsReporting V1"
        ],
        "summary": "Get product's performance with flexible date filtering",
        "description": "Retrieve performance metrics for the specified campaign and SKU. Defaults to last 7 days if no date range is provided. Both fromDate and toDate must be provided together, or neither.",
        "operationId": "SponsoredProductAdsReporting-V1__get_sku_performance_v1_spa_reporting_product_performance_get",
        "parameters": [
          {
            "name": "campaignId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The unique identifier of the campaign",
              "title": "Campaignid"
            },
            "description": "The unique identifier of the campaign"
          },
          {
            "name": "sku",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The SKU",
              "title": "Sku"
            },
            "description": "The SKU"
          },
          {
            "name": "fromDate",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Start date of the range (format YYYY-MM-DD). Must be provided with toDate, or omit both for 7-day default.",
              "title": "Fromdate",
              "type": "string",
              "format": "date",
              "nullable": true
            },
            "description": "Start date of the range (format YYYY-MM-DD). Must be provided with toDate, or omit both for 7-day default."
          },
          {
            "name": "toDate",
            "in": "query",
            "required": false,
            "schema": {
              "description": "End date of the range (format YYYY-MM-DD). Must be provided with fromDate, or omit both for 7-day default.",
              "title": "Todate",
              "type": "string",
              "format": "date",
              "nullable": true
            },
            "description": "End date of the range (format YYYY-MM-DD). Must be provided with fromDate, or omit both for 7-day default."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SponsoredProductAdsProductPerformance__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "400": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "404": {
            "description": "No data found for the given campaignId and SKU.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v1/spa-reporting/product-performance?campaignId=SOME_STRING_VALUE&sku=SOME_STRING_VALUE&fromDate=SOME_STRING_VALUE&toDate=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v1/spa-reporting/product-performance?campaignId=SOME_STRING_VALUE&sku=SOME_STRING_VALUE&fromDate=SOME_STRING_VALUE&toDate=SOME_STRING_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "tags": [
          "SponsoredProductAdsReporting V1"
        ],
        "summary": "Create Product Performance Report",
        "description": "Request generation of a product performance report for the specified date range. The report will be generated asynchronously and can be retrieved using the report ID.",
        "operationId": "SponsoredProductAdsReporting-V1__create_product_performance_report_v1_spa_reporting_product_performance_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductReportRequest__SponsoredProductAdsReporting-V1",
                "description": "The request body containing the parameters for the product performance report generation"
              },
              "examples": {
                "default_sku_grouping": {
                  "summary": "Product KPIs grouped by SKU (default)",
                  "description": "Returns product-level KPIs. GroupBy defaults to SKU if not specified.",
                  "value": {
                    "name": "Product Performance Report",
                    "fromDate": "2026-03-01",
                    "toDate": "2026-03-23",
                    "configuration": {
                      "columns": [
                        "SKU",
                        "TOTAL_VIEWS",
                        "TOTAL_CLICKS",
                        "TOTAL_COSTS"
                      ],
                      "format": "CSV"
                    }
                  }
                },
                "daily_product_metrics": {
                  "summary": "Daily product breakdown",
                  "description": "Track product performance over time with daily granularity. EVENT_DATE_CET auto-added to SELECT.",
                  "value": {
                    "name": "Daily Product Performance",
                    "fromDate": "2026-03-01",
                    "toDate": "2026-03-23",
                    "configuration": {
                      "columns": [
                        "TOTAL_VIEWS",
                        "TOTAL_CLICKS",
                        "TOTAL_COSTS"
                      ],
                      "groupBy": [
                        "EVENT_DATE_CET",
                        "SKU"
                      ],
                      "format": "CSV"
                    }
                  }
                },
                "multi_dimension_grouping": {
                  "summary": "Product metrics by campaign and date",
                  "description": "Analyze product performance across campaigns over time with full dimensional breakdown.",
                  "value": {
                    "name": "Product Campaign Analysis",
                    "fromDate": "2026-03-01",
                    "toDate": "2026-03-23",
                    "configuration": {
                      "columns": [
                        "TOTAL_VIEWS",
                        "TOTAL_COSTS"
                      ],
                      "groupBy": [
                        "EVENT_DATE_CET",
                        "CAMPAIGN_ID",
                        "SKU"
                      ],
                      "format": "CSV"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportStatusResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "400": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v1/spa-reporting/product-performance \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"name\":\"string\",\"fromDate\":\"2019-08-24\",\"toDate\":\"2019-08-24\",\"configuration\":{\"columns\":[\"TOTAL_VIEWS\"],\"groupBy\":[\"SKU\"],\"filters\":[{\"column\":\"CAMPAIGN_ID\",\"operator\":\"=\",\"value\":\"string\"}],\"format\":\"CSV\"}}'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '{\"name\":\"string\",\"fromDate\":\"2019-08-24\",\"toDate\":\"2019-08-24\",\"configuration\":{\"columns\":[\"TOTAL_VIEWS\"],\"groupBy\":[\"SKU\"],\"filters\":[{\"column\":\"CAMPAIGN_ID\",\"operator\":\"=\",\"value\":\"string\"}],\"format\":\"CSV\"}}' |  \\\n  http POST https://api.otto.market/v1/spa-reporting/product-performance \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  content-type:application/json"
          }
        ]
      }
    },
    "/v1/spa-reporting/campaign-performance": {
      "get": {
        "tags": [
          "SponsoredProductAdsReporting V1"
        ],
        "summary": "Get campaign performance with flexible date filtering",
        "description": "Retrieve aggregated performance metrics for the specified campaign. Defaults to last 7 days if no date range is provided. Both fromDate and toDate must be provided together, or neither.",
        "operationId": "SponsoredProductAdsReporting-V1__get_campaign_performance_v1_spa_reporting_campaign_performance_get",
        "parameters": [
          {
            "name": "campaignId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The unique identifier of the campaign",
              "title": "Campaignid"
            },
            "description": "The unique identifier of the campaign"
          },
          {
            "name": "fromDate",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Start date of the range (format YYYY-MM-DD). Must be provided with toDate, or omit both for 7-day default.",
              "title": "Fromdate",
              "type": "string",
              "format": "date",
              "nullable": true
            },
            "description": "Start date of the range (format YYYY-MM-DD). Must be provided with toDate, or omit both for 7-day default."
          },
          {
            "name": "toDate",
            "in": "query",
            "required": false,
            "schema": {
              "description": "End date of the range (format YYYY-MM-DD). Must be provided with fromDate, or omit both for 7-day default.",
              "title": "Todate",
              "type": "string",
              "format": "date",
              "nullable": true
            },
            "description": "End date of the range (format YYYY-MM-DD). Must be provided with fromDate, or omit both for 7-day default."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SponsoredProductAdsCampaignPerformance__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "400": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "404": {
            "description": "No data found for the given campaignId.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v1/spa-reporting/campaign-performance?campaignId=SOME_STRING_VALUE&fromDate=SOME_STRING_VALUE&toDate=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v1/spa-reporting/campaign-performance?campaignId=SOME_STRING_VALUE&fromDate=SOME_STRING_VALUE&toDate=SOME_STRING_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "tags": [
          "SponsoredProductAdsReporting V1"
        ],
        "summary": "Create Campaign Performance Report",
        "description": "Request generation of a campaign performance report for the specified date range. The report will be generated asynchronously and can be retrieved using the report ID.",
        "operationId": "SponsoredProductAdsReporting-V1__create_campaign_performance_report_v1_spa_reporting_campaign_performance_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CampaignReportRequest__SponsoredProductAdsReporting-V1",
                "description": "The request body containing the parameters for the campaign performance report generation"
              },
              "examples": {
                "kpis_only": {
                  "summary": "KPIs with no groupBy provided will be grouped by CAMPAIGN_ID by default",
                  "description": "Returns aggregated KPIs without GROUP BY",
                  "value": {
                    "name": "Campaign KPIs Report",
                    "fromDate": "2026-03-01",
                    "toDate": "2026-03-23",
                    "configuration": {
                      "columns": [
                        "TOTAL_VIEWS",
                        "TOTAL_CLICKS",
                        "TOTAL_COSTS"
                      ],
                      "format": "CSV"
                    }
                  }
                },
                "group_by_campaign": {
                  "summary": "Group by campaign",
                  "description": "Campaign-level totals with explicit grouping",
                  "value": {
                    "name": "Campaign Performance",
                    "fromDate": "2026-03-01",
                    "toDate": "2026-03-23",
                    "configuration": {
                      "columns": [
                        "CAMPAIGN_ID",
                        "TOTAL_VIEWS",
                        "TOTAL_CLICKS"
                      ],
                      "groupBy": [
                        "CAMPAIGN_ID"
                      ],
                      "format": "CSV"
                    }
                  }
                },
                "daily_campaign_metrics": {
                  "summary": "Daily campaign breakdown",
                  "description": "Columns in groupBy are auto-added to SELECT. KPIs are aggregated with SUM()",
                  "value": {
                    "name": "Daily Campaign Report",
                    "fromDate": "2026-03-01",
                    "toDate": "2026-03-23",
                    "configuration": {
                      "columns": [
                        "TOTAL_VIEWS",
                        "TOTAL_COSTS"
                      ],
                      "groupBy": [
                        "EVENT_DATE_CET",
                        "CAMPAIGN_ID"
                      ],
                      "format": "CSV"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportStatusResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "400": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v1/spa-reporting/campaign-performance \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"name\":\"string\",\"fromDate\":\"2019-08-24\",\"toDate\":\"2019-08-24\",\"configuration\":{\"columns\":[\"TOTAL_VIEWS\"],\"groupBy\":[\"CAMPAIGN_ID\"],\"filters\":[{\"column\":\"CAMPAIGN_ID\",\"operator\":\"=\",\"value\":\"string\"}],\"format\":\"CSV\"}}'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '{\"name\":\"string\",\"fromDate\":\"2019-08-24\",\"toDate\":\"2019-08-24\",\"configuration\":{\"columns\":[\"TOTAL_VIEWS\"],\"groupBy\":[\"CAMPAIGN_ID\"],\"filters\":[{\"column\":\"CAMPAIGN_ID\",\"operator\":\"=\",\"value\":\"string\"}],\"format\":\"CSV\"}}' |  \\\n  http POST https://api.otto.market/v1/spa-reporting/campaign-performance \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  content-type:application/json"
          }
        ]
      }
    },
    "/v1/spa-reporting/keyword-performance": {
      "post": {
        "tags": [
          "SponsoredProductAdsReporting V1"
        ],
        "summary": "Create Keyword Performance Report",
        "description": "Request generation of a keyword performance report for the specified date range. The report will be generated asynchronously and can be retrieved using the report ID.",
        "operationId": "SponsoredProductAdsReporting-V1__create_keyword_performance_report_v1_spa_reporting_keyword_performance_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KeywordReportRequest__SponsoredProductAdsReporting-V1",
                "description": "The request body containing the parameters for the keyword performance report generation"
              },
              "examples": {
                "default_keyword_grouping": {
                  "summary": "Keyword KPIs grouped by KEYWORD (default)",
                  "description": "Returns keyword-level KPIs. groupBy defaults to KEYWORD if not specified.",
                  "value": {
                    "name": "Keyword Performance Report",
                    "fromDate": "2026-03-01",
                    "toDate": "2026-03-23",
                    "configuration": {
                      "columns": [
                        "TOTAL_VIEWS",
                        "TOTAL_CLICKS",
                        "TOTAL_COSTS"
                      ],
                      "format": "CSV"
                    }
                  }
                },
                "searchterm_analysis": {
                  "summary": "Group by search term",
                  "description": "Analyze performance by actual search terms used by customers. SEARCHTERM is explicit in groupBy.",
                  "value": {
                    "name": "Search Term Analysis",
                    "fromDate": "2026-03-01",
                    "toDate": "2026-03-23",
                    "configuration": {
                      "columns": [
                        "SEARCHTERM",
                        "TOTAL_VIEWS",
                        "TOTAL_CLICKS"
                      ],
                      "groupBy": [
                        "SEARCHTERM"
                      ],
                      "format": "CSV"
                    }
                  }
                },
                "daily_keyword_metrics": {
                  "summary": "Daily keyword breakdown",
                  "description": "Track keyword performance over time with daily granularity. EVENT_DATE_CET auto-added to SELECT.",
                  "value": {
                    "name": "Daily Keyword Performance",
                    "fromDate": "2026-03-01",
                    "toDate": "2026-03-23",
                    "configuration": {
                      "columns": [
                        "TOTAL_VIEWS",
                        "TOTAL_CLICKS",
                        "TOTAL_COSTS"
                      ],
                      "groupBy": [
                        "EVENT_DATE_CET",
                        "KEYWORD"
                      ],
                      "format": "CSV"
                    }
                  }
                },
                "keyword_searchterm_comparison": {
                  "summary": "Keyword vs search term analysis",
                  "description": "Compare keyword bids against actual search terms with campaign context. Full dimensional breakdown.",
                  "value": {
                    "name": "Keyword Search Term Report",
                    "fromDate": "2026-03-01",
                    "toDate": "2026-03-23",
                    "configuration": {
                      "columns": [
                        "CAMPAIGN_ID",
                        "TOTAL_VIEWS",
                        "TOTAL_COSTS"
                      ],
                      "groupBy": [
                        "KEYWORD",
                        "SEARCHTERM"
                      ],
                      "format": "CSV"
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportStatusResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "400": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v1/spa-reporting/keyword-performance \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"name\":\"string\",\"fromDate\":\"2019-08-24\",\"toDate\":\"2019-08-24\",\"configuration\":{\"columns\":[\"TOTAL_VIEWS\"],\"groupBy\":[\"KEYWORD\"],\"filters\":[{\"column\":\"CAMPAIGN_ID\",\"operator\":\"=\",\"value\":\"string\"}],\"format\":\"CSV\"}}'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '{\"name\":\"string\",\"fromDate\":\"2019-08-24\",\"toDate\":\"2019-08-24\",\"configuration\":{\"columns\":[\"TOTAL_VIEWS\"],\"groupBy\":[\"KEYWORD\"],\"filters\":[{\"column\":\"CAMPAIGN_ID\",\"operator\":\"=\",\"value\":\"string\"}],\"format\":\"CSV\"}}' |  \\\n  http POST https://api.otto.market/v1/spa-reporting/keyword-performance \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  content-type:application/json"
          }
        ]
      }
    },
    "/v1/spa-reporting/keyword-performance/status": {
      "get": {
        "tags": [
          "SponsoredProductAdsReporting V1"
        ],
        "summary": "Get Keyword Performance Report Status",
        "description": "Retrieve the status of a keyword performance report generation using the report ID as a query parameter. The response will indicate whether the report is still in progress, completed, or if there was an error during generation.",
        "operationId": "SponsoredProductAdsReporting-V1__get_keyword_performance_report_status_v1_spa_reporting_keyword_performance_status_get",
        "parameters": [
          {
            "name": "reportId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "description": "The unique identifier of the keyword performance report",
              "title": "Reportid"
            },
            "description": "The unique identifier of the keyword performance report"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportStatusResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "400": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "404": {
            "description": "Report not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v1/spa-reporting/keyword-performance/status?reportId=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v1/spa-reporting/keyword-performance/status?reportId=SOME_STRING_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/spa-reporting/campaign-performance/status": {
      "get": {
        "tags": [
          "SponsoredProductAdsReporting V1"
        ],
        "summary": "Get Campaign Performance Report Status",
        "description": "Retrieve the status of a campaign performance report generation using the report ID as a query parameter. The response will indicate whether the report is still in progress, completed, or if there was an error during generation.",
        "operationId": "SponsoredProductAdsReporting-V1__get_campaign_performance_report_status_v1_spa_reporting_campaign_performance_status_get",
        "parameters": [
          {
            "name": "reportId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "description": "The unique identifier of the campaign performance report",
              "title": "Reportid"
            },
            "description": "The unique identifier of the campaign performance report"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportStatusResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "400": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "404": {
            "description": "Report not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v1/spa-reporting/campaign-performance/status?reportId=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v1/spa-reporting/campaign-performance/status?reportId=SOME_STRING_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/spa-reporting/product-performance/status": {
      "get": {
        "tags": [
          "SponsoredProductAdsReporting V1"
        ],
        "summary": "Get Product Performance Report Status",
        "description": "Retrieve the status of a product performance report generation using the report ID as a query parameter. The response will indicate whether the report is still in progress, completed, or if there was an error during generation.",
        "operationId": "SponsoredProductAdsReporting-V1__get_product_performance_report_status_v1_spa_reporting_product_performance_status_get",
        "parameters": [
          {
            "name": "reportId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "description": "The unique identifier of the product performance report",
              "title": "Reportid"
            },
            "description": "The unique identifier of the product performance report"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportStatusResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "400": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "404": {
            "description": "Report not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v1/spa-reporting/product-performance/status?reportId=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v1/spa-reporting/product-performance/status?reportId=SOME_STRING_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/spa-reporting/reports/download": {
      "get": {
        "tags": [
          "SponsoredProductAdsReporting V1"
        ],
        "summary": "Download a report by ID",
        "description": "Download a generated report by its report ID. The report must have status READY. Returns the report file as a CSV attachment.",
        "operationId": "SponsoredProductAdsReporting-V1__download_report_v1_spa_reporting_reports_download_get",
        "parameters": [
          {
            "name": "reportId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "description": "The unique identifier of the report to download",
              "title": "Reportid"
            },
            "description": "The unique identifier of the report to download"
          }
        ],
        "responses": {
          "200": {
            "description": "The generated report file.",
            "content": {
              "application/json": {
                "schema": {}
              },
              "text/csv": {}
            }
          },
          "400": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "404": {
            "description": "Report not found or not ready.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "410": {
            "description": "Report file has expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          },
          "503": {
            "description": "Storage service unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetailResponse__SponsoredProductAdsReporting-V1"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v1/spa-reporting/reports/download?reportId=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v1/spa-reporting/reports/download?reportId=SOME_STRING_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v1/spa-reporting/testdata": {
      "post": {
        "tags": [
          "SponsoredProductAdsReporting V1"
        ],
        "summary": "Seed test data (sandbox only)",
        "description": "Seed test data for the authenticated partner. Only available when in sandbox.",
        "operationId": "SponsoredProductAdsReporting-V1__generate_testdata_v1_spa_reporting_testdata_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [
              "advertising-services"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v1/spa-reporting/testdata \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http POST https://api.otto.market/v1/spa-reporting/testdata \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "ActiveStatus__Products-V5": {
        "properties": {
          "sku": {
            "description": "Partner-unique identifier for a product variation provided by the partner",
            "example": "82388894-5883-488",
            "type": "string"
          },
          "active": {
            "description": "The product variation is supposed to be active or not",
            "example": true,
            "type": "boolean"
          },
          "lastModified": {
            "description": "the ISO8601 timestamp of the last modification of the active status",
            "example": "2019-06-18T06:12:36Z",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ActiveStatusListRequest__Products-V5": {
        "properties": {
          "status": {
            "items": {
              "$ref": "#/components/schemas/ActiveStatus__Products-V5"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ActiveStatusListResponse__Products-V5": {
        "properties": {
          "status": {
            "items": {
              "$ref": "#/components/schemas/ActiveStatus__Products-V5"
            },
            "type": "array"
          },
          "links": {
            "description": "a list of links that can be used for pagination (among others).",
            "items": {
              "$ref": "#/components/schemas/ActiveStatusListResponseLink__Products-V5"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ActiveStatusListResponseLink__Products-V5": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "prev",
              "next"
            ],
            "example": "self",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products/active-status?page=0&limit=100",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AdditionalRequirement__Products-V5": {
        "properties": {
          "name": {
            "description": "the name of the product attribute.",
            "example": "Lizenznummer Organic Content Standard 100",
            "type": "string"
          },
          "jsonPath": {
            "description": "the JSON path leading to the specific product attribute.",
            "example": "$.productVariations[*].productDescription.attributes(@name='Lizenznummer Organic Content Standard 100')",
            "type": "string"
          },
          "description": {
            "description": "a brief human readable description of the requirement",
            "example": "Wenn das Nachhaltigkeits-Siegel 'Organic Content Standard 100' übermittelt wird, muss auch die vom Siegel Herausgeber vergebene Lizenznummer im Attribut 'Lizenznummer Organic Content Standard 100' übermittelt werden.",
            "type": "string"
          },
          "condition": {
            "$ref": "#/components/schemas/Condition__Products-V5"
          },
          "featureRelevance": {
            "description": "a list of feature relevances that can describe the reason for the requirement.",
            "example": [
              "LICENSE_REQUIRED"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Attribute__Products-V5": {
        "properties": {
          "name": {
            "description": "The name of the describing attribute, like 'color' or 'size'.",
            "example": "Materialzusammensetzung",
            "type": "string"
          },
          "values": {
            "description": "The value for the given name, like 'blue' or 'S', as a JSON array",
            "example": [
              "100% Baumwolle"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "additional": {
            "description": "true, if the attribute is not defined by the marketplace.",
            "example": false,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "AttributeDefinition__Products-V5": {
        "properties": {
          "name": {
            "description": "the name of the attribute. This attribute name has to be used within the product description.",
            "example": "Durchmesser",
            "type": "string"
          },
          "attributeGroup": {
            "description": "title of the attributes displayed in the product details in the shop.",
            "example": "Maße & Gewicht",
            "type": "string"
          },
          "type": {
            "description": "defines the format of the attribute value, such as string, integer, etc.",
            "example": "FLOAT",
            "type": "string"
          },
          "multiValue": {
            "description": "if the value is true, several values can be transferred to this attribute (polyvalence attribute); otherwise, only a single value may be transferred to this attribute.",
            "example": true,
            "type": "boolean"
          },
          "unit": {
            "description": "the values must be transferred in the specified unit.",
            "example": "cm",
            "type": "string"
          },
          "unitDisplayName": {
            "description": "the value gets displayed with this unit in the shop.",
            "example": "Zentimeter",
            "type": "string"
          },
          "allowedValues": {
            "description": "only the listed values are permitted for the attribute.",
            "example": "natur bunt grau ...",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "featureRelevance": {
            "description": "describes what the attribute can be used for and where it gets displayed in the shop.",
            "example": "FILTER",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "relatedMediaAssets": {
            "description": "mandatory media assets for the category",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "relevance": {
            "description": "the relevance of the attribute.",
            "example": "HIGH",
            "type": "string"
          },
          "description": {
            "description": "additional information for the attribute.",
            "example": "some textual description",
            "type": "string"
          },
          "exampleValues": {
            "description": "example values for the attribute.",
            "example": "Edelstahl Aluminium Stahl",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "recommendedValues": {
            "description": "use the listed values to get full navigation and filter features on otto.de. If no suitable value exists, then enter your own value.",
            "example": "modern klassisch Landhaus Vintage",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "reference": {
            "description": "reference to further documentation.",
            "example": "http://wikipedia.de/something",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Brand__Products-V5": {
        "properties": {
          "id": {
            "description": "the id value of the brand which you have to use with your product data uploads!",
            "example": "K5J8PJFR",
            "type": "string"
          },
          "name": {
            "description": "the name of the brand as it is known on the OTTO marketplace. Use this name to find the brand of your products in the list of available brands, but don't use it in your product data - use only the id value of the brand!",
            "example": "adidas",
            "type": "string"
          },
          "logo": {
            "description": "If a brand logo image is existing, you can find the URL of it here.",
            "example": "https://brandlogos.foo.org/logo-xyz.jpg",
            "type": "string"
          },
          "usable": {
            "description": "If this value if ``false`` you are not allowed to use this brand for products you like to sell on the OTTO marketplace. If the value is ``true`` you might use this brand.",
            "example": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "BrandListResponse__Products-V5": {
        "properties": {
          "brands": {
            "items": {
              "$ref": "#/components/schemas/Brand__Products-V5"
            },
            "type": "array"
          },
          "links": {
            "description": "a list of links that can be used for pagination (among others).",
            "items": {
              "$ref": "#/components/schemas/BrandListLink__Products-V5"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "BrandListLink__Products-V5": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "prev",
              "next"
            ],
            "example": "self",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products/brands?page=0&limit=100",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CategoryGroup__Products-V5": {
        "properties": {
          "categoryGroup": {
            "description": "a category group defines a list of categories and the market place attributes for these categories.",
            "type": "string"
          },
          "categories": {
            "description": "the list of the categories for this category group.",
            "example": "Farbe",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "variationThemes": {
            "description": "overview of all attributes that can be used to create variantions.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title": {
            "description": "shows how our product title is built",
            "type": "string"
          },
          "attributes": {
            "description": "list of the market place attributes for the categories of this group.",
            "items": {
              "$ref": "#/components/schemas/AttributeDefinition__Products-V5"
            },
            "type": "array"
          },
          "createdAt": {
            "description": "ISO8601 creation date of the category.",
            "example": "2021-07-02T01:35:57.181Z",
            "format": "date-time",
            "type": "string"
          },
          "lastModified": {
            "description": "ISO8601 last modification date of the category.",
            "example": "2021-07-02T01:35:57.181Z",
            "format": "date-time",
            "type": "string"
          },
          "additionalRequirements": {
            "description": "a list of general requirements for certain product attributes that apply to all categories in the category group",
            "items": {
              "$ref": "#/components/schemas/AdditionalRequirement__Products-V5"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "CategoryGroups__Products-V5": {
        "properties": {
          "categoryGroups": {
            "description": "a list of the category groups defined on the OTTO market place.",
            "items": {
              "$ref": "#/components/schemas/CategoryGroup__Products-V5"
            },
            "type": "array"
          },
          "links": {
            "description": "a list of links that can be used for pagination (among others).",
            "items": {
              "$ref": "#/components/schemas/CategoryGroupsLink__Products-V5"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Condition__Products-V5": {
        "properties": {
          "name": {
            "description": "the name of an attribute.",
            "type": "string"
          },
          "jsonPath": {
            "description": "the JSON path that leads to the attribute value.",
            "type": "string"
          },
          "value": {
            "description": "the value of the attribute to which the requirement applies.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CategoryGroupsLink__Products-V5": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "prev",
              "next"
            ],
            "example": "self",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products/categories?page=0&limit=100",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentChange__Products-V5": {
        "properties": {
          "sku": {
            "type": "string"
          },
          "ean": {
            "type": "string"
          },
          "productReference": {
            "type": "string"
          },
          "shopLink": {
            "type": "string"
          },
          "lastContentChange": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentChangesApiResult__Products-V5": {
        "properties": {
          "contentChanges": {
            "items": {
              "$ref": "#/components/schemas/ContentChange__Products-V5"
            },
            "type": "array"
          },
          "links": {
            "description": "a list of links that can be used for pagination.",
            "items": {
              "$ref": "#/components/schemas/ContentChangesLink__Products-V5"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Link__Products-V5": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "prev",
              "next"
            ],
            "example": "self",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products?page=0&limit=100",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentChangesLink__Products-V5": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "prev",
              "next"
            ],
            "example": "self",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products/content-changes?page=0&limit=100",
            "type": "string"
          }
        },
        "type": "object"
      },
      "LinkRelation__Products-V5": {
        "type": "object"
      },
      "Logistics__Products-V5": {
        "description": "In case of using the logistic service of our marketplace, here you may provide information about the packaging of the goods",
        "properties": {
          "packingUnitCount": {
            "description": "The number of packing units.",
            "example": 3,
            "format": "int32",
            "type": "integer"
          },
          "packingUnits": {
            "description": "The measurements of the packing units in g and mm.",
            "items": {
              "$ref": "#/components/schemas/PackingUnit__Products-V5"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "MarketPlaceStatus__Products-V5": {
        "properties": {
          "sku": {
            "description": "Partner-unique identifier for a product variation provided by the partner",
            "example": "82388894-5883-488",
            "type": "string"
          },
          "moin": {
            "description": "Is an identifier, generated by the OTTO marketplace, for a product variation together with the associated content. Is used in the context of \"Wettbewerb am Artikel\" to confirm the content of the existing variation and its correctness and to put the own offer live for this variation.",
            "example": "M00A1234BC",
            "type": "string"
          },
          "status": {
            "description": "the status of the variation on the OTTO market place",
            "enum": [
              "PENDING",
              "ONLINE",
              "RESTRICTED",
              "REJECTED",
              "INACTIVE"
            ],
            "example": "RESTRICTED",
            "type": "string"
          },
          "errors": {
            "description": "errors that occurred when processing the variation",
            "items": {
              "$ref": "#/components/schemas/MarketPlaceStatusError__Products-V5"
            },
            "type": "array"
          },
          "information": {
            "description": "information for product optimization on the OTTO market place",
            "items": {
              "$ref": "#/components/schemas/MarketPlaceStatusInformation__Products-V5"
            },
            "type": "array"
          },
          "links": {
            "description": "contains the link to the partner variation data and to the product in OTTO shop",
            "items": {
              "$ref": "#/components/schemas/MarketPlaceStatusLink__Products-V5"
            },
            "type": "array"
          },
          "lastModified": {
            "description": "last change of the marketplace status as ISO8601 date",
            "example": "2021-07-02T09:30:52.093Z",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "MarketPlaceStatusApiResult__Products-V5": {
        "properties": {
          "marketPlaceStatus": {
            "items": {
              "$ref": "#/components/schemas/MarketPlaceStatus__Products-V5"
            },
            "type": "array"
          },
          "links": {
            "description": "a list of links that can be used for pagination.",
            "items": {
              "$ref": "#/components/schemas/MarketPlaceStatusApiLink__Products-V5"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "MarketPlaceStatusError__Products-V5": {
        "properties": {
          "code": {
            "description": "code to identify the error",
            "example": "800020 - PRODUCTDATASHEET_MISSING",
            "type": "string"
          },
          "title": {
            "description": "short description of the error",
            "example": "Das Produktdatenblatt fehlt.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "MarketPlaceStatusInformation__Products-V5": {
        "properties": {
          "code": {
            "description": "code to identify the information",
            "example": "300007 - INCOMPLETE_MEDIA_ASSET_IMPORT",
            "type": "string"
          },
          "title": {
            "description": "short description of the information",
            "example": "Die Bilder werden zur Zeit verarbeitet. Wir bitten um etwas Geduld. Wenn der Status sich innerhalb der nächsten 24 Stunden nicht verändert, wenden Sie sich bitte an support@otto.market.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "MarketPlaceStatusLink__Products-V5": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "variation",
              "shop"
            ],
            "example": "shop",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "https://www.otto.de/p/myProduct",
            "type": "string"
          }
        },
        "type": "object"
      },
      "MarketPlaceStatusApiLink__Products-V5": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "prev",
              "next"
            ],
            "example": "self",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products/marketplace-status?page=0&limit=100",
            "type": "string"
          }
        },
        "type": "object"
      },
      "MediaAsset__Products-V5": {
        "properties": {
          "type": {
            "description": "The type of the provided media asset. At least one media asset of type 'IMAGE' must be provided. The number of media assets of type 'IMAGE' is not limited.",
            "enum": [
              "IMAGE",
              "DIMENSIONAL_DRAWING",
              "COLOR_VARIANT",
              "ENERGY_EFFICIENCY_LABEL",
              "MATERIAL_SAMPLE",
              "PRODUCT_DATASHEET",
              "USER_MANUAL",
              "MANUFACTURER_WARRANTY",
              "SAFETY_DATASHEET",
              "ASSEMBLY_INSTRUCTIONS",
              "WARNING_LABEL"
            ],
            "example": "IMAGE",
            "type": "string"
          },
          "location": {
            "description": "The partners location of the media asset as a valid URL (see http://www.ietf.org/rfc/rfc2396.txt and http://www.ietf.org/rfc/rfc2732.txt) with a maximum length of 2083 characters. OTTO market will use the link for downloading the media asset and providing it to otto.de. Please note that the image has to be of type JPG or PNG with a RGB color space an a minimum size of 500x1000 pixel and a maximum width of 4500 pixel.",
            "example": "http://apartners.url/image-location",
            "format": "uri",
            "type": "string"
          }
        },
        "required": [
          "location",
          "type"
        ],
        "type": "object"
      },
      "MonetaryAmount__Products-V5": {
        "properties": {
          "amount": {
            "description": "Holds the value of the monetary amount expressed in a currency, e.g. euros. The number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency, e.g. 10 is taken as 10 euros. The value has to have no more than 2 decimal places. If you specify more decimal places, the product variation will be rejected. The same applies, if you use other characters than digits and an optional decimal point, e.g. '2E+4'",
            "example": 19.95,
            "type": "number"
          },
          "currency": {
            "description": "Holds the currency of the monetary amount expressed as a shortcut according to ISO 4217 and http://publications.europa.eu/code/de/de-5000700.htm. NOTE: Currently the only allowed currency code is \"EUR\". All other currency codes will be rejected.",
            "example": "EUR",
            "type": "string"
          }
        },
        "type": "object"
      },
      "NormPriceInfo__Products-V5": {
        "description": "The information about normed prices, must be provided completely, or not at all. The representation of the normprice has to contain the following values for normAmount and normUnit: 1 pcs,1 sqm,1 kg,1 l,1 m,100 ml,100 g,1 g,1000 g,1 pair,1 RM,1 dm3.",
        "properties": {
          "normAmount": {
            "description": "The norm packaging size.",
            "enum": [
              1,
              100,
              1000
            ],
            "example": 100,
            "format": "int32",
            "type": "integer"
          },
          "normUnit": {
            "description": "The name of the unit the norm price is based on.",
            "enum": [
              "Stk",
              "qm",
              "kg",
              "l",
              "m",
              "ml",
              "g",
              "Paar",
              "RM",
              "dm3"
            ],
            "example": "g",
            "type": "string"
          },
          "salesAmount": {
            "description": "The packaging size of the sales unit.",
            "example": 500,
            "type": "number"
          },
          "salesUnit": {
            "description": "The name of the unit the sales price is based on.",
            "enum": [
              "Stk",
              "qm",
              "kg",
              "l",
              "m",
              "ml",
              "g",
              "Paar",
              "RM",
              "dm3"
            ],
            "example": "g",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PackingUnit__Products-V5": {
        "properties": {
          "weight": {
            "description": "The weight of a packing unit in grams.",
            "example": 365,
            "format": "int32",
            "type": "integer"
          },
          "width": {
            "description": "The width of a packing unit in millimeters.",
            "example": 600,
            "format": "int32",
            "type": "integer"
          },
          "height": {
            "description": "The height of a packing unit in millimeters.",
            "example": 200,
            "format": "int32",
            "type": "integer"
          },
          "length": {
            "description": "The depth of a packing unit in millimeters.",
            "example": 300,
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PriceApiResult__Products-V5": {
        "properties": {
          "variationPrices": {
            "items": {
              "$ref": "#/components/schemas/SkuPricing__Products-V5"
            },
            "type": "array"
          },
          "links": {
            "description": "a list of links that can be used for pagination.",
            "items": {
              "$ref": "#/components/schemas/PriceApiResultLink__Products-V5"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Pricing__Products-V5": {
        "description": "this container holds attributes for the different price types, currency and tax related information",
        "properties": {
          "standardPrice": {
            "$ref": "#/components/schemas/MonetaryAmount__Products-V5"
          },
          "vat": {
            "description": "The value added tax that is included in the sales price. Currently \"NONE\" is just mentioned because of technical reasons, but will always result in a validation error.",
            "enum": [
              "FULL",
              "REDUCED",
              "FREE",
              "NONE"
            ],
            "example": "FULL",
            "type": "string"
          },
          "msrp": {
            "$ref": "#/components/schemas/MonetaryAmount__Products-V5"
          },
          "sale": {
            "$ref": "#/components/schemas/Sale__Products-V5"
          },
          "normPriceInfo": {
            "$ref": "#/components/schemas/NormPriceInfo__Products-V5"
          }
        },
        "required": [
          "standardPrice",
          "vat"
        ],
        "type": "object"
      },
      "PriceApiResultLink__Products-V5": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "prev",
              "next"
            ],
            "example": "self",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products/prices?page=0&limit=100",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProductDescription__Products-V5": {
        "description": "Extensive description of the product.",
        "properties": {
          "category": {
            "description": "Denotes the assortment type of the product, like 'bag' or 'shirt'. Mandatory. Must be identical for all variants of a product. Must be present in the Category service offered via Category endpoint",
            "example": "Outdoorjacke",
            "type": "string"
          },
          "brandId": {
            "description": "Denotes the brand ID of a product. Brands and the mapping of their names to brand Ids should be done using the brand endpoint. Must be present in the Brand service offered via Brand endpoint. Must be identical for all variants of a product.",
            "example": "CMWBBRW2",
            "type": "string"
          },
          "productLine": {
            "description": "Denotes the proper name of a product, like '501'. May contain a maximum of 70 characters. If provided, it must be identical for all variants of a product.",
            "example": "501",
            "type": "string"
          },
          "productionDate": {
            "description": "Denotes the ISO8601 date of manufacture of a product variant.",
            "example": "2021-07-02T09:30:52.093Z",
            "format": "date-time",
            "type": "string"
          },
          "multiPack": {
            "description": "If the product variant is part of a set: 'true'; otherwise 'false'",
            "example": true,
            "type": "boolean"
          },
          "bundle": {
            "description": "If the product variant is part of a bundle: 'true'; otherwise 'false'",
            "example": false,
            "type": "boolean"
          },
          "fscCertified": {
            "description": "If the product variant is certified by the Forest Stewardship Council: 'true'; otherwise 'false'",
            "example": true,
            "type": "boolean"
          },
          "disposal": {
            "description": "If true, otto.de will present information about the disposal of the product (or parts of it).",
            "example": false,
            "type": "boolean"
          },
          "productUrl": {
            "description": "Refers to a representation of the product variant in a shop of the partner. Should be a valid URL.",
            "example": "http://myproduct.somewhere.com/productname/",
            "type": "string"
          },
          "description": {
            "description": "Represents a textual description of a product variant. May contain HTML elements. Should contain less than 2000 characters. Relevant for SEO.",
            "example": "<p>Some example words...<b>in bold</b>...some more</p>",
            "type": "string"
          },
          "bulletPoints": {
            "description": "May contain a minimum of 3 and a maximum of 180 characters.",
            "example": [
              "My top key information..."
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "attributes": {
            "description": "Lists all the descriptive information about a product variant a partner can provide. Must be provided in the form of a key values pair. Will be validated against the AttributeDefinitions from Category endpoint provided by Otto market.",
            "items": {
              "$ref": "#/components/schemas/Attribute__Products-V5"
            },
            "type": "array"
          }
        },
        "required": [
          "brandId",
          "category"
        ],
        "type": "object"
      },
      "ProductLink__Products-V5": {
        "type": "object"
      },
      "ProductProcessProgress__Products-V5": {
        "properties": {
          "state": {
            "description": "the current state of the process",
            "enum": [
              "pending",
              "done"
            ],
            "type": "string"
          },
          "message": {
            "description": "a human-readable message describing the current state of the process",
            "type": "string"
          },
          "total": {
            "description": "the total work to complete for this process",
            "format": "int32",
            "type": "integer",
            "example": 7
          },
          "progress": {
            "description": "the fraction of work that is already completed, as compared to the total work",
            "format": "int32",
            "type": "integer",
            "example": 7
          },
          "succeeded": {
            "description": "the number of successfully processed variations",
            "format": "int32",
            "type": "integer",
            "example": 4
          },
          "failed": {
            "description": "the number of failed processed variations",
            "format": "int32",
            "type": "integer",
            "example": 2
          },
          "unchanged": {
            "description": "the number of unchanged and not processed variations",
            "format": "int32",
            "type": "integer",
            "example": 1
          },
          "pingAfter": {
            "description": "recommendation when to poll this resource again to receive a meaningful update - ISO8601 date",
            "example": "2020-05-13T10:40:01.815Z",
            "format": "date-time",
            "type": "string"
          },
          "links": {
            "description": "a list of links that can be used to access detailed information about the process result",
            "items": {
              "$ref": "#/components/schemas/ProductProcessResultLink__Products-V5"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ProductProcessResult__Products-V5": {
        "properties": {
          "results": {
            "items": {
              "$ref": "#/components/schemas/ProductProcessTaskResult__Products-V5"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ProductProcessResultLink__Products-V5": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "failed",
              "succeeded",
              "unchanged"
            ],
            "type": "string",
            "example": "self"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products/update-tasks/11111111-0003-4444-9999-bbbbbbbbbbbbb",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProductProcessTaskError__Products-V5": {
        "properties": {
          "code": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "jsonPath": {
            "type": "string"
          },
          "logref": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProductProcessTaskResult__Products-V5": {
        "properties": {
          "variation": {
            "type": "string"
          },
          "errors": {
            "items": {
              "$ref": "#/components/schemas/ProductProcessTaskError__Products-V5"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ProductVariation__Products-V5": {
        "properties": {
          "productReference": {
            "description": "The productReference groups all variations, that you want to combine into one product. This is not visible to the customer. The productReference can be freely assigned and may consist of maximum 50 characters. You can only use the productReference once within your product catalog. You should therefore use a value that makes sense for all variations of the product and does not refer to any specifics of a particular variation. You will find the product reference, for example, in the product overview in the portal.",
            "example": "UBN-11779",
            "type": "string"
          },
          "sku": {
            "description": "Identifier for a product variation, provided by the partner, must be unique for a partner. It is mandatory, may consist of a maximum of 50 characters and must not contain leading or trailing spaces or non-printable Unicode control characters.",
            "example": "3858389911564",
            "type": "string"
          },
          "ean": {
            "description": "External identifier of a product, must be unique in a partner assortment, must not start with a 2.",
            "example": "3858389911564",
            "type": "string"
          },
          "pzn": {
            "description": "Pharmazentralnummer, a german standard for identifying pharmaceutical products.",
            "example": "PZN-4908802",
            "type": "string"
          },
          "mpn": {
            "description": "Manufacturer part number, may consist of a maximum of 50 characters.",
            "example": "H2G2-42",
            "type": "string"
          },
          "moin": {
            "description": "Is an identifier, generated by the OTTO marketplace, for a product variation together with the associated content. Is used in the context of \"Wettbewerb am Artikel\" to confirm the content of the existing variation and its correctness and to put the own offer live for this variation.",
            "example": "M00A1234BC",
            "type": "string"
          },
          "releaseDate": {
            "description": "ISO8601 Date (e.g. 2024-08-01T08:00:00+0100) on which the product is released by the manufacturer, e.g. computer games.",
            "example": "2019-10-19T00:00:00Z",
            "format": "date-time",
            "type": "string"
          },
          "productDescription": {
            "$ref": "#/components/schemas/ProductDescription__Products-V5"
          },
          "mediaAssets": {
            "description": "A list of media assets describing this product variation. Currently these may only be static images of the types JPG or PNG with a RGB color space. Furthermore the images have to have a minimum size of 500 x 1000 pixel and a maximum width of 4500 pixel. Requirements for media assets can be found at https://account.otto.market/s/article/Vorgaben-fuer-Produktbilder",
            "items": {
              "$ref": "#/components/schemas/MediaAsset__Products-V5"
            },
            "type": "array"
          },
          "order": {
            "$ref": "#/components/schemas/Order__Products-V5"
          },
          "pricing": {
            "$ref": "#/components/schemas/Pricing__Products-V5"
          },
          "logistics": {
            "$ref": "#/components/schemas/Logistics__Products-V5"
          },
          "compliance": {
            "$ref": "#/components/schemas/ProductCompliance__Products-V5"
          }
        },
        "required": [
          "ean",
          "productReference",
          "sku",
          "productDescription",
          "pricing",
          "mediaAssets",
          "compliance"
        ],
        "type": "object"
      },
      "ProductVariationApiResult__Products-V5": {
        "properties": {
          "productVariations": {
            "items": {
              "$ref": "#/components/schemas/ProductVariation__Products-V5"
            },
            "type": "array"
          },
          "links": {
            "description": "a list of links that can be used for pagination.",
            "items": {
              "$ref": "#/components/schemas/Link__Products-V5"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Sale__Products-V5": {
        "properties": {
          "salePrice": {
            "$ref": "#/components/schemas/MonetaryAmount__Products-V5"
          },
          "startDate": {
            "description": "The start ISO8601 date for the sales.",
            "example": "2019-10-19T09:30:00Z",
            "format": "date-time",
            "type": "string"
          },
          "endDate": {
            "description": "The end ISO8601 date for the sales.",
            "example": "2019-10-19T09:30:00Z",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SkuPricing__Products-V5": {
        "properties": {
          "sku": {
            "description": "Partner-unique identifier for a product variation provided by the partner.",
            "type": "string"
          },
          "standardPrice": {
            "$ref": "#/components/schemas/MonetaryAmount__Products-V5"
          },
          "sale": {
            "$ref": "#/components/schemas/Sale__Products-V5"
          }
        },
        "required": [
          "sku",
          "standardPrice"
        ],
        "type": "object"
      },
      "MaxOrderQuantity__Products-V5": {
        "description": "The maximum number of items a consumer may order during a specified time period. E.g. max 10 items every 7 days.",
        "properties": {
          "quantity": {
            "description": "The maximum number of items a consumer may order during a specified time period. Quantity with allowed values from 1 to 50.",
            "example": 10,
            "type": "integer"
          },
          "periodInDays": {
            "description": "The period of time in days during which a consumer may order the specified maximum number of items. Period in days with allowed values from 1 to 90.",
            "example": 7,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Order__Products-V5": {
        "description": "A Container holding order constraints",
        "properties": {
          "maxOrderQuantity": {
            "$ref": "#/components/schemas/MaxOrderQuantity__Products-V5"
          }
        },
        "type": "object"
      },
      "ProductCompliance__Products-V5": {
        "description": "Compliance data must always be maintained. Must be used to provide information relevant for product compliance like e.g. addresses for product safety regulations. For the variations of a product, either the product safety container or the food/feed information container must be provided depending on the product category.",
        "properties": {
          "productSafety": {
            "$ref": "#/components/schemas/ProductSafety__Products-V5"
          },
          "foodInformation": {
            "$ref": "#/components/schemas/FoodInformation__Products-V5"
          }
        },
        "type": "object"
      },
      "ProductSafetyAddress__Products-V5": {
        "description": "",
        "properties": {
          "name": {
            "description": "The company name of the manufacturer or the distributor. Maximum length: 100 characters.",
            "example": "Die Musterfirma GmbH",
            "type": "string"
          },
          "address": {
            "description": "The complete address including street, postal code, city, country. Without any formatting, comma separation, no line breaks. Maximum length: 200 characters.",
            "example": "Musterstraße 1, 12345, Musterstadt, Deutschland",
            "type": "string"
          },
          "regionCode": {
            "description": "Allowed values are all country codes in ISO-3166 Alpha-2 format. Important for validation of the address.",
            "example": "DE",
            "type": "string"
          },
          "email": {
            "description": "A valid and complete email address. Maximum length: 100 characters. **Mandatory** if no URL is specified.",
            "example": "info@die-musterfirma.de",
            "type": "string"
          },
          "url": {
            "description": "Valid URL to the contact information of the manufacturer or distributor (see http://www.ietf.org/rfc/rfc2396.txt and http://www.ietf.org/rfc/rfc2732.txt). Maximum length: 200 characters. **Mandatory** if no email is specified.",
            "example": "https://musterfirma/kontakt-information",
            "type": "string"
          },
          "phone": {
            "description": "A valid phone number. Maximum length: 20 characters.",
            "example": "+ 49 40 123456789",
            "type": "string"
          },
          "roles": {
            "description": "The role(s) of the economic agent to which the address belongs. Allowed values are 'DISTRIBUTOR' and 'MANUFACTURER'. At least one distributor must be specified.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductSafetyAddressRole__Products-V5"
            }
          },
          "components": {
            "description": "Can be used in the case of set products for the correct assignment of addresses to set components, e.g. use components “mouse” and “keyboard” when selling a set of both.",
            "type": "array",
            "items": {
              "example": "mouse",
              "type": "string"
            }
          }
        },
        "required": [
          "name",
          "address",
          "roles"
        ],
        "type": "object"
      },
      "ProductSafetyAddressRole__Products-V5": {
        "description": "The role of an address in the product safety context. Allowed values are 'MANUFACTURER' and 'DISTRIBUTOR'.",
        "enum": [
          "MANUFACTURER",
          "DISTRIBUTOR"
        ],
        "example": "DISTRIBUTOR",
        "type": "string"
      },
      "ProductSafety__Products-V5": {
        "description": "Should be used for providing information about the distributors and/or manufacturer of the product. https://account.otto.market/s/article/Verordnung-ueber-die-allgemeine-Produktsicherheit-EU",
        "properties": {
          "addresses": {
            "description": "The addresses of the distributors and/or manufacturer. If an address is maintained, name, address, email or url and roles are mandatory.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductSafetyAddress__Products-V5"
            }
          }
        },
        "type": "object"
      },
      "FoodInformationAddress__Products-V5": {
        "description": "",
        "properties": {
          "name": {
            "description": "The company name of the food or animal feed business operator. Maximum length: 100 characters.",
            "example": "Die Musterfirma GmbH",
            "type": "string"
          },
          "address": {
            "description": "The complete address including street, postal code, city, country. Without any formatting, with comma separation, no line breaks. Maximum length: 200 characters.",
            "example": "Musterstraße 1, 12345, Musterstadt, Deutschland",
            "type": "string"
          },
          "regionCode": {
            "description": "Allowed values are all country codes in ISO-3166 Alpha-2 format. Important for validation of the address.",
            "example": "DE",
            "type": "string"
          },
          "email": {
            "description": "A valid and complete email address. Maximum length: 100 characters.",
            "example": "info@die-musterfirma.de",
            "type": "string"
          },
          "url": {
            "description": "Valid URL to the contact information of the food or animal feed business operator (see http://www.ietf.org/rfc/rfc2396.txt and http://www.ietf.org/rfc/rfc2732.txt). Maximum length: 200 characters.",
            "example": "https://musterfirma/kontakt-information",
            "type": "string"
          },
          "phone": {
            "description": "A valid phone number. Maximum length: 20 characters.",
            "example": "+ 49 40 123456789",
            "type": "string"
          },
          "roles": {
            "description": "The role of the business operator to which the address belongs. Allowed values are 'FOOD_BUSINESS_OPERATOR' or 'FEED_BUSINESS_OPERATOR'. Every variation within a product must have the same role.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FoodInformationAddressRole__Products-V5"
            }
          },
          "components": {
            "description": "Can be used in the case of set products for the correct assignment of addresses to set components, e.g. use components “Salad” and “Dressing” when selling a set of both.",
            "type": "array",
            "items": {
              "example": "Salad",
              "type": "string"
            }
          }
        },
        "required": [
          "name",
          "address",
          "roles"
        ],
        "type": "object"
      },
      "FoodInformation__Products-V5": {
        "description": "Should be used for providing information about the food or animal feed business operator of the product. The affected assortment can be found in this article: https://account.otto.market/s/article/Weitere-Informationen-Sortimente-mit-besonderen-Anforderungen.",
        "properties": {
          "addresses": {
            "description": "The addresses of the food or animal feed business operator. If an address is maintained, name, address and roles are mandatory.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FoodInformationAddress__Products-V5"
            }
          }
        },
        "type": "object"
      },
      "FoodInformationAddressRole__Products-V5": {
        "description": "The role of an address in the food information context. Allowed values are 'FOOD_BUSINESS_OPERATOR' or 'FEED_BUSINESS_OPERATOR'.",
        "enum": [
          "FOOD_BUSINESS_OPERATOR",
          "FEED_BUSINESS_OPERATOR"
        ],
        "example": "FOOD_BUSINESS_OPERATOR",
        "type": "string"
      },
      "Address__Orders-V4": {
        "type": "object",
        "default": null,
        "description": "Address",
        "properties": {
          "addition": {
            "type": "string",
            "description": "The addition",
            "example": "Hinterm Haus"
          },
          "city": {
            "type": "string",
            "description": "The city",
            "example": "Musterstadt"
          },
          "countryCode": {
            "type": "string",
            "description": "The country in ISO-3166-1 Alpha-3 format",
            "example": "DEU"
          },
          "email": {
            "type": "string",
            "description": "The e-mail address; if part of the delivery address is in plain text; if part of the invoice address it's a pseudonymized e-mail address",
            "example": "test@example.com"
          },
          "firstName": {
            "type": "string",
            "description": "The firstName",
            "example": "Max"
          },
          "houseNumber": {
            "type": "string",
            "description": "The house number",
            "example": "17"
          },
          "lastName": {
            "type": "string",
            "description": "The lastName",
            "example": "Mustermann"
          },
          "phoneNumber": {
            "type": "string",
            "description": "The phone number",
            "example": "0491234567890"
          },
          "salutation": {
            "type": "string",
            "description": "The salutation (MR, MS, COMPANY, UNKNOWN)",
            "example": "MR"
          },
          "street": {
            "type": "string",
            "description": "The street",
            "example": "Musterstraße"
          },
          "zipCode": {
            "type": "string",
            "description": "The zipCode",
            "example": "12345"
          }
        },
        "required": [
          "city",
          "countryCode",
          "firstName",
          "houseNumber",
          "lastName",
          "salutation",
          "street",
          "zipCode"
        ],
        "title": "Address"
      },
      "Amount__Orders-V4": {
        "type": "object",
        "default": null,
        "description": "Amount",
        "properties": {
          "amount": {
            "type": "number",
            "description": "The amount",
            "example": 15.99
          },
          "currency": {
            "type": "string",
            "description": "The currency in ISO_4217 format",
            "example": "EUR",
            "minLength": 1
          }
        },
        "required": [
          "amount",
          "currency"
        ]
      },
      "Dimension__Orders-V4": {
        "type": "object",
        "default": null,
        "description": "Dimension",
        "properties": {
          "displayName": {
            "type": "string",
            "description": "The type description written out for displaying purposes",
            "example": "Farbe"
          },
          "type": {
            "type": "string",
            "description": "The standardized type description",
            "example": "color"
          },
          "value": {
            "type": "string",
            "description": "The actual value of the dimension",
            "example": "schwarz"
          }
        },
        "title": "Dimension"
      },
      "InitialDeliveryFee__Orders-V4": {
        "type": "object",
        "default": null,
        "description": "InitialDeliveryFee",
        "properties": {
          "deliveryFeeAmount": {
            "$ref": "#/components/schemas/Amount__Orders-V4"
          },
          "name": {
            "type": "string",
            "description": "The type of this delivery fee",
            "example": "DELIVERY_FEE_STANDARD"
          },
          "positionItemIds": {
            "type": "array",
            "description": "The position item ids to which this delivery fee applies",
            "example": [
              "1cdef481-683c-4a4c-bf42-fa7f6bb00933",
              "09532b32-6f4e-4277-988b-f5f721ca13c4"
            ],
            "items": {
              "type": "string",
              "description": "The position item ids to which this delivery fee applies",
              "example": "[\"1cdef481-683c-4a4c-bf42-fa7f6bb00933\",\"09532b32-6f4e-4277-988b-f5f721ca13c4\"]"
            },
            "default": null
          },
          "vatRate": {
            "type": "number",
            "description": "The highest VAT rate of the products of all the position items",
            "example": 19
          }
        },
        "required": [
          "deliveryFeeAmount",
          "name",
          "positionItemIds",
          "vatRate"
        ],
        "title": "InitialDeliveryFee"
      },
      "InitialDiscount__Orders-V4": {
        "type": "object",
        "default": null,
        "description": "InitialDiscount",
        "properties": {
          "discountAmount": {
            "$ref": "#/components/schemas/Amount__Orders-V4"
          },
          "discountId": {
            "type": "string",
            "description": "The id of this discount",
            "example": "9978"
          },
          "discountName": {
            "type": "string",
            "description": "The name of this discount",
            "example": "15% auf Technik"
          },
          "name": {
            "type": "string",
            "description": "The type of this discount",
            "example": "DISCOUNT"
          },
          "positionItemIds": {
            "type": "array",
            "description": "The position item ids to which this discount applies",
            "example": [
              "1cdef481-683c-4a4c-bf42-fa7f6bb00933",
              "09532b32-6f4e-4277-988b-f5f721ca13c4"
            ],
            "items": {
              "type": "string",
              "description": "The position item ids to which this discount applies",
              "example": "[\"1cdef481-683c-4a4c-bf42-fa7f6bb00933\",\"09532b32-6f4e-4277-988b-f5f721ca13c4\"]"
            },
            "default": null
          },
          "vatRate": {
            "type": "number",
            "description": "The highest VAT rate between discounted products",
            "example": 19
          }
        },
        "required": [
          "discountAmount",
          "discountId",
          "discountName",
          "name",
          "positionItemIds",
          "vatRate"
        ],
        "title": "InitialDiscount"
      },
      "Link__Orders-V4": {
        "type": "object",
        "default": null,
        "description": "A link to various resources. A link can have different meanings and targets. The type of relation is specified with the property 'rel'.",
        "properties": {
          "href": {
            "type": "string",
            "description": "The url of the link",
            "example": "/v4/orders/12345678,/v4/orders/?nextCursor=bsdjfvbkjdfv"
          },
          "rel": {
            "type": "string",
            "description": "The relation type of the link. See also https://www.iana.org/assignments/link-relations/link-relations.xhtml. The relation type 'next' is used for paging. The relation type 'self' refers to the url of the resource",
            "example": "next,self,describedby"
          }
        },
        "title": "Link"
      },
      "OrderLifecycleInformation__Orders-V4": {
        "type": "object",
        "default": null,
        "description": "OrderLifecycleInformation",
        "properties": {
          "lifecycleChangeDate": {
            "type": "string",
            "format": "date-time",
            "description": "The date, when this order has been placed"
          }
        },
        "required": [
          "lifecycleChangeDate"
        ],
        "title": "OrderLifecycleInformation"
      },
      "PartnerOrder__Orders-V4": {
        "type": "object",
        "default": null,
        "properties": {
          "deliveryAddress": {
            "$ref": "#/components/schemas/Address__Orders-V4"
          },
          "initialDeliveryFees": {
            "type": "array",
            "description": "The delivery fees on customer checkout",
            "items": {
              "$ref": "#/components/schemas/InitialDeliveryFee__Orders-V4"
            },
            "default": null
          },
          "initialDiscounts": {
            "type": "array",
            "description": "The initial discounts on customer checkout",
            "items": {
              "$ref": "#/components/schemas/InitialDiscount__Orders-V4"
            },
            "default": null
          },
          "invoiceAddress": {
            "$ref": "#/components/schemas/Address__Orders-V4"
          },
          "lastModifiedDate": {
            "type": "string",
            "format": "date-time",
            "description": "Last order update date"
          },
          "links": {
            "type": "array",
            "description": "Order related links like the link to fetch the single partner order",
            "items": {
              "$ref": "#/components/schemas/Link__Orders-V4"
            },
            "default": null
          },
          "orderDate": {
            "type": "string",
            "format": "date-time",
            "description": "The date, when this order has been placed"
          },
          "orderLifecycleInformation": {
            "$ref": "#/components/schemas/OrderLifecycleInformation__Orders-V4"
          },
          "orderNumber": {
            "type": "string",
            "description": "The order number. An unique human readable 10 character(alphanumeric) identifier referring to this order ",
            "example": "p982bht4t29"
          },
          "payment": {
            "$ref": "#/components/schemas/Payment__Orders-V4"
          },
          "positionItems": {
            "type": "array",
            "description": "The physical position items of this order. Multiple position item can refer to the same product",
            "items": {
              "$ref": "#/components/schemas/PositionItem__Orders-V4"
            },
            "default": null
          },
          "salesOrderId": {
            "type": "string",
            "description": "The id of the corresponding sales order. For one partner the sales order id is unique",
            "example": "9864623c-42a4-4892-9270-cd733d32362e"
          },
          "suspectedFraudCase": {
            "type": "boolean",
            "default": false,
            "description": "Order is suspected fraud case or not"
          }
        },
        "required": [
          "orderDate",
          "orderLifecycleInformation",
          "orderNumber",
          "positionItems",
          "salesOrderId"
        ],
        "title": "PartnerOrder"
      },
      "PartnerOrderList__Orders-V4": {
        "type": "object",
        "default": null,
        "properties": {
          "links": {
            "type": "array",
            "description": "Links related to the list. E.g. the link to the successive list used during paging.",
            "items": {
              "$ref": "#/components/schemas/Link__Orders-V4"
            },
            "default": null
          },
          "resources": {
            "type": "array",
            "description": "The list of queried resources. In this case partner orders.",
            "items": {
              "$ref": "#/components/schemas/PartnerOrder__Orders-V4"
            },
            "default": null
          }
        },
        "title": "PartnerOrderList"
      },
      "Payment__Orders-V4": {
        "type": "object",
        "default": null,
        "description": "Payment",
        "properties": {
          "paymentMethod": {
            "type": "string",
            "description": "The payment method. Values currently in use are \"INVOICE_SINGLE\", \"INVOICE_INSTALLMENTS\", \"PREPAYMENT\", \"DIRECT_DEBIT\", \"DIRECT_DEBIT_INSTALLMENTS\", \"CREDIT_CARD_ONLINE\" (DEPRECATED), \"PAYPAL\", \"CREDIT_CARD\". These values are subject to change.",
            "example": "INVOICE_SINGLE"
          }
        },
        "required": [
          "paymentMethod"
        ],
        "title": "Payment"
      },
      "PositionItem__Orders-V4": {
        "type": "object",
        "default": null,
        "description": "PositionItem",
        "properties": {
          "cancellationDate": {
            "type": "string",
            "format": "date-time",
            "description": "Date the position item was cancelled"
          },
          "cancellationReason": {
            "type": "string",
            "description": "Reason why a position was cancelled",
            "enum": [
              "CANCELLED_ON_CUSTOMER_WISH",
              "CANCELLED_ON_PARTNER_WISH",
              "PAYMENT_ABORTED",
              "PAYMENT_FRAUD",
              "PARTNER_TERMINATED",
              "ILLEGAL_PRODUCT",
              "MARKETPLACE_FRAUD",
              "CANCELLED_ON_MARKETPLACE_WISH"
            ]
          },
          "dealId": {
            "type": "string",
            "description": "The unique id of the deal related to the position item",
            "example": "d36cbfd9-b7b9-44d5-96d3-052d6fd97a44"
          },
          "dealName": {
            "type": "string",
            "description": "The name of the deal related to the position item",
            "example": "Deal der Woche 52"
          },
          "expectedDeliveryDate": {
            "type": "string",
            "format": "date-time",
            "description": "The date the position item should be delivered",
            "example": "2018-10-30T12:00:00+01:00"
          },
          "fulfillmentStatus": {
            "type": "string",
            "description": "The fulfillment status of the position item",
            "enum": [
              "ANNOUNCED",
              "PROCESSABLE",
              "SENT",
              "RETURNED",
              "CANCELLED_BY_PARTNER",
              "CANCELLED_BY_MARKETPLACE"
            ]
          },
          "itemValueDiscount": {
            "$ref": "#/components/schemas/Amount__Orders-V4"
          },
          "itemValueGrossPrice": {
            "$ref": "#/components/schemas/Amount__Orders-V4"
          },
          "itemValueReducedGrossPrice": {
            "$ref": "#/components/schemas/Amount__Orders-V4"
          },
          "positionItemId": {
            "type": "string",
            "description": "The unique id of the position item",
            "example": "7323981b-14b4-7123-7812-ac783d98132c"
          },
          "processableDate": {
            "type": "string",
            "format": "date-time",
            "description": "Date the position item has reached PROCESSABLE fulfillment status"
          },
          "product": {
            "$ref": "#/components/schemas/Product__Orders-V4"
          },
          "returnAcceptedByMarketplace": {
            "type": "boolean",
            "default": false,
            "description": "Flag to indicate that the return has been accepted by the marketplace",
            "example": true
          },
          "returnedDate": {
            "type": "string",
            "format": "date-time",
            "description": "Date the position item was returned"
          },
          "sentDate": {
            "type": "string",
            "format": "date-time",
            "description": "Date the position item was sent"
          },
          "trackingInfo": {
            "$ref": "#/components/schemas/TrackingInfo__Orders-V4"
          },
          "weeePickup": {
            "type": "boolean",
            "default": false,
            "description": "Position item has electrical and electronic equipment disposal service (WEEE)"
          }
        },
        "required": [
          "fulfillmentStatus",
          "itemValueGrossPrice",
          "positionItemId",
          "product"
        ],
        "title": "PositionItem"
      },
      "Product__Orders-V4": {
        "type": "object",
        "default": null,
        "description": "Product",
        "properties": {
          "articleNumber": {
            "type": "string",
            "description": "The external identifier of the product, it is shown as \"article number\" on the product detail page of otto.de to the customer.",
            "example": "S000003AXQU"
          },
          "dimensions": {
            "type": "array",
            "description": "List of dimensions that are individual for each product type",
            "items": {
              "$ref": "#/components/schemas/Dimension__Orders-V4"
            },
            "default": null
          },
          "ean": {
            "type": "string",
            "description": "EAN number of this product",
            "example": "233232323"
          },
          "productTitle": {
            "type": "string",
            "description": "The title of this product",
            "example": "Black T-Shirt"
          },
          "shopUrl": {
            "type": "string",
            "description": "Shop link for the product"
          },
          "sku": {
            "type": "string",
            "description": "The external identifier of the variation, uniquely identifies a variation in partner cataloq",
            "example": "13033"
          },
          "vatRate": {
            "type": "number",
            "description": "The VAT rate for ordered products and shipping costs",
            "example": 19
          }
        },
        "required": [
          "articleNumber",
          "productTitle",
          "sku",
          "vatRate"
        ],
        "title": "Product"
      },
      "TrackingInfo__Orders-V4": {
        "type": "object",
        "default": null,
        "description": "TrackingInfo",
        "properties": {
          "carrier": {
            "type": "string",
            "description": "The name of the carrier",
            "example": "DHL"
          },
          "carrierServiceCode": {
            "type": "string",
            "description": "The service code provided by the carrier"
          },
          "trackingNumber": {
            "type": "string",
            "description": "The tracking number provided by the carrier",
            "example": "H1234567890123456789"
          }
        },
        "title": "TrackingInfo"
      },
      "TrackingKey__ReturnShipments-V1": {
        "type": "object",
        "required": [
          "carrier",
          "trackingNumber"
        ],
        "properties": {
          "carrier": {
            "description": "The carrier of the returnShipment.",
            "type": "string",
            "enum": [
              "DHL",
              "GLS",
              "HERMES",
              "HES"
            ]
          },
          "trackingNumber": {
            "description": "The tracking number assigned by the carrier.",
            "type": "string"
          }
        },
        "title": "TrackingKey",
        "example": {
          "carrier": "HERMES",
          "trackingNumber": "H1234567890123456789"
        }
      },
      "ReturnPositionItem__ReturnShipments-V1": {
        "description": "A single position item.",
        "type": "object",
        "required": [
          "salesOrderId",
          "salesOrderPositionItemId"
        ],
        "properties": {
          "salesOrderId": {
            "description": "The ID of the sales order from the OTTO Market, as defined in the Order API.",
            "type": "string",
            "format": "uuid",
            "example": "a46fb35b-9c77-41c9-af10-2676b756a9af"
          },
          "salesOrderPositionItemId": {
            "description": "The ID of a position item of the sales order from the OTTO Market, as defined in the Order API.",
            "format": "uuid",
            "type": "string",
            "example": "e454dff5-a96f-4e96-9399-710cf59645c2"
          }
        },
        "title": "ReturnPositionItem"
      },
      "ReturnShipmentState__ReturnShipments-V1": {
        "type": "object",
        "required": [
          "state",
          "occurredOn"
        ],
        "properties": {
          "state": {
            "description": "The tracking state of the returnShipment.",
            "type": "string",
            "enum": [
              "ANNOUNCED",
              "ON_THE_WAY",
              "DELIVERED"
            ]
          },
          "occurredOn": {
            "type": "string",
            "example": "2022-05-01T07:49:12.642Z"
          },
          "statusText": {
            "description": "Optional information from the carrier detailing the tracking state.",
            "type": "string",
            "example": "Retoure am PaketShop abgegeben"
          }
        }
      },
      "ReturnShipment__ReturnShipments-V1": {
        "description": "A returnShipment with full details.",
        "type": "object",
        "required": [
          "returnShipmentId",
          "createdAt",
          "trackingKey",
          "returnPositionItems"
        ],
        "properties": {
          "returnShipmentId": {
            "description": "Internal returnShipment identifier assigned by OTTO Market.",
            "type": "string",
            "example": "602392a2e5c50d0cbfb18a6b"
          },
          "createdAt": {
            "type": "string",
            "example": "2022-05-01T07:49:12.642Z"
          },
          "trackingKey": {
            "$ref": "#/components/schemas/TrackingKey__ReturnShipments-V1"
          },
          "returnPositionItems": {
            "description": "The position items included in the returnShipment.",
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReturnPositionItem__ReturnShipments-V1"
            }
          },
          "states": {
            "description": "The history of tracking states of the returnShipment",
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReturnShipmentState__ReturnShipments-V1"
            }
          }
        },
        "title": "ReturnShipment"
      },
      "ReturnShipmentList__ReturnShipments-V1": {
        "type": "object",
        "properties": {
          "links": {
            "type": "array",
            "description": "Contains one single link, which can be used as pointer for Cursor-based pagination.",
            "items": {
              "$ref": "#/components/schemas/Link__ReturnShipments-V1"
            }
          },
          "resources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReturnShipment__ReturnShipments-V1"
            }
          }
        },
        "title": "ReturnShipmentList"
      },
      "Link__ReturnShipments-V1": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "example": "/v1/return-shipments?next=12345678&limit=25&datefrom=2019-05-02T07:49:12.642Z",
            "description": "The url of the link"
          },
          "rel": {
            "type": "string",
            "example": "next",
            "description": "The relation type of the link. See also https://www.iana.org/assignments/link-relations/link-relations.xhtml. The relation type 'next' is used for paging. The relation type 'self' refers to the url of the ressource"
          }
        },
        "title": "Link",
        "description": "A link to various resources. a Link can have different meanings and targets. The type of relation is specified with the property 'rel'. "
      },
      "Unauthorized__ReturnShipments-V1": {
        "description": "Authentication is required and has failed."
      },
      "BadRequest__ReturnShipments-V1": {
        "description": "The server received invalid request regarding params, payload, pathVariable, Etc.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__ReturnShipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "BAD_REQUEST",
              "detail": "Parameter XYZ is invalid.",
              "path": "/return-shipments"
            }
          ]
        }
      },
      "ForbiddenGetReturnShipmentByTrackingNumber__ReturnShipments-V1": {
        "description": "The partner does not have the required permissions.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__ReturnShipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "INSUFFICIENT_PERMISSION",
              "detail": "The partner is not allowed to get shipment with carrier DHL and tracking number 00340434268030693122",
              "path": "/return-shipments/carriers/DHL/trackingnumbers/00340434268030693122"
            }
          ]
        }
      },
      "ForbiddenGetReturnShipmentByReturnShipmentId__ReturnShipments-V1": {
        "description": "The partner does not have the required permissions.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__ReturnShipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "INSUFFICIENT_PERMISSION",
              "detail": "The partner is not allowed to get shipment with id 101069930815",
              "path": "/return-shipments/101069930815"
            }
          ]
        }
      },
      "NotFoundGetReturnShipmentByTrackingNumber__ReturnShipments-V1": {
        "description": "Server can not find requested resource.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__ReturnShipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "RESOURCE_NOT_FOUND",
              "detail": "Found no shipment with carrier DHL and tracking number 003404342680306931225",
              "path": "/return-shipments/carriers/DHL/trackingnumbers/003404342680306931225"
            }
          ]
        }
      },
      "NotFoundGetReturnShipmentByReturnShipmentId__ReturnShipments-V1": {
        "description": "Server can not find requested resource.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__ReturnShipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "RESOURCE_NOT_FOUND",
              "detail": "Found no shipment with id 1010699308155",
              "path": "/return-shipments/1010699308155"
            }
          ]
        }
      },
      "InternalServerErrorGetReturnShipmentList__ReturnShipments-V1": {
        "description": "An internal server error occurred.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__ReturnShipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "INTERNAL_SERVER_ERROR",
              "path": "/return-shipments?datefrom=2022-05-01T07:49:12.642Z"
            }
          ]
        }
      },
      "InternalServerErrorGetReturnShipmentByTrackingNumber__ReturnShipments-V1": {
        "description": "An internal server error occurred.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__ReturnShipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "INTERNAL_SERVER_ERROR",
              "path": "/return-shipments/carriers/DHL/trackingnumbers/00340434268030693122"
            }
          ]
        }
      },
      "InternalServerErrorGetReturnShipmentByReturnShipmentId__ReturnShipments-V1": {
        "description": "An internal server error occurred.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__ReturnShipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "INTERNAL_SERVER_ERROR",
              "path": "/return-shipments/101069930815"
            }
          ]
        }
      },
      "ErrorDescription__ReturnShipments-V1": {
        "description": "Describes one single error.",
        "type": "object",
        "required": [
          "title",
          "path"
        ],
        "properties": {
          "title": {
            "description": "The short description of the error.",
            "type": "string"
          },
          "detail": {
            "description": "The long description of the error.",
            "type": "string"
          },
          "path": {
            "description": "The called REST path.",
            "type": "string"
          },
          "jsonPath": {
            "description": "The JSON path points either to the object or the value that caused the error. The JSON path could consists of JSON properties and indexes.",
            "type": "string",
            "example": "trackingKey.trackingNumber"
          }
        }
      },
      "Address__Shipments-V1": {
        "type": "object",
        "required": [
          "city",
          "countryCode",
          "zipCode"
        ],
        "properties": {
          "city": {
            "type": "string",
            "example": "Dresden",
            "description": "The city from where the shipment is sent.",
            "minLength": 1,
            "maxLength": 60
          },
          "countryCode": {
            "type": "string",
            "example": "DEU",
            "pattern": "^[A-Z]{3}$",
            "description": "The country code according to [iso-3166-1-alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) from where the shipment is sent."
          },
          "zipCode": {
            "type": "string",
            "example": "01067",
            "description": "The zip code from where the shipment is sent.",
            "minLength": 1,
            "maxLength": 10
          }
        },
        "title": "Address",
        "description": "The warehouse or location from which the shipment will be picked up for final delivery."
      },
      "MultiparcelCreateShipmentRequest__Shipments-V1": {
        "type": "object",
        "required": [
          "shipDate",
          "shipFromAddress",
          "positionItems",
          "trackingKey"
        ],
        "properties": {
          "trackingKey": {
            "$ref": "#/components/schemas/MultiparcelTrackingKey__Shipments-V1"
          },
          "shipDate": {
            "type": "string",
            "format": "date-time",
            "description": "The date that the shipment is handed over to the carrier. Must be a valid UTC dateTime according to ISO 8601.",
            "example": "2019-10-11T07:49:12.642Z"
          },
          "shipFromAddress": {
            "$ref": "#/components/schemas/Address__Shipments-V1"
          },
          "positionItems": {
            "description": "The position items included in shipment.",
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MultiparcelPositionItem__Shipments-V1"
            },
            "example": [
              {
                "positionItemId": "b01b8ad2-a49c-47fc-8ade-8629ec000020",
                "salesOrderId": "bf43d748-f13d-49ca-b2e2-1824e9000021",
                "returnTrackingKey": {
                  "carrier": "DHL",
                  "trackingNumber": "577546565072"
                }
              },
              {
                "positionItemId": "b01b8ad2-a49c-47fc-8ade-8629ec000022",
                "salesOrderId": "bf43d748-f13d-49ca-b2e2-1824e9000021",
                "returnTrackingKey": {
                  "carrier": "DHL",
                  "trackingNumber": "577546565072"
                }
              }
            ]
          }
        },
        "title": "MultiparcelCreateShipmentRequest"
      },
      "CreateShipmentRequest__Shipments-V1": {
        "type": "object",
        "required": [
          "shipDate",
          "shipFromAddress",
          "positionItems",
          "trackingKey"
        ],
        "properties": {
          "trackingKey": {
            "$ref": "#/components/schemas/TrackingKey__Shipments-V1"
          },
          "shipDate": {
            "type": "string",
            "format": "date-time",
            "description": "The date that the shipment is handed over to the carrier. Must be a valid UTC dateTime according to ISO 8601.",
            "example": "2019-10-11T07:49:12.642Z"
          },
          "shipFromAddress": {
            "$ref": "#/components/schemas/Address__Shipments-V1"
          },
          "positionItems": {
            "description": "The position items included in shipment.",
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PositionItem__Shipments-V1"
            },
            "example": [
              {
                "positionItemId": "b01b8ad2-a49c-47fc-8ade-8629ec000020",
                "salesOrderId": "bf43d748-f13d-49ca-b2e2-1824e9000021",
                "returnTrackingKey": {
                  "carrier": "DHL",
                  "trackingNumber": "577546565072"
                }
              },
              {
                "positionItemId": "b01b8ad2-a49c-47fc-8ade-8629ec000022",
                "salesOrderId": "bf43d748-f13d-49ca-b2e2-1824e9000021",
                "returnTrackingKey": {
                  "carrier": "DHL",
                  "trackingNumber": "577546565072"
                }
              }
            ]
          }
        },
        "title": "CreateShipmentRequest"
      },
      "CreateShipmentResponse__Shipments-V1": {
        "type": "object",
        "properties": {
          "shipmentId": {
            "description": "Internal shipment identifier assigned by OTTO Market.",
            "type": "string",
            "example": "100000294699"
          }
        },
        "title": "CreateShipmentResponse"
      },
      "CreateMultiparcelShipmentRequest__Shipments-V1": {
        "minItems": 2,
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/MultiparcelCreateShipmentRequest__Shipments-V1"
        },
        "title": "CreateMultiparcelShipmentRequest"
      },
      "CreateMultiparcelShipmentResponse__Shipments-V1": {
        "type": "object",
        "properties": {
          "multiParcelShipmentId": {
            "description": "Internal multiparcel shipment identifier assigned by OTTO Market.",
            "type": "string",
            "example": "100000294699"
          }
        },
        "title": "CreateMultiparcelShipmentResponse"
      },
      "PositionItem__Shipments-V1": {
        "description": "A single position item.",
        "type": "object",
        "required": [
          "positionItemId",
          "salesOrderId",
          "returnTrackingKey"
        ],
        "properties": {
          "positionItemId": {
            "description": "The ID of a position item of the sales order from the OTTO Market, as defined in the Order API.",
            "format": "uuid",
            "type": "string",
            "example": "e454dff5-a96f-4e96-9399-710cf59645c2"
          },
          "salesOrderId": {
            "description": "The ID of the sales order from the OTTO Market, as defined in the Order API.",
            "type": "string",
            "format": "uuid",
            "example": "a46fb35b-9c77-41c9-af10-2676b756a9af"
          },
          "returnTrackingKey": {
            "$ref": "#/components/schemas/ReturnTrackingKey__Shipments-V1"
          },
          "returnAddressCarrierId": {
            "description": "Unique identifier for the return address and the return carrier combination. A returnAddressCarrierId is required when a partner has multiple return addresses/carriers. This identifier can be obtained through the ReturnsWarehouse API or in the Partner-Portal. Note that all position items within the same shipment must have the same returnAddressCarrierId.",
            "format": "uuid",
            "type": "string",
            "example": "7423afd2-e7ab-4bae-ac30-048b7c0346c1"
          }
        },
        "title": "PositionItem"
      },
      "MultiparcelPositionItem__Shipments-V1": {
        "description": "A single position item.",
        "type": "object",
        "required": [
          "positionItemId",
          "salesOrderId",
          "returnTrackingKey"
        ],
        "properties": {
          "positionItemId": {
            "description": "The ID of a position item of the sales order from the OTTO Market, as defined in the Order API.",
            "format": "uuid",
            "type": "string",
            "example": "e454dff5-a96f-4e96-9399-710cf59645c2"
          },
          "salesOrderId": {
            "description": "The ID of the sales order from the OTTO Market, as defined in the Order API.",
            "type": "string",
            "format": "uuid",
            "example": "a46fb35b-9c77-41c9-af10-2676b756a9af"
          },
          "returnTrackingKey": {
            "$ref": "#/components/schemas/MultiparcelReturnTrackingKey__Shipments-V1"
          },
          "returnAddressCarrierId": {
            "description": "Unique identifier for the return address and the return carrier combination. A returnAddressCarrierId is required when a partner has multiple return addresses/carriers. This identifier can be obtained through the ReturnsWarehouse API or in the Partner-Portal. Note that all position items within the same shipment must have the same returnAddressCarrierId.",
            "format": "uuid",
            "type": "string",
            "example": "7423afd2-e7ab-4bae-ac30-048b7c0346c1"
          }
        },
        "title": "PositionItem"
      },
      "ShipmentState__Shipments-V1": {
        "type": "object",
        "required": [
          "state",
          "occurredOn"
        ],
        "properties": {
          "state": {
            "description": "The tracking state of the shipment.",
            "type": "string",
            "enum": [
              "SENT",
              "ON_THE_WAY",
              "DELIVERED",
              "DELIVERED_FOR_PICKUP",
              "DELIVERY_ATTEMPT_FAILED",
              "ISSUE_OCCURRED"
            ]
          },
          "occurredOn": {
            "type": "string",
            "example": "2022-05-01T07:49:12.642Z"
          }
        }
      },
      "ReturnTrackingKey__Shipments-V1": {
        "description": "The return tracking key for the return process. <br> **Required for parcel deliveries.** <br> **Optional for forwarder deliveries.** <br> Each position item can have its own return tracking key.",
        "type": "object",
        "required": [
          "carrier",
          "trackingNumber"
        ],
        "properties": {
          "carrier": {
            "description": "The carrier for the return process, which can differ from the carrier used to deliver the shipment to the customer. Please be aware that this carrier can not differ from the chosen carrier in the OPC portal.",
            "type": "string",
            "enum": [
              "DHL",
              "GLS",
              "HERMES"
            ]
          },
          "trackingNumber": {
            "description": "The tracking number (or return tracking number) assigned by the carrier.",
            "type": "string"
          }
        },
        "title": "ReturnTrackingKey",
        "example": {
          "carrier": "DHL",
          "trackingNumber": "577546565072"
        }
      },
      "MultiparcelReturnTrackingKey__Shipments-V1": {
        "description": "The return tracking key for the return process. <br> **Required for parcel deliveries.** <br> Each position item can have its own return tracking key.",
        "type": "object",
        "required": [
          "carrier",
          "trackingNumber"
        ],
        "properties": {
          "carrier": {
            "description": "The carrier for the return process, which can differ from the carrier used to deliver the shipment to the customer. Please be aware that this carrier can not differ from the chosen carrier in the OPC portal.",
            "type": "string",
            "enum": [
              "DHL",
              "GLS",
              "HERMES"
            ]
          },
          "trackingNumber": {
            "description": "The tracking number (or return tracking number) assigned by the carrier.",
            "type": "string"
          }
        },
        "title": "ReturnTrackingKey",
        "example": {
          "carrier": "DHL",
          "trackingNumber": "577546565072"
        }
      },
      "Shipment__Shipments-V1": {
        "description": "A shipment with full details.",
        "type": "object",
        "properties": {
          "shipmentId": {
            "description": "Internal shipment identifier assigned by OTTO Market.",
            "type": "string",
            "example": "101068391469"
          },
          "creationDate": {
            "type": "string",
            "example": "2019-10-11T07:49:12.642Z"
          },
          "trackingKey": {
            "$ref": "#/components/schemas/TrackingKey__Shipments-V1"
          },
          "shipDate": {
            "type": "string",
            "example": "2019-09-19T13:00:00.000Z"
          },
          "shipFromAddress": {
            "$ref": "#/components/schemas/Address__Shipments-V1"
          },
          "positionItems": {
            "description": "The position items included in the shipment.",
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PositionItem__Shipments-V1"
            }
          },
          "states": {
            "description": "The history of tracking states of the shipment",
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShipmentState__Shipments-V1"
            }
          }
        },
        "title": "Shipment"
      },
      "ShipmentList__Shipments-V1": {
        "type": "object",
        "properties": {
          "links": {
            "type": "array",
            "description": "Contains one single link, which can be used as pointer for Cursor-based pagination.",
            "items": {
              "$ref": "#/components/schemas/Link__Shipments-V1"
            }
          },
          "resources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShipmentWithMinimumDetails__Shipments-V1"
            }
          }
        },
        "title": "ShipmentList"
      },
      "Link__Shipments-V1": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "example": "/v1/shipments?next=12345678&limit=25&datefrom=2019-05-02T00:00:00Z",
            "description": "The url of the link"
          },
          "rel": {
            "type": "string",
            "example": "next",
            "description": "The relation type of the link. See also https://www.iana.org/assignments/link-relations/link-relations.xhtml. The relation type 'next' is used for paging. The relation type 'self' refers to the url of the ressource"
          }
        },
        "title": "Link",
        "description": "A link to various resources. a Link can have different meanings and targets. The type of relation is specified with the property 'rel'. "
      },
      "ShipmentWithMinimumDetails__Shipments-V1": {
        "description": "A shipment with a reduced number of fields.",
        "type": "object",
        "properties": {
          "creationDate": {
            "type": "string",
            "example": "2019-10-11T07:49:12.642Z"
          },
          "shipmentId": {
            "description": "Internal shipment identifier assigned by OTTO Market.",
            "type": "string",
            "example": "101068626890"
          },
          "trackingKey": {
            "$ref": "#/components/schemas/TrackingKey__Shipments-V1"
          },
          "states": {
            "description": "The history of tracking states of the shipment",
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShipmentState__Shipments-V1"
            }
          }
        },
        "title": "ShipmentWithMinimumDetails"
      },
      "MultiparcelTrackingKey__Shipments-V1": {
        "type": "object",
        "required": [
          "carrier",
          "trackingNumber"
        ],
        "properties": {
          "carrier": {
            "description": "The carrier of the shipment.",
            "type": "string",
            "enum": [
              "DHL",
              "DHL_EXPRESS",
              "DPD",
              "GLS",
              "HERMES",
              "UPS",
              "ABIKS",
              "AJ",
              "AJE",
              "BTW",
              "BURSPED",
              "CARGOLINE",
              "CARGOBOARD",
              "CTL",
              "DACHSER",
              "DB_SCHENKER",
              "DHL_FREIGHT",
              "DHL_HOME_DELIVERY",
              "DSV",
              "ECE",
              "EMONS",
              "EPH_DIREKT",
              "FEDEX",
              "FROEDE",
              "GEIS",
              "GEL",
              "GRASSL",
              "GUETTLER",
              "HASENAUER",
              "HEPPNER",
              "HELLMANN",
              "HES",
              "HEUEL",
              "IDS",
              "ISG",
              "KIESSLING",
              "KOCH",
              "KUEHNE_NAGEL",
              "LOGWIN",
              "MEYER_JUMBO",
              "MIRJAN",
              "ORCARGO",
              "PALLETWAYS",
              "PEISKER",
              "RABEN_LOGISTIK",
              "REIMER",
              "REITHMEIER",
              "RHENUS",
              "RIECK",
              "SCHMIDT_GEVELSBERG",
              "SCHOCKEMOEHLE",
              "SIEVERS",
              "SIMPLE_LOGISTIK",
              "SPEEDTRANS",
              "SPT",
              "VERHOEK",
              "WEISS",
              "ZUFALL",
              "OTHER_FORWARDER"
            ]
          },
          "trackingNumber": {
            "description": "The tracking number assigned by the carrier. <br> Required for parcel deliveries.",
            "type": "string"
          }
        },
        "title": "TrackingKey",
        "example": {
          "carrier": "HERMES",
          "trackingNumber": "H1234567890123456789"
        }
      },
      "TrackingKey__Shipments-V1": {
        "type": "object",
        "required": [
          "carrier",
          "trackingNumber"
        ],
        "properties": {
          "carrier": {
            "description": "The carrier of the shipment.",
            "type": "string",
            "enum": [
              "DHL",
              "DHL_EXPRESS",
              "DPD",
              "GLS",
              "HERMES",
              "UPS",
              "ABIKS",
              "AJ",
              "AJE",
              "BTW",
              "BURSPED",
              "CARGOLINE",
              "CARGOBOARD",
              "CTL",
              "DACHSER",
              "DB_SCHENKER",
              "DHL_FREIGHT",
              "DHL_HOME_DELIVERY",
              "DSV",
              "ECE",
              "EMONS",
              "EPH_DIREKT",
              "FEDEX",
              "FROEDE",
              "GEIS",
              "GEL",
              "GRASSL",
              "GUETTLER",
              "HASENAUER",
              "HEPPNER",
              "HELLMANN",
              "HES",
              "HEUEL",
              "IDS",
              "ISG",
              "KIESSLING",
              "KOCH",
              "KUEHNE_NAGEL",
              "LOGWIN",
              "MEYER_JUMBO",
              "MIRJAN",
              "ORCARGO",
              "PALLETWAYS",
              "PEISKER",
              "RABEN_LOGISTIK",
              "REIMER",
              "REITHMEIER",
              "RHENUS",
              "RIECK",
              "SCHMIDT_GEVELSBERG",
              "SCHOCKEMOEHLE",
              "SIEVERS",
              "SIMPLE_LOGISTIK",
              "SPEEDTRANS",
              "SPT",
              "VERHOEK",
              "WEISS",
              "ZUFALL",
              "OTHER_FORWARDER"
            ]
          },
          "trackingNumber": {
            "description": "The tracking number assigned by the carrier. <br> Required for parcel deliveries. <br> Optional for forwarder deliveries.",
            "type": "string"
          }
        },
        "title": "TrackingKey",
        "example": {
          "carrier": "HERMES",
          "trackingNumber": "H1234567890123456789"
        }
      },
      "BadRequest__Shipments-V1": {
        "description": "The partner sent a bad request.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        }
      },
      "BadRequestAddPositionItemByTrackingNumber__Shipments-V1": {
        "description": "The partner sent a bad request.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        }
      },
      "BadRequestAddPositionItemByShipmentId__Shipments-V1": {
        "description": "The partner sent a bad request.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        }
      },
      "Unauthorized__Shipments-V1": {
        "description": "Authentication is required and has failed."
      },
      "ForbiddenGetShipmentByTrackingNumber__Shipments-V1": {
        "description": "The partner does not have the required permissions.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "INSUFFICIENT_PERMISSION",
              "detail": "The partner is not allowed to get shipment with carrier DHL and tracking number 00340434268030693122",
              "path": "/shipments/carriers/DHL/trackingnumbers/00340434268030693122"
            }
          ]
        }
      },
      "ForbiddenGetShipmentByShipmentId__Shipments-V1": {
        "description": "The partner does not have the required permissions.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "INSUFFICIENT_PERMISSION",
              "detail": "The partner is not allowed to get shipment with id 101069930815",
              "path": "/shipments/101069930815"
            }
          ]
        }
      },
      "NotFoundGetShipmentByTrackingNumber__Shipments-V1": {
        "description": "Server can not find requested resource.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "RESOURCE_NOT_FOUND",
              "detail": "Found no shipment with carrier DHL and tracking number 003404342680306931225",
              "path": "/shipments/carriers/DHL/trackingnumbers/003404342680306931225"
            }
          ]
        }
      },
      "NotFoundGetShipmentByShipmentId__Shipments-V1": {
        "description": "Server can not find requested resource.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "RESOURCE_NOT_FOUND",
              "detail": "Found no shipment with id 1010699308155",
              "path": "/shipments/1010699308155"
            }
          ]
        }
      },
      "NotFoundAddPositionItemByTrackingNumber__Shipments-V1": {
        "description": "Server can not find requested resource.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "RESOURCE_NOT_FOUND",
              "detail": "Found no shipment with carrier DHL and tracking number 003404342680306931252",
              "path": "/shipments/carriers/DHL/trackingnumbers/003404342680306931252/positionitems"
            }
          ]
        }
      },
      "NotFoundAddPositionItemByShipmentId__Shipments-V1": {
        "description": "Server can not find requested resource.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "RESOURCE_NOT_FOUND",
              "detail": "Found no shipment with id 1010699308155",
              "path": "/shipments/1010699308155/positionitems"
            }
          ]
        }
      },
      "Conflict__Shipments-V1": {
        "description": "The request could not be completed due to a conflict with the current state of the target resource. The client should not repeat this request without modification.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "DUPLICATE_TRACKING_KEY",
              "detail": "Tracking key already exists for another shipment.",
              "path": "/shipments"
            }
          ]
        }
      },
      "ConflictMultiparcel__Shipments-V1": {
        "description": "The request could not be completed due to a conflict with the current state of the target resource. The client should not repeat this request without modification.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "DUPLICATE_TRACKING_KEY",
              "detail": "Tracking key already exists for another shipment.",
              "path": "/multiparcel-shipments[0].shipments"
            }
          ]
        }
      },
      "ConflictAddPositionItemByTrackingNumber__Shipments-V1": {
        "description": "The request could not be completed due to a conflict with the current state of the target resource. The client should not repeat this request without modification.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "POSITION_ITEM_INCLUDED_IN_OTHER_SHIPMENT",
              "detail": "One or more of the given position item ids already exist in another shipment",
              "path": "/shipments/carriers/DHL/trackingnumbers/00340434268030693122/positionitems"
            }
          ]
        }
      },
      "ConflictAddPositionItemByShipmentId__Shipments-V1": {
        "description": "The request could not be completed due to a conflict with the current state of the target resource. The client should not repeat this request without modification.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "POSITION_ITEM_INCLUDED_IN_OTHER_SHIPMENT",
              "detail": "One or more of the given position item ids already exist in another shipment",
              "path": "/shipments/101069930815/positionitems"
            }
          ]
        }
      },
      "InternalServerError__Shipments-V1": {
        "description": "An internal server error occurred.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "INTERNAL_SERVER_ERROR",
              "path": "/shipments"
            }
          ]
        }
      },
      "InternalServerErrorMultiparcel__Shipments-V1": {
        "description": "An internal server error occurred.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "INTERNAL_SERVER_ERROR",
              "path": "/multiparcel-shipments"
            }
          ]
        }
      },
      "InternalServerErrorGetShipmentList__Shipments-V1": {
        "description": "An internal server error occurred.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "INTERNAL_SERVER_ERROR",
              "path": "/shipments?datefrom=2019-10-10"
            }
          ]
        }
      },
      "InternalServerErrorGetShipmentByTrackingNumber__Shipments-V1": {
        "description": "An internal server error occurred.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "INTERNAL_SERVER_ERROR",
              "path": "shipments/carriers/DHL/trackingnumbers/00340434268030693122"
            }
          ]
        }
      },
      "InternalServerErrorGetShipmentByShipmentId__Shipments-V1": {
        "description": "An internal server error occurred.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "INTERNAL_SERVER_ERROR",
              "path": "/shipments/101069930815"
            }
          ]
        }
      },
      "InternalServerErrorAddPositionItemByTrackingNumber__Shipments-V1": {
        "description": "An internal server error occurred.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "INTERNAL_SERVER_ERROR",
              "path": "/shipments/carriers/DHL/trackingnumbers/00340434268030693122/positionitem"
            }
          ]
        }
      },
      "InternalServerErrorAddPositionItemByShipmentId__Shipments-V1": {
        "description": "An internal server error occurred.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDescription__Shipments-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "INTERNAL_SERVER_ERROR",
              "path": "/shipments/101069930815/positionitems"
            }
          ]
        }
      },
      "ErrorDescription__Shipments-V1": {
        "description": "Details of the occurred errors.",
        "type": "object",
        "required": [
          "title",
          "path"
        ],
        "properties": {
          "title": {
            "description": "The short description of the error.",
            "type": "string"
          },
          "detail": {
            "description": "The long description of the error.",
            "type": "string"
          },
          "path": {
            "description": "The called REST path.",
            "type": "string"
          },
          "jsonPath": {
            "description": "The JSON path points either to the object or the value that caused the error. The JSON path could consists of JSON properties and indexes.",
            "type": "string",
            "example": "positionItems[0].returnTrackingKey.trackingNumber"
          }
        }
      },
      "ApiErrorV3__Returns-V3": {
        "type": "object",
        "properties": {
          "detail": {
            "type": "string"
          },
          "logref": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "code": {
            "type": "integer",
            "format": "int32"
          }
        },
        "required": [
          "path",
          "title"
        ],
        "title": "ApiError"
      },
      "ApiErrorResponseV3__Returns-V3": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "example": [
              {
                "path": "/v3/returns/rejection",
                "title": "Error message with positionItemId",
                "detail": "details of error with positionItemId",
                "logref": "positionItemId"
              }
            ],
            "description": "List of all the items received from partner",
            "items": {
              "$ref": "#/components/schemas/ApiErrorV3__Returns-V3"
            }
          }
        },
        "title": "ApiErrorResponseV3"
      },
      "AcceptedPartnerReturnV3__Returns-V3": {
        "type": "object",
        "required": [
          "positionItems"
        ],
        "properties": {
          "positionItems": {
            "type": "array",
            "example": [
              {
                "positionItemId": "942e2a36-9112-444e-92e3-3bc3cd93011",
                "salesOrderId": "7423afd2-e7ab-4bae-ac30-048b7c0346c1",
                "condition": "A",
                "reason": "RETURN_RECEIVED"
              }
            ],
            "description": "List of all the items received from partner",
            "items": {
              "$ref": "#/components/schemas/AcceptedPositionItem__Returns-V3"
            }
          }
        },
        "title": "AcceptedPartnerReturnV3"
      },
      "AcceptedPositionItem__Returns-V3": {
        "type": "object",
        "required": [
          "positionItemId",
          "salesOrderId"
        ],
        "properties": {
          "positionItemId": {
            "type": "string",
            "example": "76737ae6-c316-4880-b1ff-a1a92b4866e9",
            "description": "Sales position item ID"
          },
          "salesOrderId": {
            "type": "string",
            "example": "ff2e3713-e28e-492c-b6cd-d076e4b68ef5",
            "description": "Sales order ID"
          },
          "condition": {
            "type": "string",
            "example": "A for originalverpackt / in original packaging; B for wie neu / in mint condition; C for leicht gebraucht / slightly used; D for stark gebraucht / heavily used; E for Irrtum (Ware unvollständig, nicht vorhanden, …) / mistake (Delivery incomplete, not available,...)",
            "description": "Condition of the returned item",
            "enum": [
              "A/B/C/D/E"
            ]
          },
          "reason": {
            "type": "string",
            "example": "RETURN_RECEIVED",
            "description": "Reason for Acceptance",
            "enum": [
              "RETURN_RECEIVED",
              "STATUS_SENT_BY_ACCIDENT",
              "CANCEL_REQUEST_BY_CUSTOMER",
              "REFUND_AFTER_AFFIDAVIT",
              "COMPLAINT",
              "SHIPMENT_LOST",
              "RETURN_LOST",
              "UNDELIVERABLE"
            ]
          }
        },
        "title": "AcceptedPositionItem"
      },
      "AcceptedReturnMultiStatusResponse__Returns-V3": {
        "type": "object",
        "required": [
          "results"
        ],
        "properties": {
          "results": {
            "type": "array",
            "example": [
              {
                "positionItemId": "942e2a36-9112-444e-92e3-3bc3cd93011",
                "salesOrderId": "7423afd2-e7ab-4bae-ac30-048b7c0346c1",
                "condition": "A",
                "reason": "RETURN_RECEIVED"
              }
            ],
            "description": "List of all the items received from partner",
            "items": {
              "$ref": "#/components/schemas/AcceptedPositionItem__Returns-V3"
            }
          },
          "errors": {
            "type": "array",
            "example": [
              {
                "path": "/v3/returns/acceptance",
                "title": "Error message with positionItemId",
                "detail": "details of error with positionItemId",
                "logref": "positionItemId"
              },
              {
                "path": "/v3/returns/acceptance",
                "title": "Error while processing request: 942e2a36-9112-444e-92e3-3bc3cd93011",
                "detail": "Error: Product Not Sent By The Partner for positionItemId: 942e2a36-9112-444e-92e3-3bc3cd93011",
                "logref": "positionItemId"
              },
              {
                "path": "/v3/returns/acceptance",
                "title": "Error while processing request: 942e2a36-9112-444e-92e3-3bc3cd93011",
                "detail": "Error: Product Does Not Belong To Sales Order Id for positionItemId: 942e2a36-9112-444e-92e3-3bc3cd93011",
                "logref": "positionItemId"
              },
              {
                "path": "/v3/returns/acceptance",
                "title": "Error while processing request: 942e2a36-9112-444e-92e3-3bc3cd93011",
                "detail": "Product Is Already Accepted By The Partner for 942e2a36-9112-444e-92e3-3bc3cd93011: positionItemId",
                "logref": "positionItemId"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/ApiErrorV3__Returns-V3"
            }
          }
        },
        "title": "AcceptedReturnMultiStatusResponse"
      },
      "RejectedPartnerReturnV3__Returns-V3": {
        "type": "object",
        "required": [
          "positionItems"
        ],
        "properties": {
          "positionItems": {
            "type": "array",
            "example": [
              {
                "positionItemId": "942e2a36-9112-444e-92e3-3bc3cd93011",
                "salesOrderId": "7423afd2-e7ab-4bae-ac30-048b7c0346c1",
                "condition": "A",
                "reason": "WRONG_ITEM"
              }
            ],
            "description": "List of all the items received from partner",
            "items": {
              "$ref": "#/components/schemas/RejectedPositionItem__Returns-V3"
            }
          }
        },
        "title": "RejectedPartnerReturnV3"
      },
      "RejectedPositionItem__Returns-V3": {
        "type": "object",
        "required": [
          "positionItemId",
          "reason",
          "salesOrderId"
        ],
        "properties": {
          "positionItemId": {
            "type": "string",
            "example": "76737ae6-c316-4880-b1ff-a1a92b4866e9",
            "description": "Sales position item ID"
          },
          "salesOrderId": {
            "type": "string",
            "example": "ff2e3713-e28e-492c-b6cd-d076e4b68ef5",
            "description": "Sales order ID"
          },
          "condition": {
            "type": "string",
            "example": "A for originalverpackt / in original packaging; B for wie neu / in mint condition; C for leicht gebraucht / slightly used; D for stark gebraucht / heavily used; E for Irrtum (Ware unvollständig, nicht vorhanden, …) / mistake (Delivery incomplete, not available,...)",
            "description": "Condition of the returned item",
            "enum": [
              "A/B/C/D/E"
            ]
          },
          "reason": {
            "type": "string",
            "example": "WRONG_ITEM",
            "description": "Reason for Rejection",
            "enum": [
              "THIRD_PARTY_ITEM",
              "WRONG_ITEM",
              "EXCHANGE",
              "DAMAGE_TO_THE_HYGIENE_SEAL",
              "ITEM_DAMAGED",
              "RETURN_PERIOD_EXCEEDED",
              "ITEM_NOT_IN_THE_PARCEL"
            ]
          }
        },
        "title": "RejectedPositionItem"
      },
      "RejectedReturnMultiStatusResponse__Returns-V3": {
        "type": "object",
        "required": [
          "results"
        ],
        "properties": {
          "results": {
            "type": "array",
            "example": [
              {
                "positionItemId": "942e2a36-9112-444e-92e3-3bc3cd93011",
                "salesOrderId": "7423afd2-e7ab-4bae-ac30-048b7c0346c1",
                "condition": "A",
                "reason": "WRONG_ITEM"
              }
            ],
            "description": "List of all the items received from partner",
            "items": {
              "$ref": "#/components/schemas/RejectedPositionItem__Returns-V3"
            }
          },
          "errors": {
            "type": "array",
            "example": [
              {
                "path": "/v3/returns/rejection",
                "title": "Error message with positionItemId",
                "detail": "details of error with positionItemId",
                "logref": "positionItemId"
              },
              {
                "path": "/v3/returns/rejection",
                "title": "Error while processing request: positionItemId",
                "detail": "Error: Product Not Sent By The Partner for positionItemId: positionItemId",
                "logref": "positionItemId"
              },
              {
                "path": "/v3/returns/rejection",
                "title": "Error while processing request: positionItemId",
                "detail": "Error: Product Does Not Belong To Sales Order Id for positionItemId: positionItemId",
                "logref": "positionItemId"
              },
              {
                "path": "/v3/returns/rejection",
                "title": "Error while processing request: positionItemId",
                "detail": "Product Is Already Accepted By The Partner for positionItemId: positionItemId",
                "logref": "positionItemId"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/ApiErrorV3__Returns-V3"
            }
          }
        },
        "title": "RejectedReturnMultiStatusResponse"
      },
      "Link__Returns-V3": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "example": "/v3/returns?status=Accepted",
            "description": "The url of the link"
          },
          "rel": {
            "type": "string",
            "example": "next",
            "description": "The relation type of the link. See also https://www.iana.org/assignments/link-relations/link-relations.xhtml. The relation type 'next' is used for paging. The relation type 'self' refers to the url of the resource"
          }
        },
        "title": "Link",
        "description": "A link to various resources. A Link can have different meanings and targets. The type of relation is specified with the property 'rel'. "
      },
      "ReturnTrackingKey__Returns-V3": {
        "title": "ReturnTrackingKey",
        "type": "object",
        "properties": {
          "trackingNumbers": {
            "type": "array",
            "example": [
              406522044488,
              406522044489
            ],
            "description": "The list of return tracking numbers for the announced item",
            "items": {
              "type": "string"
            }
          },
          "carrier": {
            "type": "string",
            "example": "DHL",
            "description": "The carrier for the announced item"
          }
        },
        "description": "Return tracking details of the returned item."
      },
      "AcceptedStatusData__Returns-V3": {
        "title": "AcceptedStatusData",
        "type": "object",
        "properties": {
          "condition": {
            "type": "string",
            "example": "A for originalverpackt / in original packaging; B for wie neu / in mint condition; C for leicht gebraucht / slightly used; D for stark gebraucht / heavily used; E for Irrtum (Ware unvollständig, nicht vorhanden, …) / mistake (Delivery incomplete, not available,...)",
            "description": "Condition of the returned item"
          },
          "reason": {
            "type": "string",
            "example": "RETURN_RECEIVED",
            "description": "Reason for acceptance",
            "enum": [
              "RETURN_RECEIVED",
              "STATUS_SENT_BY_ACCIDENT",
              "CANCEL_REQUEST_BY_CUSTOMER",
              "REFUND_AFTER_AFFIDAVIT",
              "COMPLAINT",
              "SHIPMENT_LOST",
              "RETURN_LOST",
              "UNDELIVERABLE",
              "OVERDUE_CREDIT",
              "FAST_REFUND",
              "CUSTOMER_CLARIFICATION",
              "LACK_OF_COOPERATION"
            ]
          }
        },
        "description": "Details specific to a 'accepted' return status."
      },
      "AnnouncedStatusData__Returns-V3": {
        "title": "AnnouncedStatusData",
        "type": "object",
        "properties": {
          "returnTrackingKey": {
            "$ref": "#/components/schemas/ReturnTrackingKey__Returns-V3"
          }
        },
        "description": "Details specific to a 'announced' return status."
      },
      "MisdirectedStatusData__Returns-V3": {
        "title": "MisdirectedStatusData",
        "type": "object",
        "properties": {
          "orderNumber": {
            "type": "string",
            "example": "b7c0346c1",
            "description": "Order Number"
          },
          "ottoWarehouseID": {
            "type": "string",
            "example": "e4fae5b7e4fae5b7d4",
            "description": "This is the unique id which helps partner identify the misdirected item"
          }
        },
        "description": "Details specific to a 'misdirected' return status."
      },
      "RejectedStatusData__Returns-V3": {
        "title": "RejectedStatusData",
        "type": "object",
        "properties": {
          "condition": {
            "type": "string",
            "example": "A for originalverpackt / in original packaging; B for wie neu / in mint condition; C for leicht gebraucht / slightly used; D for stark gebraucht / heavily used; E for Irrtum (Ware unvollständig, nicht vorhanden, …) / mistake (Delivery incomplete, not available,...)",
            "description": "Condition of the returned item"
          },
          "reason": {
            "type": "string",
            "example": "WRONG_ITEM",
            "description": "Reason for Rejection",
            "enum": [
              "THIRD_PARTY_ITEM",
              "WRONG_ITEM",
              "EXCHANGE",
              "DAMAGE_TO_THE_HYGIENE_SEAL",
              "ITEM_DAMAGED",
              "RETURN_PERIOD_EXCEEDED",
              "ITEM_NOT_IN_THE_PARCEL"
            ]
          }
        },
        "description": "Details specific to a 'rejected' return status."
      },
      "PositionItem__Returns-V3": {
        "type": "object",
        "properties": {
          "positionItemId": {
            "type": "string",
            "example": "7423afd2-e7ab-4bae-ac30-048b7c0346c1",
            "description": "Sales position item ID"
          },
          "salesOrderId": {
            "type": "string",
            "example": "7423afd2-e7ab-4bae-ac30-048b7c0346c1",
            "description": "Sales order ID"
          },
          "status": {
            "type": "string",
            "example": "MISDIRECTED",
            "description": "Current return status of item.",
            "enum": [
              "ANNOUNCED",
              "ACCEPTED",
              "REJECTED",
              "MISDIRECTED"
            ]
          },
          "occurredTime": {
            "type": "string",
            "example": "2019-08-04T22:00:00.00Z",
            "description": "Date when the last status was updated."
          },
          "details": {
            "$ref": "#/components/schemas/ReturnedItemStatusData__Returns-V3"
          }
        },
        "title": "PositionItem",
        "description": "Details about a positionItem."
      },
      "PositionItemList__Returns-V3": {
        "type": "object",
        "properties": {
          "positionItems": {
            "type": "array",
            "description": "The list of queried items.",
            "items": {
              "$ref": "#/components/schemas/PositionItem__Returns-V3"
            }
          },
          "links": {
            "type": "array",
            "description": "Links related to the list. E.g. the link to the successive list used during paging.",
            "items": {
              "$ref": "#/components/schemas/Link__Returns-V3"
            }
          }
        },
        "title": "PositionItemList"
      },
      "ReturnedItemStatusData__Returns-V3": {
        "type": "object",
        "title": "ReturnedItemStatusData",
        "description": "UnionType: One of  ReturnAnnounced, Misdirected Return, Accepted Return, Rejected Return. This type is never returned to the client only the subtypes are",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AcceptedStatusData__Returns-V3"
          },
          {
            "$ref": "#/components/schemas/AnnouncedStatusData__Returns-V3"
          },
          {
            "$ref": "#/components/schemas/MisdirectedStatusData__Returns-V3"
          },
          {
            "$ref": "#/components/schemas/RejectedStatusData__Returns-V3"
          }
        ]
      },
      "Address__Receipts-V3": {
        "title": "Address",
        "required": [
          "city",
          "countryCode",
          "firstName",
          "lastName",
          "street",
          "zipCode"
        ],
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "First name of person or name of a pick point",
            "example": "Iris"
          },
          "lastName": {
            "type": "string",
            "description": "Last name of a person or a pick point id",
            "example": "Muster"
          },
          "street": {
            "type": "string",
            "description": "Street of address.</br>For sales orders were  placed before 23rd Sep. 2021 street and house number are both parts of this field",
            "example": "Washingtonallee"
          },
          "houseNumber": {
            "type": "string",
            "description": "House number of  address</br>Available for sales orders placed after 23rd Sep. 2021. For older sales orders the house number is part of the field street and this field is not shown at all",
            "example": "42"
          },
          "addition": {
            "type": "string",
            "description": "Additional information of the address</br>Can be used to provide additional information of address",
            "example": "Hinterhof, 1. Stock"
          },
          "zipCode": {
            "type": "string",
            "description": "Zip code of address",
            "example": "22885"
          },
          "city": {
            "type": "string",
            "description": "City of address",
            "example": "Bremerhaven"
          },
          "countryCode": {
            "type": "string",
            "description": "Country of address represented as country code (ISO 3166-1 alpha-3)",
            "example": "DEU"
          }
        },
        "description": "There are different definitions of Address objects in Receipt structure:\n* **invoiceAddress** -  Address of the customer to be billed\n* **deliveryAddress** - Address of the recipient entered by the customer when placing the order. Recipient can be a person or a pickup point.</br>Only available on receipts of receiptType PURCHASE."
      },
      "AddressInformation__Receipts-V3": {
        "title": "AddressInformation",
        "required": [
          "countryCode",
          "zipCode"
        ],
        "type": "object",
        "properties": {
          "zipCode": {
            "type": "string",
            "description": "Zip code of shipFromAddress",
            "example": "60437"
          },
          "countryCode": {
            "type": "string",
            "description": "Country of shipFromAddress represented as country code (ISO 3166-1 alpha-3)",
            "example": "DEU"
          }
        },
        "description": "Place of departure from shipment notification send to OTTO market for items. </br> ATTENTION: If data in shipment notification is not unique per item, it is taken by default."
      },
      "Benefit__Receipts-V3": {
        "title": "Benefit",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Discount code applied to the order to get a reduction. Available when reduction is of type PARTNER_DISCOUNT\n"
          },
          "description": {
            "type": "string",
            "description": "Additional info often printed on the pdf for a PriceModification object (on German receipts always in German)If PriceModification object is of type:\n\n* **PARTNER_DISCOUNT**- discount name, provided with sales order event as part of positionGroupPrice- <br>(What we print on the pdf )- e.g. \"1 € Rabatt\"\n"
          }
        },
        "description": "Additional information about the applied customer benefit.\n"
      },
      "Customer__Receipts-V3": {
        "title": "Customer",
        "required": [
          "invoiceAddress"
        ],
        "type": "object",
        "properties": {
          "invoiceAddress": {
            "$ref": "#/components/schemas/Address__Receipts-V3"
          }
        },
        "description": "Customer details"
      },
      "DeliveryCost__Receipts-V3": {
        "title": "DeliveryCost",
        "required": [
          "deliveryCostType",
          "positionSum",
          "priceModifications",
          "unitPrice"
        ],
        "type": "object",
        "properties": {
          "lineNumber": {
            "type": "integer",
            "description": "Number of line item in which the information is printed on the pdf document of the receipt.\n</br>This information is not reliably provided for older receipts",
            "format": "int32",
            "example": 5
          },
          "deliveryCostType": {
            "type": "string",
            "description": "Type of delivery costs for the shipment of physical goods. </br>\nPossible values:\n* **DELIVERY_FEE_STANDARD** - basic shipping costs\n* **DELIVERY_FEE_FREIGHT_SURCHARGE** - additional freight surcharge for bulky goods\n",
            "example": "DELIVERY_FEE_STANDARD",
            "enum": [
              "DELIVERY_FEE_STANDARD",
              "DELIVERY_FEE_FREIGHT_SURCHARGE"
            ]
          },
          "unitPrice": {
            "$ref": "#/components/schemas/Price__Receipts-V3"
          },
          "positionSum": {
            "$ref": "#/components/schemas/Price__Receipts-V3"
          },
          "priceModifications": {
            "type": "array",
            "description": "List of additional fees and reductions represented as price modifications.\n</br>If there are no price modifications, an empty list is displayed",
            "items": {
              "$ref": "#/components/schemas/PriceModification__Receipts-V3"
            }
          }
        },
        "description": "List of billed logistic costs, if exists for this receipt.\n</br>This list is only used in context of receiptType PURCHASE or REFUND.\n</br>If there are no entries the lists is displayed as empty"
      },
      "DeliveryCostPartialRefundPosition__Receipts-V3": {
        "title": "DeliveryCostPartialRefundPosition",
        "type": "object",
        "description": "This information is currently not available, will be an empty array."
      },
      "Details__Receipts-V3": {
        "title": "Details",
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Additional info often printed on the pdf for a PriceModification object (on German receipts always in German)</br>\nIf PriceModification object is of type:\n* **PARTNER_DISCOUNT** - discount name, provided with sales order event as part of positionGroupPrice: (What we print on the pdf ): e.g.  \"1 € Rabatt\"\n* **DEFECT_COMPENSATION** - ( German translation of defect compensation)  \"**Mängelausgleich**\"\n* **REFUND_COMPLAINT_ITEM** - hard coded \"Preisnachlass Reklamation Artikel\"\n* **REFUND_PAYPAL_DISPUTE** - hard coded “Preisnachlass PayPal Disput“\n* **REFUND_ESCALATION** - hard coded “Preisnachlass Escalation“\n* **REFUND_CREDIT_CARD_DISPUTE** - hard coded \"Preisnachlass CREDIT_CARD Disput\"\n",
            "example": "1 € Rabatt"
          },
          "id": {
            "type": "string",
            "description": "Discount code applied to the order to get a reduction. Available when reduction is of type PARTNER_DISCOUNT",
            "example": "82ffff8f-8709-4060-bcd3-ebdabbbc6514"
          },
          "linkedReceiptNumber": {
            "type": "string",
            "description": "Allows to link an earlier purchase or (partial)refund receipt by human-readable identifier.\n</br>If PriceModification object is of type:\n* **DEFECT_COMPENSATION**: In case of previous (partial) refunds this field contains the human-readable identifier of the partial refund with which the previous refund was made",
            "example": "E-DE-123456789-2020-7"
          },
          "linkedReceiptCreationDate": {
            "type": "string",
            "description": "Allows to show creation date of linked earlier purchase or (partial)refund receipt.\n</br>If PriceModification object is of type:\n* **DEFECT_COMPENSATION**: In case of previous (partial) refunds this field contains the creation date of linked receipt with which the previous refund was made. (ISO-8601 format)",
            "format": "date-time",
            "example": "2022-06-30T14:35:00.221Z"
          },
          "type": {
            "type": "string",
            "description": "The specific types of discounts provided for Marketplace. This field is only applicable when the priceModificationType for the item is PARTNER_DISCOUNT\n</br>Possible values:\n* **PARTNER_DISCOUNT** - a Partner Discount provided because of a booked service \"Rabattaktion\" by the partner\n* **PLATFORM_DISCOUNT** - a Discount for a platform frame provided because of a booked service \"Marktplatz Rabattaktion\" by the partner\n",
            "example": "PARTNER_DISCOUNT",
            "enum": [
              "PARTNER_DISCOUNT",
              "PLATFORM_DISCOUNT"
            ]
          },
          "reason": {
            "type": "string",
            "description": "Detailed reason of priceModifications of priceModificationType REFUND_GOODWILL_ITEM.\n\nPossible values:\n* **GOODWILL_ITEM_FOR_FREE** - Refund item price as goodwill\n* **GOODWILL_ITEM_RETURN_REJECTED** - Price reduction after return rejection as goodwill\n* **GOODWILL_ITEM_DISCOUNT_EXPIRED** - Price reduction after using old discount code as goodwill\n* **GOODWILL_OTHER** - Individual price reduction as goodwill\n",
            "example": "GOODWILL_ITEM_REFUND_REJECTED",
            "enum": [
              "GOODWILL_ITEM_FOR_FREE",
              "GOODWILL_ITEM_RETURN_REJECTED",
              "GOODWILL_ITEM_DISCOUNT_EXPIRED",
              "GOODWILL_OTHER"
            ]
          },
          "linkedPositionItemId": {
            "type": "string",
            "description": "Allows to show the unique identifier (salesOrder)PositionItem of an earlier (partial)refund receipt of items.</br>\nA (salesOrder)PositionItem is the smallest unit of an item that can be ordered.\n\nIt will be present in refund receipts for those _“priceModificationType” which are applicable after purchase receipts are generated_.",
            "example": "d76533b7-9c98-4be5-97a2-c54ba1929b33"
          }
        },
        "description": "Additional information of increase or decrease of the line item described by this PriceModification object"
      },
      "ItemPartialRefundPosition__Receipts-V3": {
        "title": "ItemPartialRefundPosition",
        "required": [
          "articleNumber",
          "partialRefundAmount",
          "positionItemIds",
          "productTitle"
        ],
        "type": "object",
        "properties": {
          "partialRefundDetails": {
            "$ref": "#/components/schemas/PartialRefundDetails__Receipts-V3"
          },
          "lineNumber": {
            "type": "integer",
            "description": "Number of line item in which the information is printed on the pdf document of the receipt.\n</br>This information is not reliably provided for older receipts",
            "format": "int32",
            "example": 3
          },
          "sku": {
            "type": "string",
            "description": "Stock keeping unit of  item. Unique item identifier on partner side",
            "example": "123e4567-e89b-12d3-a456-426652340000"
          },
          "articleNumber": {
            "type": "string",
            "description": "Unique Identifier of item the customer knows from order process",
            "example": "S081B05AP2"
          },
          "productTitle": {
            "type": "string",
            "description": "Product description of item the customer knows from the order process",
            "example": "Bobux »Baby Halbschuhe DIMENSION II für Mädchen« Schnürschuh"
          },
          "variationAttributes": {
            "type": "string",
            "description": "Additional attributes for unique description of  item, if different variants of the item are possible. (String of comma seperated dimensions)\n\nATTENTION: In previous version, the information exists as dimensions",
            "example": "Weiß, 19"
          },
          "positionItemIds": {
            "type": "array",
            "description": "List of unique identifiers of specific instances of ordered items.\n</br>A (salesOrder)PositionItem is the smallest unit of an item that can be ordered",
            "example": [
              "476bb1ac-a227-4710-8ee4-f297a38a309c"
            ],
            "items": {
              "type": "string",
              "description": "List of unique identifiers of specific instances of ordered items.\n</br>A (salesOrder)PositionItem is the smallest unit of an item that can be ordered",
              "example": "[\"476bb1ac-a227-4710-8ee4-f297a38a309c\"]"
            }
          },
          "partialRefundAmount": {
            "$ref": "#/components/schemas/Price__Receipts-V3"
          }
        },
        "description": "List of billed partial refunds of items.\n</br>This list is only used in context of receiptType PARTIAL_REFUND.\n</br>If there are no entries the lists is displayed as empty"
      },
      "ItemPosition__Receipts-V3": {
        "title": "ItemPosition",
        "required": [
          "articleNumber",
          "positionItemIds",
          "positionSum",
          "priceModifications",
          "productTitle",
          "quantity",
          "unitPrice"
        ],
        "type": "object",
        "properties": {
          "lineNumber": {
            "type": "integer",
            "description": "Number of line item in which the information is printed on the pdf document.\n</br>This information is not reliably provided for older receipts",
            "format": "int32",
            "example": 1
          },
          "sku": {
            "type": "string",
            "description": "Stock keeping unit of item. Unique item identifier on partner side.\n</br>This information is not reliably provided for older receipts",
            "example": "123e4567-e89b-12d3-a456-426652340000"
          },
          "expectedPerformancePeriod": {
            "type": "string",
            "description": "Vague performance date. As the exact date is not known when generating the receipt, this information gives an indication when the item will be shipped",
            "example": "Nach Zahlung wird die Lieferung vorbereitet."
          },
          "articleNumber": {
            "type": "string",
            "description": "Unique Identifier of item the customer knows from order process.\n\nATTENTION: Different from the previous version, the field also contains the promotion. In last version the promotion was provided separately",
            "example": "S081B05AP2"
          },
          "productTitle": {
            "type": "string",
            "description": "Product description of item the customer knows from the order process",
            "example": "Bobux »Baby Halbschuhe DIMENSION II für Mädchen« Schnürschuh"
          },
          "variationAttributes": {
            "type": "string",
            "description": "Additional attributes for unique description of an item, if different variants of the item are possible. (String of comma seperated dimensions)\n\nATTENTION: In previous version the information was called dimensions",
            "example": "Weiß, 19"
          },
          "positionItemIds": {
            "type": "array",
            "description": "List of unique identifiers of specific instances of ordered items.\nA (salesOrder)PositionItem is the smallest unit of an item that can be ordered.\n</br>If quantity of the specific LineItem object is bigger than one the list contains more than one entry",
            "example": [
              "476bb1ac-a227-4710-8ee4-f297a38a309c",
              "34gfb1ac-4f45-4710-4ef4-t555a38a309g"
            ],
            "items": {
              "type": "string",
              "description": "List of unique identifiers of specific instances of ordered items.\nA (salesOrder)PositionItem is the smallest unit of an item that can be ordered.\n</br>If quantity of the specific LineItem object is bigger than one the list contains more than one entry",
              "example": "[\"476bb1ac-a227-4710-8ee4-f297a38a309c\",\"34gfb1ac-4f45-4710-4ef4-t555a38a309g\"]"
            }
          },
          "quantity": {
            "type": "integer",
            "description": "Quantity",
            "format": "int32",
            "example": 2
          },
          "unitPrice": {
            "$ref": "#/components/schemas/Price__Receipts-V3"
          },
          "priceToPayPerPositionItems": {
            "type": "array",
            "description": "Price of each unit of the item i.e., price of each positionItemId.</br>It will be available only for PURCHASE receipt",
            "items": {
              "$ref": "#/components/schemas/PriceToPayPerPositionItem__Receipts-V3"
            }
          },
          "positionSum": {
            "$ref": "#/components/schemas/Price__Receipts-V3"
          },
          "priceModifications": {
            "type": "array",
            "description": "List of additional fees and reductions represented as price modifications.\n</br>Currently we only know reductions.\n</br>If there are no entries the list is displayed as empty",
            "items": {
              "$ref": "#/components/schemas/PriceModification__Receipts-V3"
            }
          }
        },
        "description": "List of billed items, if exists.\n</br>This list is only used in context of receiptType PURCHASE or REFUND.\n</br>If there are no entries the lists is displayed as empty"
      },
      "LineItems__Receipts-V3": {
        "title": "LineItems",
        "required": [
          "deliveryCosts",
          "deliveryFeePartialRefundPositions",
          "itemPartialRefundPositions",
          "itemPositions",
          "servicePartialRefundPositions",
          "servicePositions"
        ],
        "type": "object",
        "properties": {
          "itemPositions": {
            "type": "array",
            "description": "List of billed items, if exists.\n</br>This list is only used in context of receiptType PURCHASE or REFUND.\n</br>If there are no entries the lists is displayed as empty",
            "items": {
              "$ref": "#/components/schemas/ItemPosition__Receipts-V3"
            }
          },
          "itemPartialRefundPositions": {
            "type": "array",
            "description": "List of billed partial refunds of items.\n</br>This list is only used in context of receiptType PARTIAL_REFUND.\n</br>If there are no entries the lists is displayed as empty",
            "items": {
              "$ref": "#/components/schemas/ItemPartialRefundPosition__Receipts-V3"
            }
          },
          "servicePositions": {
            "type": "array",
            "description": "List of billed B2C services, if exists for this receipt.\n</br>This list is only used in context of receiptType PURCHASE or REFUND.\n</br>If there are no entries the lists is displayed as empty",
            "items": {
              "$ref": "#/components/schemas/ServicePosition__Receipts-V3"
            }
          },
          "servicePartialRefundPositions": {
            "type": "array",
            "description": "List of billed partial refunds of services.",
            "items": {
              "$ref": "#/components/schemas/ServicePartialRefundPosition__Receipts-V3"
            }
          },
          "deliveryCosts": {
            "type": "array",
            "description": "List of billed logistic costs, if exists for this receipt.\n</br>This list is only used in context of receiptType PURCHASE or REFUND.\n</br>If there are no entries the lists is displayed as empty",
            "items": {
              "$ref": "#/components/schemas/DeliveryCost__Receipts-V3"
            }
          },
          "deliveryFeePartialRefundPositions": {
            "type": "array",
            "description": "This information is currently not available, will be an empty array.",
            "items": {
              "$ref": "#/components/schemas/DeliveryCostPartialRefundPosition__Receipts-V3"
            }
          }
        },
        "description": "Line items for which settlement is made.\n\nATTENTION:\n* In previous version this name was used for  itemPositions only. Now there is a substructure that cares about all billing object of a receipt\n* The object is currently define by mistake as required, we will change it in future as it’s possible that we introduce new receiptTypes without lineItems. For current receiptTypes PURCHASE, PARTIAL_REFUND and REFUND lineItems will always exists."
      },
      "LinkedItemDetails__Receipts-V3": {
        "title": "LinkedItemDetails",
        "required": [
          "articleNumber",
          "productTitle",
          "serviceRelations"
        ],
        "type": "object",
        "properties": {
          "itemReceiptNumber": {
            "type": "string",
            "description": "Human-readable identifier refers to the receipt the linked item was billed. </br>\nDisplayed only if item is billed with another receipt. </br>\nIn case of receiptType\n* **PURCHASE** - **receiptNumber of purchase receipt**.</br>\nIf this field is not present, you will find information in receipt.receiptNumber\n* **REFUND** - **receiptNumber of purchase receipt**. </br>\nIf this field is not present ,you will find information in receipt.linkedReceiptNumber\n",
            "example": "R-DE-123456789-2020-715"
          },
          "itemPartnerName": {
            "type": "string",
            "description": "Name of the partner who sold the linked item.\n</br>Displayed only if the partner is different from partner of the receipt",
            "example": "Tonio Mertez e.K."
          },
          "sku": {
            "type": "string",
            "description": "Stock keeping unit of the linked item. Unique item identifier on partner side\n</br>This information is not reliably provided for older receipts.\n",
            "example": "123e4567-e89b-12d3-a456-426652340000"
          },
          "articleNumber": {
            "type": "string",
            "description": "Unique Identifier of linked item the customer knows from order process.\n\nATTENTION: Different from the previous version, the field also contains the promotion. In last version the promotion was provided separately",
            "example": "S081B05AP2"
          },
          "productTitle": {
            "type": "string",
            "description": "Product description of linked item the customer knows from the order process",
            "example": "Bobux »Baby Halbschuhe DIMENSION II für Mädchen« Schnürschuh"
          },
          "serviceRelations": {
            "type": "array",
            "description": "List of ServiceRelation objects.\n</br>Contains entries if services were sold  together with items otherwise list is empty",
            "items": {
              "$ref": "#/components/schemas/ServiceRelation__Receipts-V3"
            }
          }
        },
        "description": "Additional information to an item directly related to the service.\n</br>Object exists only if the service was sold together with an item"
      },
      "PartialRefundDetails__Receipts-V3": {
        "title": "PartialRefundDetails",
        "type": "object",
        "properties": {
          "benefit": {
            "$ref": "#/components/schemas/Benefit__Receipts-V3"
          }
        },
        "description": "Additional information about the granted partial refund to this item.\n"
      },
      "Partner__Receipts-V3": {
        "title": "Partner",
        "required": [
          "city",
          "countryCode",
          "partnerName",
          "representedBy",
          "street",
          "vatId",
          "zipCode"
        ],
        "type": "object",
        "properties": {
          "partnerName": {
            "type": "string",
            "description": "Name of the selling partner/company.\n\nATTENTION: In previous version the information was called name",
            "example": "Funky Staff GmbH & Co. KG"
          },
          "street": {
            "type": "string",
            "description": "Street and house number of company address",
            "example": "Berner Straße 109"
          },
          "zipCode": {
            "type": "string",
            "description": "Zip code of company address",
            "example": "60437"
          },
          "city": {
            "type": "string",
            "description": "City of company address",
            "example": "Hamburg"
          },
          "countryCode": {
            "type": "string",
            "description": "Country of company address represented as country code (ISO 3166-1 alpha-3)",
            "example": "DEU"
          },
          "vatId": {
            "type": "string",
            "description": "Value added tax identification number of partner",
            "example": "DE215947224"
          },
          "representedBy": {
            "type": "string",
            "description": "The partner's representative(s).\n\nATTENTION: In previous version the information was called legalRepresentatives",
            "example": "Monika Sievers, Paul Ackermann"
          },
          "registerCourt": {
            "type": "string",
            "description": "Court where the company is registered.</br> Information exists if it's maintained in partner core data.\n\nATTENTION: In previous version the information was called districtCourt",
            "example": "Amtsgericht Hamburg"
          },
          "commercialRegisterNumber": {
            "type": "string",
            "description": "Commercial register number. Unique in context of register court.</br> Information exists if it's maintained in partner core data.\n\nATTENTION: In previous version the information was called registerNumber",
            "example": "HRB 5433221"
          },
          "headOfSupervisoryBoard": {
            "type": "string",
            "description": "The partner's head of supervisory board.</br> Information exists if it's maintained in partner core data",
            "example": "Hugo Steiner"
          },
          "shopName": {
            "type": "string",
            "description": "Alias name of partner.</br> Information exists if it's maintained in partner core data",
            "example": "Fun-Shop"
          },
          "weeeRegistrationNumber": {
            "type": "string",
            "description": "WEEE registration number of partner.</br> Information exists if it's maintained in partner core data"
          }
        },
        "description": "Partner for whom the receipt is created"
      },
      "Payment__Receipts-V3": {
        "title": "Payment",
        "required": [
          "paymentMethod",
          "paymentProvider"
        ],
        "type": "object",
        "properties": {
          "paymentProvider": {
            "type": "string",
            "description": "Payment Provider chosen for the order. </br>\nPossible values:\n* **PLAZA** -  Ratepay\n* **OTTOPAYMENTS** - OTTO Payments\n",
            "example": "OTTOPAYMENTS",
            "enum": [
              "PLAZA",
              "OTTOPAYMENTS"
            ]
          },
          "paymentMethod": {
            "type": "string",
            "description": "Payment method chosen by the customer to pay for this order.\n\nPossible values:\n* **INVOICE_SINGLE / INVOICE_INSTALLMENT** - payment on invoice (with or without installments)\n* **DIRECT_DEBIT / DIRECT_DEBIT_INSTALLMENTS** - payment by direct debit (with or without installments)\n* **PREPAYMENT** - payment by prepayment\n* **PAYPAL** - payment by PayPal\n* **CREDIT_CARD** - payment by credit or debit card  (only applicable for paymentProvider = OTTOPAYMENTS)\n* **CREDIT_CARD_ONLINE** - payment by credit card  (only applicable for old paymentProvider = PLAZA)",
            "example": "CREDIT_CARD_ONLINE",
            "enum": [
              "CREDIT_CARD_ONLINE",
              "INVOICE_SINGLE",
              "INVOICE_INSTALLMENTS",
              "DIRECT_DEBIT_INSTALLMENTS",
              "PREPAYMENT",
              "PAYPAL",
              "DIRECT_DEBIT",
              "CREDIT_CARD"
            ]
          },
          "installmentCount": {
            "type": "integer",
            "description": "For payment methods with installments, this attribute indicates how many installments the customer has chosen when placing the order.\n</br>Only available on receipts of receiptType PURCHASE.\n</br>This information is not reliably provided for older receipts",
            "format": "int32",
            "example": 3
          },
          "paymentBreak": {
            "type": "boolean",
            "description": "The field indicates whether customer has chosen paymentBreak <ul><li>Set to <b>true</b>, if customer has chose paymentBreak</li><li>Set to <b>false</b>, if customer hasn’t chosen paymentBreak</li></ul>"
          }
        },
        "description": "Payment details"
      },
      "Price__Receipts-V3": {
        "title": "Price",
        "required": [
          "gross",
          "taxRate",
          "taxType"
        ],
        "type": "object",
        "properties": {
          "taxType": {
            "type": "string",
            "description": "The fields indicates what kind of tax the price object includes.</br>\nCurrently prices of the following taxTypes are possible.\n* **VAT** - vat rate\n* **INSURANCE** - insurance tax\n",
            "example": "VAT",
            "enum": [
              "VAT",
              "INSURANCE"
            ]
          },
          "taxRate": {
            "type": "string",
            "description": "Applied tax rate, if there is any.</br>\nCurrently the entry can only be a decimal number.\n",
            "example": "19.0"
          },
          "gross": {
            "description": "Calculated gross value",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "required": [
                  "amount",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Value of the monetary amount expressed in currency.</br>\nThe number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency,\nE.g. 10.05 EUR = 10 Euro and 5 Cent\n",
                    "example": 209.82
                  },
                  "currency": {
                    "type": "string",
                    "description": "Currency of monetary amount (ISO-4217)",
                    "example": "EUR"
                  }
                }
              }
            ]
          },
          "net": {
            "description": "Calculated net value </br>\nThis information is not reliably provided for older receipts.This information is not reliably provided for older receipts for all Price objects.. In the beginning we only provides this value for receipt.totals. \n</br>In receipts generated after the 01-01-2023 data should always be set in all Price objects.\n",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "required": [
                  "amount",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Value of the monetary amount expressed in currency.</br>\nThe number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency,\nE.g. 10.05 EUR = 10 Euro and 5 Cent\n",
                    "example": 174.85
                  },
                  "currency": {
                    "type": "string",
                    "description": "Currency of monetary amount (ISO-4217)",
                    "example": "EUR"
                  }
                }
              }
            ]
          },
          "tax": {
            "description": "  Calculated tax value </br>\n  This information is not reliably provided for older receipts.This information is not reliably provided for older receipts for all Price objects.. In the beginning we only provides this value for receipt.totals. \n  </br>In receipts generated after the 01-01-2023 data should always be set in all Price objects.\n",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "required": [
                  "amount",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Value of the monetary amount expressed in currency.</br>\nThe number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency,\nE.g. 10.05 EUR = 10 Euro and 5 Cent\n",
                    "example": 34.97
                  },
                  "currency": {
                    "type": "string",
                    "description": "Currency of monetary amount (ISO-4217)",
                    "example": "EUR"
                  }
                }
              }
            ]
          }
        },
        "description": "Costs of an object\nThere are different definitions of Price objects in Receipt structure:\n  * **unitPrice** - Original price for quantity a line item object\n  * **positionSum** - Price for quantity x unitPrice of a line item object minus reductions of all sub priceModification objects, if exist\n  * **partialRefundAmount** - Granted reduction by the partner on line item object\n  * **priceModificationAmount** - Total reduction for the super ordinated line item object. If the line item object has a quantity, this is already been taken into account in this amount.\n  * **priceToPay** - Price for quantity one minus all instant reductions like partner discount ... when selling (excl. earlier partial refunds).</br>Only available on receipts of receiptType PURCHASE.\n"
      },
      "PriceModification__Receipts-V3": {
        "title": "PriceModification",
        "required": [
          "details",
          "priceModificationAmount",
          "priceModificationType"
        ],
        "type": "object",
        "properties": {
          "lineNumber": {
            "type": "integer",
            "description": "Number of line item in which the information is printed on the pdf document of the receipt.\n</br>On the pdf documents increases and decreases do not necessarily have to be shown on the same line. If there is a discrepancy, it is visible by different line numbers of this object and the parent line item object\n</br>This information is not reliably provided for older receipts",
            "format": "int32",
            "example": 1
          },
          "priceModificationType": {
            "type": "string",
            "description": "This type describes the special increases or decreases in detail and how to deal with it.\n\nThe following priceModificationTypes are possible:\n* **PARTNER_DISCOUNT** - Partner-financed immediate discount granted to the customer at the time of purchase.</br>Reduction of parent object item position on PURCHASE and REFUND receipt\n* **DEFECT_COMPENSATION** / **REFUND_COMPLAINT_ITEM** - Partial refund already refunded by a partial refund receipt to compensate a defect.</br>Reduction of parent object item position on REFUND receipt\n* **REFUND_PAYPAL_DISPUTE** - Partial or full amount of item price was refunded due to a dispute in Paypal payment.</br>Reduction of parent object item or service position on REFUND receipt\n* **REFUND_ESCALATION** - Refund already refunded by a partial refund receipt due to an escalation.</br>Reduction of parent object item position on REFUND receipt\n* **REFUND_PARTIAL_AMOUNT_AFTER_SERVICE_CANCELLATION** - A partial refund already refunded after service could not fulfilled completely.</br>Reduction of parent object item and service position on REFUND receipt\n* **REFUND_CREDIT_CARD_DISPUTE** - Refund already refunded by a partial refund receipt due to dispute in CREDIT_CARD payment. Reduction of parent object item or service position on REFUND receipt\n",
            "example": "PARTNER_DISCOUNT",
            "enum": [
              "PARTNER_DISCOUNT",
              "DEFECT_COMPENSATION",
              "REFUND_COMPLAINT_ITEM",
              "REFUND_PAYPAL_DISPUTE",
              "REFUND_ESCALATION",
              "REFUND_PARTIAL_AMOUNT_AFTER_SERVICE_CANCELLATION",
              "REFUND_CREDIT_CARD_DISPUTE"
            ]
          },
          "details": {
            "$ref": "#/components/schemas/Details__Receipts-V3"
          },
          "priceModificationAmount": {
            "$ref": "#/components/schemas/Price__Receipts-V3"
          }
        },
        "description": "List of additional fees and reductions represented as price modifications.\n</br>If there are no price modifications, an empty list is displayed"
      },
      "PriceToPayPerPositionItem__Receipts-V3": {
        "title": "PriceToPayPerPositionItem",
        "required": [
          "positionItemIds",
          "priceToPay"
        ],
        "type": "object",
        "properties": {
          "positionItemIds": {
            "type": "array",
            "description": "List of unique identifiers of specific instances of ordered items.\n</br>A (salesOrder)PositionItem is the smallest unit of an item that can be ordered.\n",
            "example": [
              "476bb1ac-a227-4710-8ee4-f297a38a309c",
              "34gfb1ac-4f45-4710-4ef4-t555a38a309g"
            ],
            "items": {
              "type": "string",
              "description": "List of unique identifiers of specific instances of ordered items.\n</br>A (salesOrder)PositionItem is the smallest unit of an item that can be ordered.\n",
              "example": "[\"476bb1ac-a227-4710-8ee4-f297a38a309c\",\"34gfb1ac-4f45-4710-4ef4-t555a38a309g\"]"
            }
          },
          "priceToPay": {
            "$ref": "#/components/schemas/Price__Receipts-V3"
          }
        },
        "description": "Price of each unit of the item i.e., price of each positionItemId.</br>It will be available only for PURCHASE receipt"
      },
      "Receipt__Receipts-V3": {
        "title": "Receipt",
        "required": [
          "amountDue",
          "creationDate",
          "customer",
          "isRealReceipt",
          "isDeemedSupplierModel",
          "lineItems",
          "orderDate",
          "orderNumber",
          "partner",
          "payment",
          "receiptNumber",
          "receiptType",
          "salesOrderId",
          "totals"
        ],
        "type": "object",
        "properties": {
          "receiptType": {
            "type": "string",
            "description": "Categorisation that classifies the receipts according to the main characteristics\n\nATTENTION: In previous version the information was called type\n",
            "example": "REFUND",
            "enum": [
              "PURCHASE",
              "REFUND",
              "PARTIAL_REFUND"
            ]
          },
          "isRealReceipt": {
            "type": "boolean",
            "description": "   Counterpart to the sentence \"Dies ist kein Beleg/keine Rechnung im Sinne des Umsatzsteuergesetzes und berechtigt nicht zum Vorsteuerabzug.\" on pdf document.\n   * Is set to **true** by default. Sentence is not printed.\n   * Is set to **false** for technical receipts or if partner has to report VAT via the OSS procedure. The Sentence is printed.\n",
            "example": true
          },
          "isDeemedSupplierModel": {
            "type": "boolean",
            "description": "   Counterpart to the sentence \"Die Umsatzsteuer wird von der OTTO GmbH & Co. KGaA abgeführt.\" on PDF document.\n   * Is set to **true** if this receipt is subject to the deemed supplier regime; OTTO Market is liable for VAT. The sentence is printed.\n   * Is set to **false** if this receipt is not subject to the deemed supplier regime; the partner is liable for VAT.\n",
            "example": true
          },
          "receiptNumber": {
            "type": "string",
            "description": "Human readable identifier of a receipt known by customer. </br> Guaranteed to be unique per partner",
            "example": "E-DE-123456789-2020-7"
          },
          "creationDate": {
            "type": "string",
            "description": "Date when receipt is created by system (UTC in ISO-8601 format)",
            "format": "date-time"
          },
          "fulfillmentDate": {
            "type": "string",
            "description": "Date when service fulfilled.",
            "format": "date-time"
          },
          "salesOrderId": {
            "type": "string",
            "description": "Technical identifier of corresponding sales order",
            "example": "80ec6483-4d53-44d8-9ba7-e846ab24da38"
          },
          "orderNumber": {
            "type": "string",
            "description": "Order number of corresponding sales order",
            "example": "1224567"
          },
          "orderDate": {
            "type": "string",
            "description": "Order date of corresponding sales order (UTC in ISO-8601 format)",
            "format": "date-time"
          },
          "shipmentDate": {
            "type": "string",
            "description": "Date when physical items of this receipt were handed over to the carrier to be delivered to the customer (UTC in ISO-8601 format).</br>Only available on receipts of receiptType PURCHASE.",
            "format": "date-time"
          },
          "shipment": {
            "$ref": "#/components/schemas/Shipment__Receipts-V3"
          },
          "linkedReceiptNumber": {
            "type": "string",
            "description": "Human-readable identifier of linked receipt.</br> In case of receiptType PARTIAL_REFUND or REFUND it is the receiptINumber of purchase receipt.\n\nATTENTION: In previous version the information was called originalReceiptNumber",
            "example": "R-DE-123456789-2020-1507"
          },
          "linkedCreationDate": {
            "type": "string",
            "description": "Creation date of linked receipt (UTC in ISO-8601 format).</br>Only available if there is a linked receipt.\n\nATTENTION: In previous version the information was called originalCreatedDate",
            "format": "date-time"
          },
          "payment": {
            "$ref": "#/components/schemas/Payment__Receipts-V3"
          },
          "partner": {
            "$ref": "#/components/schemas/Partner__Receipts-V3"
          },
          "customer": {
            "$ref": "#/components/schemas/Customer__Receipts-V3"
          },
          "deliveryAddress": {
            "$ref": "#/components/schemas/Address__Receipts-V3"
          },
          "lineItems": {
            "$ref": "#/components/schemas/LineItems__Receipts-V3"
          },
          "totals": {
            "type": "array",
            "description": "Total amounts of receipt per tax type and tax rate",
            "items": {
              "$ref": "#/components/schemas/Price__Receipts-V3"
            }
          },
          "refundType": {
            "type": "string",
            "description": "   Field describes the business case of a refund in more detail.\n   <br/>Only available on receipts of receiptType REFUND and not reliable provided on older partial refund receipts.\n\n  The following refundTypes are possible:\n  * **RETURN** - Refund due to a return of an item\n  * **CANCELLATION** - Refund of delivery fees due to a cancellation\n  * **SERVICE_FULL_REFUND_CANCELLED_BY_SDU** - Refund for service only, following service partner (SDU) cancellation\n  * **SERVICE_FULL_REFUND_CANCELLED_BY_CUSTOMER**- Refund for service only, following customer cancellation\n  * **SERVICE_FULL_REFUND_PRODUCT_RETURNED** - Refund for service only, following product return\n",
            "enum": [
              "RETURN",
              "CANCELLATION",
              "SERVICE_FULL_REFUND_CANCELLED_BY_SDU",
              "SERVICE_FULL_REFUND_CANCELLED_BY_CUSTOMER",
              "SERVICE_FULL_REFUND_PRODUCT_RETURNED"
            ]
          },
          "partialRefundType": {
            "type": "string",
            "description": "Business case of partial refund chosen by partner. Has an impact on the business flow and the PDF.\n                                                                                             </br>Only available on receipts of receiptType PARTIAL_REFUND and not reliable provides on older partial refunds receipts.\n\nPossible values:\n* **REFUND_COMPLAINT_ITEM** - Refund because of justified customer complaint on item\n* **REFUND_PAYPAL_DISPUTE** - Partial or full amount of item price was refunded due to a dispute in Paypal payment\n* **REFUND_ESCALATION** - Partial amount of item price was refunded due to an escalation\n* **REFUND_PARTIAL_AMOUNT_AFTER_SERVICE_CANCELLATION** - Lowering of service price after service was not fulfilled completely\n* **REFUND_CREDIT_CARD_DISPUTE** - Partial or full amount of item price was refunded due to a dispute in CREDIT_CARD payment\n",
            "example": "REFUND_COMPLAINT_ITEM",
            "enum": [
              "REFUND_COMPLAINT_ITEM",
              "REFUND_PAYPAL_DISPUTE",
              "REFUND_ESCALATION",
              "REFUND_PARTIAL_AMOUNT_AFTER_SERVICE_CANCELLATION",
              "REFUND_CREDIT_CARD_DISPUTE"
            ]
          },
          "amountDue": {
            "description": "The amountDue documents the gross amount a customer still has to pay or will be refunded respectively owes less (the latter decision depends on the chosen payment method) with this receipt.\n</br>As in case of receiptType PURCHASE and a prepaid payment method we know for sure that the customer has already paid in advance, so the amount is 0 € otherwise the content is identically with totalsGrossAmount",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "required": [
                  "amount",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Value of the monetary amount expressed in currency.</br>\nThe number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency,\nE.g. 10.05 EUR = 10 Euro and 5 Cent\n",
                    "example": 209.82
                  },
                  "currency": {
                    "type": "string",
                    "description": "Currency of monetary amount (ISO-4217)",
                    "example": "EUR"
                  }
                }
              }
            ]
          },
          "totalsGrossAmount": {
            "description": "Gross amounts of totals summed up over all prices. Only available on receipts of receiptType PURCHASE",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "required": [
                  "amount",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Value of the monetary amount expressed in currency.</br>\nThe number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency,\nE.g. 10.05 EUR = 10 Euro and 5 Cent\n",
                    "example": 209.82
                  },
                  "currency": {
                    "type": "string",
                    "description": "Currency of monetary amount (ISO-4217)",
                    "example": "EUR"
                  }
                }
              }
            ]
          },
          "totalsReductions": {
            "type": "array",
            "description": "Reduction amounts on total value of receipts (currently it includes voucher reduction)",
            "items": {
              "$ref": "#/components/schemas/TotalsReduction__Receipts-V3"
            }
          }
        },
        "description": "Collection of all details of a receipt"
      },
      "ServicePartialRefundPosition__Receipts-V3": {
        "title": "ServicePartialRefundPosition",
        "type": "object",
        "properties": {
          "lineNumber": {
            "type": "integer",
            "description": "Number of line item in which the information is printed on the pdf document of the receipt.\n</br>This information is not reliably provided for older receipts",
            "format": "int32"
          },
          "serviceType": {
            "type": "string",
            "description": "Categorization that classifies services according to their main characteristics. Services of the same type are often treated in the same way.\nCurrently, the processing of the following types are possible:\n* **DISPOSAL** - Free take away of old technical devices required by law\n* **INSURANCE** - Product insurance\n* **WARRANTY_EXTERNAL** - Long term warranty sold by partners != OTTO",
            "enum": [
              "DISPOSAL",
              "INSURANCE",
              "WARRANTY_EXTERNAL"
            ]
          },
          "serviceName": {
            "type": "string",
            "description": "Service name of a special specification of a service type that the customer has seen in the ordering process."
          },
          "servicePositionItemIds": {
            "type": "array",
            "description": "List of unique identifiers of specific instances of services. A servicePositionItem is the smallest unit of a service that can be ordered. If quantity of this object is bigger than one the list contains more than one entry.",
            "items": {
              "type": "string",
              "description": "List of unique identifiers of specific instances of services. A servicePositionItem is the smallest unit of a service that can be ordered. If quantity of this object is bigger than one the list contains more than one entry."
            }
          },
          "partialRefundAmount": {
            "$ref": "#/components/schemas/Price__Receipts-V3"
          },
          "insurancePeriod": {
            "type": "integer",
            "description": "Services of serviceType WARRANTY or INSURANCE could be offered with different durations. This field will show the duration as month.",
            "format": "int32"
          }
        },
        "description": "List of billed partial refunds of services."
      },
      "ServicePosition__Receipts-V3": {
        "title": "ServicePosition",
        "required": [
          "positionSum",
          "priceModifications",
          "quantity",
          "serviceName",
          "servicePositionItemIds",
          "unitPrice"
        ],
        "type": "object",
        "properties": {
          "lineNumber": {
            "type": "integer",
            "description": "Number of line item in which the information is printed on the pdf document of the receipt.\n</br>This information is not reliably provided for older receipts",
            "format": "int32",
            "example": 3
          },
          "serviceType": {
            "type": "string",
            "description": "Categorization that classifies services according to their main characteristics. Services of the same type are often treated in the same way.\nCurrently, the processing of the following types are possible:\n* **DISPOSAL** - Free take away of old technical devices required by law\n* **INSURANCE** - Product insurance\n* **WARRANTY_EXTERNAL** - Long term warranty sold by partners != OTTO\n",
            "example": "DISPOSAL",
            "enum": [
              "DISPOSAL",
              "INSURANCE",
              "WARRANTY_EXTERNAL"
            ]
          },
          "expectedPerformancePeriod": {
            "type": "string",
            "description": "Vague performance date. </br>As the exact date is not known when generating the receipt, this information gives an indication when the service is expected to be fulfilled"
          },
          "serviceName": {
            "type": "string",
            "description": "Service name  the customer knows from the order process",
            "example": "48 Monate Langzeitgarantie Personal Care"
          },
          "servicePositionItemIds": {
            "type": "array",
            "description": "List of unique identifiers of specific instances of services.\n</br>A servicePositionItem is the smallest unit of a service that can be ordered.\n</br>If quantity of this object is bigger than one, the list contains more than one entry",
            "example": [
              "476bb1ac-a2277-4710-8ee4-f297a38a309c",
              "476bb1ac-a227-4710-8ee4-f297a38a309b"
            ],
            "items": {
              "type": "string",
              "description": "List of unique identifiers of specific instances of services.\n</br>A servicePositionItem is the smallest unit of a service that can be ordered.\n</br>If quantity of this object is bigger than one, the list contains more than one entry",
              "example": "[\"476bb1ac-a2277-4710-8ee4-f297a38a309c\",\"476bb1ac-a227-4710-8ee4-f297a38a309b\"]"
            }
          },
          "linkedItemDetails": {
            "$ref": "#/components/schemas/LinkedItemDetails__Receipts-V3"
          },
          "quantity": {
            "type": "integer",
            "description": "Quantity",
            "format": "int32",
            "example": 2
          },
          "unitPrice": {
            "$ref": "#/components/schemas/Price__Receipts-V3"
          },
          "positionSum": {
            "$ref": "#/components/schemas/Price__Receipts-V3"
          },
          "priceModifications": {
            "type": "array",
            "description": "List of additional fees and reductions represented as price modifications.\n</br>Currently we only know reductions.\n</br>If there are no entries the list is displayed as empty",
            "items": {
              "$ref": "#/components/schemas/PriceModification__Receipts-V3"
            }
          },
          "insurancePeriod": {
            "type": "integer",
            "description": "Services of serviceType WARRANTY or INSURANCE could be offered with different durations. This field will show the duration as month.",
            "format": "int32"
          }
        },
        "description": "List of billed B2C services and insurances."
      },
      "ServiceRelation__Receipts-V3": {
        "title": "ServiceRelation",
        "required": [
          "positionItemId",
          "servicePositionItemId"
        ],
        "type": "object",
        "properties": {
          "servicePositionItemId": {
            "type": "string",
            "description": "Unique identifier of a specific instance of a service.  ServicePositionItem is the smallest unit of service that can be ordered",
            "example": "476bb1ac-a2277-4710-8ee4-f297a38a309c"
          },
          "positionItemId": {
            "type": "string",
            "description": "Unique identifier of a specific instance of an ordered item (salesOrder)PositionItem is the smallest unit of an item that can be ordered",
            "example": "476bb1ac-a2277-4710-8ee4-f297a38a309b"
          }
        },
        "description": "A ServiceRelation object describes the relationship between a specific instance of a servicePositionItem object and a specific instance of a (salesOrder)PositionItem object"
      },
      "Shipment__Receipts-V3": {
        "title": "Shipment",
        "required": [
          "shipFromAddress"
        ],
        "type": "object",
        "properties": {
          "shipFromAddress": {
            "$ref": "#/components/schemas/AddressInformation__Receipts-V3"
          }
        },
        "description": "Shipment details. </br> Only provided on receipts of receiptType PURCHASE containing items. </br> This information is not reliably provided for receipts before 01.03.2024."
      },
      "TotalsReduction__Receipts-V3": {
        "title": "TotalsReduction",
        "required": [
          "gross",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of reductions applied on total value of receipts.\n\nPossible types:\n* **VOUCHER** - voucher used to pay the receipt\n",
            "example": "VOUCHER",
            "enum": [
              "VOUCHER"
            ]
          },
          "details": {
            "$ref": "#/components/schemas/TotalsReductionDetails__Receipts-V3"
          },
          "gross": {
            "description": "Gross value of reductions. This will lower the amountDue",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "required": [
                  "amount",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Value of the monetary amount expressed in currency.</br>\nThe number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency,\nE.g. 10.05 EUR = 10 Euro and 5 Cent\n"
                  },
                  "currency": {
                    "type": "string",
                    "description": "Currency of monetary amount (ISO-4217)",
                    "example": "EUR"
                  }
                }
              }
            ]
          }
        },
        "description": "Reduction amounts on total value of receipts (currently it includes voucher reduction)"
      },
      "TotalsReductionDetails__Receipts-V3": {
        "title": "TotalsReductionDetails",
        "type": "object",
        "properties": {
          "voucherCode": {
            "type": "string",
            "description": "The code of voucher associated with the receipt (contains only last 4 digits of code)",
            "example": "****EFGH"
          }
        },
        "description": "Additional information of reductions"
      },
      "Link__Receipts-V3": {
        "title": "Link",
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "The url of the link",
            "example": "/v3/receipts?limit=128&page=2"
          },
          "rel": {
            "type": "string",
            "description": "The relation type of the link. See also https://www.iana.org/assignments/link-relations/link-relations.xhtml. The relation type 'next' is used for paging. The relation type 'self' refers to the url of the resource",
            "example": "next,self,describedby"
          }
        },
        "description": "A link to various resources. a Link can have different meanings and targets. The type of relation is specified with the property 'rel'. "
      },
      "ReceiptsList__Receipts-V3": {
        "title": "ReceiptsList",
        "type": "object",
        "properties": {
          "resources": {
            "type": "array",
            "description": "The list of queried resources. In this case partner receipts.",
            "items": {
              "$ref": "#/components/schemas/Receipt__Receipts-V3"
            }
          },
          "links": {
            "type": "array",
            "description": "Links related to the list. E.g. the link to the successive list used during paging.",
            "items": {
              "$ref": "#/components/schemas/Link__Receipts-V3"
            }
          }
        }
      },
      "PriceReductionResponse__Price-Reductions-V1": {
        "title": "PriceReductionResponse",
        "type": "object",
        "properties": {
          "salesOrderId": {
            "type": "string",
            "description": "salesOrderId for an item",
            "format": "uuid"
          },
          "totalPriceReduction": {
            "description": "sum of all the price reductions for a positionItemId.",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Holds the value of the monetary amount expressed in a currency, e.g. euros. The number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency, e.g. 10 is taken as 10 euros",
                    "example": 121.01
                  },
                  "currency": {
                    "type": "string",
                    "description": "Holds the currency of the monetary amount expressed as a shortcut according to ISO 4217 and http://publications.europa.eu/code/de/de-5000700.htm. Currently Only EUR is supported as a currency",
                    "example": "EUR"
                  }
                }
              }
            ]
          },
          "invoicePrice": {
            "description": "the price of the positionItemId as per the invoice generated for the order.",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Holds the value of the monetary amount expressed in a currency, e.g. euros. The number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency, e.g. 10 is taken as 10 euros",
                    "example": 121.01
                  },
                  "currency": {
                    "type": "string",
                    "description": "Holds the currency of the monetary amount expressed as a shortcut according to ISO 4217 and http://publications.europa.eu/code/de/de-5000700.htm. Currently Only EUR is supported as a currency",
                    "example": "EUR"
                  }
                }
              }
            ]
          },
          "priceReductions": {
            "type": "array",
            "description": "all price reductions applied for an item",
            "items": {
              "$ref": "#/components/schemas/PriceReductionDetail__Price-Reductions-V1"
            }
          },
          "positionItemId": {
            "type": "string",
            "description": "positionItemId for an item",
            "format": "uuid"
          }
        }
      },
      "APIErrorResponse__Price-Reductions-V1": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/APIResponse__Price-Reductions-V1"
            }
          }
        }
      },
      "APIResponse__Price-Reductions-V1": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "code": {
            "type": "integer",
            "format": "int32"
          },
          "detail": {
            "type": "string"
          },
          "logref": {
            "type": "string"
          }
        }
      },
      "PriceReductionDetail__Price-Reductions-V1": {
        "type": "object",
        "properties": {
          "receiptNumber": {
            "type": "string",
            "description": "receiptNumber of the receipt generated for the price reduction. The receiptNumber would be null is the status of the price reduction is Initiated"
          },
          "priceReduction": {
            "description": "the price reduction amount for a positionItemId.",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Holds the value of the monetary amount expressed in a currency, e.g. euros. The number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency, e.g. 10 is taken as 10 euros",
                    "example": 121.01
                  },
                  "currency": {
                    "type": "string",
                    "description": "Holds the currency of the monetary amount expressed as a shortcut according to ISO 4217 and http://publications.europa.eu/code/de/de-5000700.htm. Currently Only EUR is supported as a currency",
                    "example": "EUR"
                  }
                }
              }
            ]
          },
          "creationDateTime": {
            "type": "string"
          },
          "status": {
            "description": "Status of the price reduction.\n- INITIATED: This status implies that the reduction are pending for receipt generation, and receiptId and receiptNumber would be null for INITIATED reductions.\n- PROCESSED: This status implies that the reductions for which receipts are generated.\n- REJECTED: This status implies that the reductions which failed validations and were not processed. eg. reductions applied on the positionItemId after it is marked as returned.\n",
            "enum": [
              "PROCESSED",
              "INITIATED",
              "REJECTED"
            ]
          }
        },
        "description": "all price reductions applied for an item"
      },
      "Link__Price-Reductions-V1": {
        "title": "Link",
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "The url of the link",
            "example": "/v1/price-reductions?limit=1&page=2"
          },
          "rel": {
            "type": "string",
            "description": "The relation type of the link. See also https://www.iana.org/assignments/link-relations/link-relations.xhtml. The relation type 'next' is used for paging",
            "example": "next"
          }
        },
        "description": "A link to various resources. a Link can have different meanings and targets. The type of relation is specified with the property 'rel'. "
      },
      "PriceReductionsResponse__Price-Reductions-V1": {
        "title": "PriceReductionsResponse",
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "description": "The list of queried resources. In this case partner reductions.",
            "items": {
              "$ref": "#/components/schemas/PriceReductionResponse__Price-Reductions-V1"
            }
          },
          "links": {
            "type": "array",
            "description": "Links related to the list. E.g. the link to the successive list used during paging.",
            "items": {
              "$ref": "#/components/schemas/Link__Price-Reductions-V1"
            }
          }
        }
      },
      "PartnerPriceReductionRequest__Price-Reductions-V1": {
        "required": [
          "positionItemId",
          "priceReduction",
          "salesOrderId"
        ],
        "type": "object",
        "properties": {
          "positionItemId": {
            "type": "string",
            "format": "uuid"
          },
          "salesOrderId": {
            "type": "string",
            "format": "uuid"
          },
          "priceReduction": {
            "description": "The price reduction amount to be applied on the positionItemId.",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Holds the value of the monetary amount expressed in a currency, e.g. euros. The number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency, e.g. 10 is taken as 10 euros",
                    "example": 121.01
                  },
                  "currency": {
                    "type": "string",
                    "description": "Holds the currency of the monetary amount expressed as a shortcut according to ISO 4217 and http://publications.europa.eu/code/de/de-5000700.htm. Currently Only EUR is supported as a currency",
                    "example": "EUR"
                  }
                }
              }
            ]
          }
        }
      },
      "ForbiddenApplyPriceReduction__Price-Reductions-V1": {
        "description": "The partner does not have the required permissions.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/APIErrorResponse__Price-Reductions-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "Forbidden",
              "code": 403,
              "detail": "Access is denied, please make sure you have right permissions.",
              "path": "/v1/price-reductions/{salesOrderId}/{positionItemId}"
            }
          ]
        }
      },
      "ForbiddenGetPriceReduction__Price-Reductions-V1": {
        "description": "The partner does not have the required permissions.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/APIErrorResponse__Price-Reductions-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "Forbidden",
              "code": 403,
              "detail": "Access is denied, please make sure you have right permissions",
              "path": "/v1/price-reductions/"
            }
          ]
        }
      },
      "NotFoundPriceReductionForPositionItemId__Price-Reductions-V1": {
        "description": "Price reduction for a positionItemId does not exist.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/APIErrorResponse__Price-Reductions-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "Not Found",
              "code": 404,
              "detail": "No PriceReduction applied for item with positionItemId",
              "path": "/v1/price-reductions/{salesOrderId}/{positionItemId}"
            }
          ]
        }
      },
      "NotFoundPositionItemId__Price-Reductions-V1": {
        "description": "PositionItemId does not exist",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/APIErrorResponse__Price-Reductions-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "Not Found",
              "code": 404,
              "detail": "PositionItemId does not exist",
              "path": "/v1/price-reductions/{salesOrderId}/{positionItemId}"
            }
          ]
        }
      },
      "ConflictPositionItemId__Price-Reductions-V1": {
        "description": "PositionItemId is not shipped or returned.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/APIErrorResponse__Price-Reductions-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "Conflict",
              "code": 409,
              "detail": "Price reduction cannot be applied as sales order position item is not yet shipped or has been returned.",
              "path": "/v1/price-reductions/{salesOrderId}/{positionItemId}"
            }
          ]
        }
      },
      "AcceptedPriceReductionResponse__Price-Reductions-V1": {
        "description": "Price reduction has been initiated successfully. Please wait for sometime.",
        "type": "object",
        "properties": {
          "results": {
            "$ref": "#/components/schemas/APIResponse__Price-Reductions-V1"
          }
        },
        "example": {
          "results": [
            {
              "title": "Accepted",
              "code": 202,
              "detail": "Price reduction has been initiated successfully. Please wait for sometime.",
              "path": "/v1/price-reductions/{salesOrderId}/{positionItemId}"
            }
          ]
        }
      },
      "InternalServerErrorApplyPriceReduction__Price-Reductions-V1": {
        "description": "An unexpected error has occurred while applying price reduction. Please try again.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/APIErrorResponse__Price-Reductions-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "Internal Server Error",
              "code": 500,
              "detail": "An unexpected error has occurred. Please try again.",
              "path": "/v1/price-reductions"
            }
          ]
        }
      },
      "FailedDependency__Price-Reductions-V1": {
        "description": "Unable to retrieve price discounts due to internal errors with downstream systems. Please try again later.",
        "type": "object",
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/APIErrorResponse__Price-Reductions-V1"
          }
        },
        "example": {
          "errors": [
            {
              "title": "Failed Dependency",
              "code": 424,
              "detail": "Unable to retrieve price discounts due to internal errors with downstream systems. Please try again later.",
              "path": "/v1/price-reductions"
            }
          ]
        }
      },
      "ReturnsWarehouseAddresses__ReturnsWarehouse-V2": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ReturnsWarehouseAddressWithID__ReturnsWarehouse-V2"
        }
      },
      "ReturnsWarehouseAddressWithID__ReturnsWarehouse-V2": {
        "type": "object",
        "required": [
          "returnRecipient",
          "returnAddressId",
          "returnWarehouseType"
        ],
        "properties": {
          "returnAddressId": {
            "type": "string",
            "pattern": "UUID4 string",
            "example": "38427776-7383-4d65-82c9-dbe949d0573a",
            "description": "Unique identifier of the returnWarehouse"
          },
          "returnWarehouseType": {
            "type": "string",
            "enum": [
              "NATIONAL",
              "INTERNATIONAL",
              "INTERNATIONAL_CONSOLIDATION_HUB"
            ],
            "example": "NATIONAL",
            "description": "This parameter allows fetching results filtered by the specified returnWarehouseType."
          },
          "isMisdirectedAddress": {
            "type": "boolean",
            "example": false,
            "description": "Flag to indicate whether the returnWarehouse is a misdirected address or not. One address should be marked as 'isMisdirectedAddress' to handle misdirected returns."
          },
          "returnRecipient": {
            "type": "string",
            "example": "John Paul",
            "description": "return recipient name"
          },
          "returnRecipientSuffix": {
            "type": "string",
            "example": "Dr.",
            "description": "Return recipient suffix of the returnWarehouse"
          },
          "isBusinessAddress": {
            "type": "boolean",
            "example": false,
            "description": "Flag to indicate whether the returnWarehouse is a business address or not. This field is sent if returnWarehouseType=NATIONAL."
          },
          "returnStreet": {
            "type": "string",
            "example": "Gartenstraße",
            "description": "Return street name of the returnWarehouse, required field if isBusinessAddress=false or returnWarehouseType=INTERNATIONAL."
          },
          "returnHouseNumber": {
            "type": "string",
            "example": 32,
            "description": "Return House number of the returnWarehouse, required field if isBusinessAddress=false or returnWarehouseType=INTERNATIONAL."
          },
          "returnZipCode": {
            "type": "string",
            "example": 32323,
            "description": "Return Zip code of the returnWarehouse, required field if returnWarehouseType=INTERNATIONAL or NATIONAL."
          },
          "returnCity": {
            "type": "string",
            "example": "Glandorf",
            "description": "Return City Name of the returnWarehouse, required field if returnWarehouseType=INTERNATIONAL or NATIONAL."
          },
          "returnCountry": {
            "type": "string",
            "example": "Germany",
            "description": "Country of the return address.\nFor returnWarehouseType=NATIONAL, this should be Germany (case insensitive).\nFor returnWarehouseType=INTERNATIONAL, this should be one of Italy, Poland, Czechia, Netherlands, France, Austria, Spain, or Denmark (case insensitive).\nFor returnWarehouseType=INTERNATIONAL_CONSOLIDATION_HUB, this should be Germany (case insensitive).\n",
            "enum": [
              "Germany",
              "Italy",
              "Poland",
              "Czechia",
              "Netherlands",
              "France",
              "Austria",
              "Spain",
              "Denmark"
            ]
          }
        },
        "title": "ReturnsWarehouseAddress"
      },
      "ReturnsWarehouseAddressRequest__ReturnsWarehouse-V2": {
        "type": "object",
        "required": [
          "returnRecipient",
          "returnWarehouseType"
        ],
        "properties": {
          "returnWarehouseType": {
            "type": "string",
            "enum": [
              "NATIONAL",
              "INTERNATIONAL",
              "INTERNATIONAL_CONSOLIDATION_HUB"
            ],
            "example": "NATIONAL",
            "description": "The field is case sensitive and defines the type of returnWarehouse. If returnWarehouseType is NATIONAL then returnCountry should be Germany (case insensitive). If returnWarehouseType is INTERNATIONAL then the returnCountry should be Italy, Poland, Czechia, Netherlands, France, Austria, Spain, or Denmark (case insensitive). If returnWarehouseType is INTERNATIONAL_CONSOLIDATION_HUB then returnCountry should be Germany (case insensitive)."
          },
          "isMisdirectedAddress": {
            "type": "boolean",
            "example": false,
            "description": "Flag to indicate whether the returnWarehouse is a misdirected address or not. One address should be marked as 'isMisdirectedAddress' to handle misdirected returns. Default value is false."
          },
          "returnRecipient": {
            "type": "string",
            "example": "John Paul",
            "description": "Return recipient of the returnWarehouse."
          },
          "returnRecipientSuffix": {
            "type": "string",
            "example": "Dr.",
            "description": "Return recipient suffix of the returnWarehouse"
          },
          "isBusinessAddress": {
            "type": "boolean",
            "example": false,
            "description": "Flag to indicate whether the returnWarehouse is a business address or not.Required field if returnWarehouseType=NATIONAL."
          },
          "returnStreet": {
            "type": "string",
            "example": "Gartenstraße",
            "description": "Return street name of the returnWarehouse, required field if isBusinessAddress=false or returnWarehouseType=INTERNATIONAL."
          },
          "returnHouseNumber": {
            "type": "string",
            "example": 32,
            "description": "Return House number of the returnWarehouse, required field if isBusinessAddress=false or returnWarehouseType=INTERNATIONAL."
          },
          "returnZipCode": {
            "type": "string",
            "example": 32323,
            "description": "Return Zip code of the returnWarehouse, required field if returnWarehouseType=INTERNATIONAL or NATIONAL."
          },
          "returnCity": {
            "type": "string",
            "example": "Glandorf",
            "description": "Return City Name of the returnWarehouse, required field if returnWarehouseType=INTERNATIONAL or NATIONAL."
          },
          "returnCountry": {
            "type": "string",
            "example": "Germany",
            "description": "Country of the return address.\nFor returnWarehouseType=NATIONAL, this should be Germany (case insensitive).\nFor returnWarehouseType=INTERNATIONAL, this should be one of Italy, Poland, Czechia, Netherlands, France, Austria, Spain, or Denmark (case insensitive).\nFor returnWarehouseType=INTERNATIONAL_CONSOLIDATION_HUB, this should be Germany (case insensitive).\n",
            "enum": [
              "Germany",
              "Italy",
              "Poland",
              "Czechia",
              "Netherlands",
              "France",
              "Austria",
              "Spain",
              "Denmark"
            ]
          }
        },
        "title": "ReturnsWarehouseAddressRequest"
      },
      "ReturnsWarehouseAddressIdResponse__ReturnsWarehouse-V2": {
        "type": "object",
        "required": [
          "returnAddressId"
        ],
        "properties": {
          "returnAddressId": {
            "type": "string",
            "pattern": "UUID4 string",
            "example": "38427776-7383-4d65-82c9-dbe949d0573a",
            "description": "Unique identifier of the returnWarehouse"
          }
        },
        "title": "ReturnsWarehouseAddressIdResponse"
      },
      "ReturnCarrierResponse__ReturnsWarehouse-V2": {
        "type": "object",
        "required": [
          "returnAddressCarrierId"
        ],
        "properties": {
          "returnAddressCarrierId": {
            "type": "string",
            "pattern": "UUID4 string",
            "example": "27773846-7383-4d65-82c9-dbe949d0375b",
            "description": "Unique identifier for each returnCarrier, which is linked with a returnWarehouse"
          }
        },
        "title": "ReturnCarrierResponse"
      },
      "ReturnsWarehouseCarrierRequest__ReturnsWarehouse-V2": {
        "type": "object",
        "required": [
          "returnCarrierName"
        ],
        "properties": {
          "returnCarrierName": {
            "type": "string",
            "example": "GLS",
            "description": "Name of the returnCarrier used in the returnWarehouse. Only the carrier DHL is allowed for returnWarehouse types INTERNATIONAL and INTERNATIONAL_CONSOLIDATION_HUB.",
            "enum": [
              "DHL",
              "GLS",
              "HERMES"
            ]
          },
          "returnCarrierCodes": {
            "type": "object",
            "oneOf": [
              {
                "$ref": "#/components/schemas/GLSReturnCarrierCodes__ReturnsWarehouse-V2"
              },
              {
                "$ref": "#/components/schemas/DHLReturnCarrierCodes__ReturnsWarehouse-V2"
              }
            ],
            "description": "GLSReturnCarrierCodes__ReturnsWarehouse-V2 (object) or DHLReturnCarrierCodes__ReturnsWarehouse-V2 (object) No return carrier codes when carrier in path is HERMES"
          }
        },
        "title": "ReturnsWarehouseCarrierRequest"
      },
      "ReturnsWarehouseCarriers__ReturnsWarehouse-V2": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ReturnsWarehouseCarrier__ReturnsWarehouse-V2"
        }
      },
      "ReturnsWarehouseCarrier__ReturnsWarehouse-V2": {
        "type": "object",
        "required": [
          "returnCarrier",
          "returnAddressId",
          "returnAddressCarrierId"
        ],
        "properties": {
          "returnAddressId": {
            "type": "string",
            "pattern": "UUID4 string",
            "example": "38427776-7383-4d65-82c9-dbe949d0573a",
            "description": "Unique identifier of the returnWarehouse"
          },
          "returnAddressCarrierId": {
            "type": "string",
            "pattern": "UUID4 string",
            "example": "48427776-7383-4d65-82c9-dbe949d0573b",
            "description": "Unique identifier for each returnCarrier, which is linked with a returnWarehouse"
          },
          "returnCarrier": {
            "type": "string",
            "example": "GLS",
            "enum": [
              "DHL",
              "GLS",
              "HERMES"
            ],
            "description": "Name of the returnCarrier used in the returnWarehouse. Only the carrier DHL is allowed for returnWarehouse types INTERNATIONAL and INTERNATIONAL_CONSOLIDATION_HUB."
          },
          "returnCarrierCodes": {
            "type": "object",
            "oneOf": [
              {
                "$ref": "#/components/schemas/GLSReturnCarrierCodes__ReturnsWarehouse-V2"
              },
              {
                "$ref": "#/components/schemas/DHLReturnCarrierCodes__ReturnsWarehouse-V2"
              }
            ],
            "description": "GLSReturnCarrierCodes__ReturnsWarehouse-V2 (object) or DHLReturnCarrierCodes__ReturnsWarehouse-V2 (object) No return carrier codes when carrier in path is HERMES"
          }
        },
        "title": "ReturnsWarehouseCarrier"
      },
      "GLSReturnCarrierCodes__ReturnsWarehouse-V2": {
        "type": "object",
        "description": "return carrier codes when carrier is GLS.",
        "required": [
          "customerId",
          "contactId",
          "gepardCustomerNumber"
        ],
        "properties": {
          "customerId": {
            "type": "number",
            "example": 1234567890,
            "maxLength": 10,
            "description": "This information can be found on the right-hand side of the return label next to \"\"Versender\""
          },
          "contactId": {
            "type": "string",
            "example": "AB12344567",
            "maxLength": 10,
            "description": "This information can be found on the right-hand side of the return label next to “Customer ID”."
          },
          "referenzId": {
            "type": "string",
            "example": 1234,
            "minLength": 2,
            "maxLength": 9,
            "description": "This information can be found on the return label."
          }
        }
      },
      "DHLReturnCarrierCodes__ReturnsWarehouse-V2": {
        "type": "object",
        "description": "return carrier codes when carrier in path is DHL",
        "required": [
          "leitCode"
        ],
        "properties": {
          "leitCode": {
            "type": "string",
            "example": "(2L)DE04229+99000933041092",
            "description": "The specification must be entered without spaces or dots, but with brackets and a plus sign. Leitcode - Productcode “33” Routingcode - Productfeature “933” This information can be found at the bottom of the return label under the heading \"\"Leit-/Routingcode\"\"."
          },
          "settlementNumber": {
            "type": "string",
            "example": 6783492745982175,
            "description": "Must be entered without spaces and dots. DHL returns - procedure “07” This information can be found on the return label below the recipient address."
          },
          "customerNumber": {
            "type": "string",
            "example": 31234589123490,
            "description": "This information must be entered without spaces, dots and brackets. You will find this information in your DHL returns shipment number at the bottom of the return label."
          }
        }
      },
      "ErrorDetails__ReturnsWarehouse-V2": {
        "description": "Describes the error details",
        "type": "object",
        "required": [
          "errors"
        ],
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error__ReturnsWarehouse-V2"
            }
          }
        }
      },
      "Error__ReturnsWarehouse-V2": {
        "description": "Describes all the errors",
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "description": "The description of the error.",
            "type": "string"
          },
          "jsonPath": {
            "description": "The JSON path points either to the object or the value that caused the error. The JSON path could consists of JSON properties and indexes.",
            "type": "string"
          }
        },
        "title": "ErrorDetails"
      },
      "ErrorDetailsWithSuggestions__ReturnsWarehouse-V2": {
        "description": "Describes the error details",
        "type": "object",
        "required": [
          "errors"
        ],
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorWithSuggestions__ReturnsWarehouse-V2"
            }
          }
        }
      },
      "ErrorWithSuggestions__ReturnsWarehouse-V2": {
        "description": "Describes all the errors",
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "description": "The description of the error.",
            "type": "string"
          },
          "suggestedAddresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SuggestedAddress__ReturnsWarehouse-V2"
            }
          }
        },
        "title": "ErrorWithSuggestions"
      },
      "SuggestedAddress__ReturnsWarehouse-V2": {
        "description": "Details the suggested address",
        "type": "object",
        "required": [
          "city",
          "zipCode",
          "countryCode"
        ],
        "properties": {
          "city": {
            "description": "The city name.",
            "type": "string"
          },
          "district": {
            "description": "The district name if present.",
            "type": "string"
          },
          "street": {
            "description": "The street name when it is not a business address.",
            "type": "string"
          },
          "houseNumber": {
            "description": "The houseNumber name when it is not a business address.",
            "type": "string"
          },
          "zipCode": {
            "description": "The zipcode for suggested address.",
            "type": "string"
          },
          "countryCode": {
            "description": "The countryCode for suggested address.",
            "type": "string"
          }
        },
        "title": "SuggestedAddressDetails"
      },
      "GetAllShippingProfilesResponse__ShippingProfiles-V1": {
        "type": "object",
        "required": [
          "results"
        ],
        "properties": {
          "results": {
            "type": "array",
            "description": "List of maximum 300 shipping profiles. Returns a cursor field if there are more than 300 shipping profile to get the next results.",
            "items": {
              "$ref": "#/components/schemas/GetShippingProfileResponse__ShippingProfiles-V1"
            }
          },
          "links": {
            "type": "object",
            "description": "link to next page if there are more than 300 shipping profiles",
            "properties": {
              "href": {
                "type": "string",
                "example": "/v1/shipping-profiles?cursor=YmExMjU4MGMtZGJhNS00NTY5LWI4NWMtN2RmNmJmMmU2Mzc1sWkpQYnA=",
                "description": "url to get next max 300 shipping profiles"
              },
              "rel": {
                "type": "string",
                "example": "next",
                "description": "link relation type"
              }
            }
          }
        }
      },
      "CreateShippingProfileRequest__ShippingProfiles-V1": {
        "type": "object",
        "required": [
          "shippingProfileName",
          "workingDays",
          "orderCutoff",
          "transportTime",
          "deliveryType",
          "defaultProcessingTime"
        ],
        "properties": {
          "shippingProfileName": {
            "type": "string",
            "example": "TestShippingProfile",
            "description": "ShippingProfileName allows the partner to assign a descriptive and unique name  for a shipping profile"
          },
          "workingDays": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "MONDAY",
              "WEDNESDAY"
            ],
            "description": "WorkingDays describe the specific days of the week on which the partner is available to process orders"
          },
          "orderCutoff": {
            "type": "string",
            "format": "HH:MM",
            "example": "23:30",
            "description": "OrderCutoff specifies the time for orders to be placed, so the ProcessingTime starts within the same day. <br> This must be in half hour duration in (HH:MM) 24 hours format. The cut-off time must be specified in CET time."
          },
          "deliveryType": {
            "type": "string",
            "example": "PARCEL",
            "enum": [
              "PARCEL",
              "FORWARDER_PREFERREDLOCATION",
              "FORWARDER_CURBSIDE",
              "FORWARDER_HEAVYDUTY"
            ],
            "description": "DeliveryType describes how the product is being shipped. At the moment we support the enums shown above"
          },
          "defaultProcessingTime": {
            "type": "integer",
            "format": "int64",
            "example": 2,
            "description": "DefaultProcessingTime describes the time the partner needs to prepare the order for a shipment. Must be between 1 to 99. <br> If more than 72 days are transmitted in the DefaultProcessingTime, the product is marked as sold out on otto.de and cannot be ordered. <br> This is also the case if the DefaultProcessingTime and TransportTime add up to a value greater than 72. \"1\" day is considered as same-day shipping (0 days) until the cut-off time is reached.",
            "minimum": 1,
            "maximum": 99,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "transportTime": {
            "type": "integer",
            "format": "int64",
            "example": 2,
            "description": "TransportTime describes the time the carrier needs from collecting the order from partners warehouse until the first delivery attempt. Must be between 1 to 99. <br> If more than 72 days are transmitted in the TransportTime, the product is marked as sold out on otto.de and cannot be ordered. <br> This is also the case if the DefaultProcessingTime and TransportTime add up to a value greater than 72.",
            "minimum": 1,
            "maximum": 99,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          }
        },
        "title": "CreateShippingProfileRequest"
      },
      "GetShippingProfileResponse__ShippingProfiles-V1": {
        "type": "object",
        "required": [
          "shippingProfileId",
          "shippingProfileName",
          "workingDays",
          "orderCutoff",
          "deliveryType",
          "transportTime",
          "defaultProcessingTime"
        ],
        "properties": {
          "shippingProfileId": {
            "type": "string",
            "pattern": "UUID4 string",
            "example": "38427776-7383-4d65-82c9-dbe949d0573a",
            "description": "Unique identifier for each shipping profile"
          },
          "shippingProfileName": {
            "type": "string",
            "example": "TestShippingProfile",
            "description": "The name of the shipping profile"
          },
          "workingDays": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "MONDAY",
                "TUESDAY",
                "WEDNESDAY",
                "THURSDAY",
                "FRIDAY",
                "SATURDAY",
                "SUNDAY"
              ]
            },
            "example": [
              "MONDAY",
              "WEDNESDAY"
            ],
            "description": "The days of the week on which the partner is available to process orders"
          },
          "orderCutoff": {
            "type": "string",
            "format": "HH:MM, 24 hours format, CET timezone",
            "example": "23:30",
            "description": "OrderCutoff specifies the time for orders to be placed, so the ProcessingTime starts within the same day. <br> This must be in half hour duration in (HH:MM) 24 hours format and in CET time."
          },
          "deliveryType": {
            "type": "string",
            "example": "PARCEL",
            "enum": [
              "PARCEL",
              "FORWARDER_PREFERREDLOCATION",
              "FORWARDER_CURBSIDE",
              "FORWARDER_HEAVYDUTY"
            ],
            "description": "DeliveryType describes how the product is being shipped. At the moment we support the enums shown above"
          },
          "defaultProcessingTime": {
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 99,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false,
            "example": 2,
            "description": "DefaultProcessingTime describes the time the partner needs to prepare the order for a shipment."
          },
          "transportTime": {
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 99,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false,
            "example": 2,
            "description": "The time the carrier needs from collecting the order from partners warehouse till the first delivery attempt."
          }
        },
        "title": "GetShippingProfileResponse"
      },
      "CreateShippingProfileResponse__ShippingProfiles-V1": {
        "type": "object",
        "required": [
          "message",
          "shippingProfileId"
        ],
        "properties": {
          "shippingProfileId": {
            "type": "string",
            "pattern": "UUID4 string",
            "example": "38427776-7383-4d65-82c9-dbe949d0573a",
            "description": "Unique identifier for each shipping profile id"
          },
          "message": {
            "type": "string",
            "example": "Shipping profile created successfully with id : 38427776-7383-4d65-82c9-dbe949d0573a",
            "description": "successful message"
          }
        },
        "title": "CreateShippingProfileResponse"
      },
      "APIErrorResponseForNotFound__ShippingProfiles-V1": {
        "description": "Describes the error details",
        "type": "object",
        "required": [
          "type",
          "title",
          "status",
          "validationErrors"
        ],
        "properties": {
          "type": {
            "description": "url of the request",
            "example": "/v1/shipping-profiles",
            "type": "string"
          },
          "title": {
            "description": "type of error",
            "example": "Shipping profile not found",
            "type": "string"
          },
          "status": {
            "description": "status code of response",
            "example": 404,
            "type": "number"
          },
          "validationErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorWithNotFoundSuggestions__ShippingProfiles-V1"
            }
          }
        }
      },
      "APIErrorResponseForBadRequest__ShippingProfiles-V1": {
        "description": "Describes the error details",
        "type": "object",
        "required": [
          "type",
          "title",
          "status",
          "validationErrors"
        ],
        "properties": {
          "type": {
            "description": "url of the request",
            "example": "/v1/shipping-profiles",
            "type": "string"
          },
          "title": {
            "description": "type of error",
            "example": "Validation Failure",
            "type": "string"
          },
          "status": {
            "description": "status code of response",
            "example": 400,
            "type": "number"
          },
          "validationErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorWithBadRequestSuggestions__ShippingProfiles-V1"
            }
          }
        }
      },
      "ErrorWithNotFoundSuggestions__ShippingProfiles-V1": {
        "description": "Describes all the errors",
        "type": "object",
        "required": [
          "detail",
          "logref"
        ],
        "properties": {
          "detail": {
            "description": "The description of the error.",
            "example": "Shipping profile not found for 7bec0ef6-4324-4fa4-9fbf-42c54659ef04",
            "type": "string"
          },
          "logref": {
            "type": "string",
            "example": "shippingProfileNotFound",
            "description": "key to find in the log"
          }
        }
      },
      "ErrorWithBadRequestSuggestions__ShippingProfiles-V1": {
        "description": "Describes all the errors",
        "type": "object",
        "required": [
          "detail",
          "logref"
        ],
        "properties": {
          "detail": {
            "description": "The description of the error.",
            "example": "Invalid transport time. Should be greater than 0 and less than 100",
            "type": "string"
          },
          "logref": {
            "type": "string",
            "example": "shippingProfileId",
            "description": "key to find in the log"
          }
        }
      },
      "APIErrorResponseForConflict__ShippingProfiles-V1": {
        "description": "Describes the error details",
        "type": "object",
        "required": [
          "type",
          "title",
          "status",
          "validationErrors"
        ],
        "properties": {
          "type": {
            "description": "url of the request",
            "example": "/v1/shipping-profiles",
            "type": "string"
          },
          "title": {
            "description": "type of error",
            "example": "Conflict creating ShippingProfileId, Please try again",
            "type": "string"
          },
          "status": {
            "description": "status code of response",
            "example": 409,
            "type": "number"
          },
          "validationErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorWithSuggestionsForConflict__ShippingProfiles-V1"
            }
          }
        }
      },
      "ErrorWithSuggestionsForConflict__ShippingProfiles-V1": {
        "description": "Describes all the errors",
        "type": "object",
        "required": [
          "detail",
          "logref"
        ],
        "properties": {
          "detail": {
            "description": "The description of the error.",
            "example": "There was a conflict while creating shippingProfileId",
            "type": "string"
          },
          "logref": {
            "type": "string",
            "example": "shippingProfileId",
            "description": "key to find in the log"
          }
        }
      },
      "APIInternalServerErrorResponse__ShippingProfiles-V1": {
        "description": "Describes the error details",
        "type": "object",
        "required": [
          "type",
          "title",
          "status",
          "validationErrors"
        ],
        "properties": {
          "type": {
            "description": "url of the request",
            "example": "/v1/shipping-profiles",
            "type": "string"
          },
          "title": {
            "description": "type of error",
            "example": "Internal server error",
            "type": "string"
          },
          "status": {
            "description": "status code of response",
            "type": "number",
            "example": 500
          },
          "validationErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorForInternalServerError__ShippingProfiles-V1"
            }
          }
        }
      },
      "ErrorForInternalServerError__ShippingProfiles-V1": {
        "description": "Describes all the errors",
        "type": "object",
        "required": [
          "detail",
          "logref"
        ],
        "properties": {
          "detail": {
            "description": "The description of the error.",
            "example": "Internal server error",
            "type": "string"
          },
          "logref": {
            "type": "string",
            "example": "",
            "description": "key to find in the log"
          }
        }
      },
      "APIErrorResponseForPrecondition__ShippingProfiles-V1": {
        "description": "Describes the error details",
        "type": "object",
        "required": [
          "type",
          "title",
          "status",
          "validationErrors"
        ],
        "properties": {
          "type": {
            "description": "url of the request",
            "example": "/v1/shipping-profiles",
            "type": "string"
          },
          "title": {
            "description": "type of error",
            "example": "Deletion Failed",
            "type": "string"
          },
          "status": {
            "description": "status code of response",
            "example": 412,
            "type": "number"
          },
          "validationErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorWithPrecondition__ShippingProfiles-V1"
            }
          }
        }
      },
      "ErrorWithPrecondition__ShippingProfiles-V1": {
        "description": "Describes all the errors",
        "type": "object",
        "required": [
          "detail",
          "logref"
        ],
        "properties": {
          "detail": {
            "description": "The description of the error.",
            "example": "Shipping profile has one or more SKUs linked to it. Please link the SKUs to a another shipping profile.",
            "type": "string"
          },
          "logref": {
            "type": "string",
            "example": "shippingProfileInUse",
            "description": "key to find in the log"
          }
        }
      },
      "ApiErrorResponse__Availability-V1": {
        "type": "object",
        "required": [
          "errors"
        ],
        "properties": {
          "errors": {
            "type": "array",
            "description": "list of errors",
            "items": {
              "$ref": "#/components/schemas/QuantityApiError__Availability-V1"
            }
          }
        },
        "title": "ApiErrorResponse"
      },
      "PayloadTooLargeApiErrorResponseForQuantities__Availability-V1": {
        "type": "object",
        "required": [
          "errors"
        ],
        "properties": {
          "errors": {
            "type": "array",
            "description": "type of error",
            "example": [
              {
                "code": 413,
                "detail": "Payload too large",
                "logref": "b35c4ef1-50dd-4765-9bcf-82cde57823d8",
                "path": "/v1/availability/quantities",
                "title": "Error while processing request"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/QuantityApiError__Availability-V1"
            }
          }
        },
        "title": "PayloadTooLargeApiErrorResponse"
      },
      "QuantityApiError__Availability-V1": {
        "type": "object",
        "required": [
          "code",
          "detail",
          "logref",
          "path",
          "title"
        ],
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "example": 422,
            "description": "http status code"
          },
          "detail": {
            "type": "string",
            "example": "Details of error message with SKU id",
            "description": "details of the error"
          },
          "logref": {
            "type": "string",
            "example": "b35c4ef1-50dd-4765-9bcf-82cde57823d8",
            "description": "key to find in the log"
          },
          "path": {
            "type": "string",
            "example": "/v1/availability/quantities",
            "description": "api endpoint/uri"
          },
          "title": {
            "type": "string",
            "example": "Error message with SKU id",
            "description": "title of the error"
          }
        },
        "title": "ApiError"
      },
      "AvailableQuantityRequestDTO__Availability-V1": {
        "type": "object",
        "required": [
          "quantity",
          "sku"
        ],
        "properties": {
          "quantity": {
            "type": "integer",
            "format": "int64",
            "description": "The available quantity of a specific SKU.",
            "minimum": 0,
            "maximum": 999999999,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false,
            "example": 123
          },
          "sku": {
            "type": "string",
            "description": "StockKeepingUnit given by partner configuration. e.g. 'shirt-red-M', external identifier of article variation.",
            "example": "123456789ABCDE"
          }
        },
        "title": "AvailableQuantityRequestDTO"
      },
      "AvailableQuantityResponseDTO__Availability-V1": {
        "type": "object",
        "required": [
          "lastModified",
          "quantity",
          "sku",
          "links"
        ],
        "properties": {
          "lastModified": {
            "type": "string",
            "format": "YYYY-MM-DD'T'HH:mm:ss.SSS'Z'",
            "description": "The last modified date and time of available quantity in a ISO8601 format",
            "example": "2024-07-18T07:20:06.260124Z"
          },
          "quantity": {
            "type": "integer",
            "format": "int64",
            "example": 123,
            "description": "The available quantity of a specific SKU, which can be any integer value >= 0.",
            "minimum": 0,
            "maximum": 999999999,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "sku": {
            "type": "string",
            "example": "123456789ABCDE",
            "description": "StockKeepingUnit. Identifier of a product variation.\n"
          },
          "links": {
            "type": "array",
            "description": "contains links to prev, self and next page url's",
            "items": {
              "$ref": "#/components/schemas/Link__Availability-V1"
            }
          }
        },
        "title": "AvailableQuantityResponseDTO"
      },
      "AvailableQuantitySingleResponseDTO__Availability-V1": {
        "type": "object",
        "required": [
          "lastModified",
          "quantity",
          "sku"
        ],
        "properties": {
          "lastModified": {
            "type": "string",
            "format": "YYYY-MM-DD'T'HH:mm:ss.SSS'Z'",
            "example": "2024-07-18T07:20:06.260124Z",
            "description": "The last modified date and time of available quantity as a ISO8601 format (yyyy-MM-dd'T'HH:mm:ss.SSSX)."
          },
          "quantity": {
            "type": "integer",
            "format": "int64",
            "example": 123,
            "description": "The available quantity of a specific SKU, which can be any integer value >= 0.",
            "minimum": 0,
            "maximum": 999999999,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "sku": {
            "type": "string",
            "example": "123456789ABCDE",
            "description": "StockKeepingUnit given by partner configuration. e.g. 'shirt-red-M', external identifier of article variation."
          }
        },
        "title": "AvailableQuantitySingleResponseDTO"
      },
      "UpdateQuantityMultiStatusResponse__Availability-V1": {
        "type": "object",
        "required": [
          "results",
          "errors"
        ],
        "properties": {
          "results": {
            "type": "array",
            "example": [
              {
                "lastModified": "2024-07-18T07:20:06.260124Z",
                "quantity": "123",
                "sku": "4007781056144"
              }
            ],
            "description": "List of all the skus with available quantity",
            "items": {
              "$ref": "#/components/schemas/AvailableQuantityResponseDTO__Availability-V1"
            }
          },
          "errors": {
            "type": "array",
            "example": [
              {
                "path": "/v1/availability/quantities",
                "title": "Error while processing request: sku",
                "code": "207",
                "detail": "Error: SKU is unknown for SKU: sku",
                "logref": "sku"
              },
              {
                "path": "/v1/availability/quantities",
                "title": "Error while processing request: sku",
                "code": "207",
                "detail": "Invalid quantity. Quantity should be an absolute number for SKU: sku",
                "logref": "sku"
              },
              {
                "path": "/v1/availability/quantities",
                "title": "Error while processing request: null",
                "code": "207",
                "detail": "Error: [sku must not be empty] for SKU: null",
                "logref": "sku"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/QuantityApiError__Availability-V1"
            }
          }
        },
        "title": "UpdateQuantityMultiStatusResponse"
      },
      "ProductDeliveryInformationMultiStatusResponse__Availability-V1": {
        "type": "object",
        "required": [
          "results",
          "errors"
        ],
        "properties": {
          "results": {
            "type": "array",
            "example": [
              {
                "shippingProfileId": "2f236e76-543e-5a0b-ac79-53f5db132e44",
                "processingTime": "12",
                "sku": "4007781056144"
              }
            ],
            "description": "List of all the skus with its shipping profile id and processing time",
            "items": {
              "$ref": "#/components/schemas/ProductDeliveryInformationResponseDTO__Availability-V1"
            }
          },
          "errors": {
            "$ref": "#/components/schemas/ErrorDetailsForMultiStatus__Availability-V1"
          }
        },
        "title": "ProductDeliveryInformationMultiStatusResponse"
      },
      "AvailableQuantityResponse__Availability-V1": {
        "type": "object",
        "required": [
          "resources",
          "links"
        ],
        "properties": {
          "resources": {
            "type": "object",
            "required": [
              "variations"
            ],
            "properties": {
              "variations": {
                "type": "array",
                "example": [
                  {
                    "lastModified": "2024-07-18T07:20:06.260124Z",
                    "quantity": "123",
                    "sku": "MOCK-CABINET-1",
                    "links": [
                      {
                        "rel": "self",
                        "href": "/v1/availability/quantities/MOCK-CABINET-1"
                      }
                    ]
                  },
                  {
                    "lastModified": "2024-06-03T10:30:13.972203Z",
                    "quantity": "123",
                    "sku": "SANDWICH-1",
                    "links": [
                      {
                        "rel": "self",
                        "href": "/v1/availability/quantities/SANDWICH-1"
                      }
                    ]
                  }
                ],
                "items": {
                  "$ref": "#/components/schemas/AvailableQuantityResponseDTO__Availability-V1"
                }
              }
            }
          },
          "links": {
            "type": "array",
            "description": "contains links to the next page",
            "example": [
              {
                "rel": "next",
                "href": "/v1/availability/quantities?cursor=SANDWICH-1"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/Link__Availability-V1"
            }
          }
        },
        "title": "AvailableQuantityRequestDTO"
      },
      "ProductDeliveryInformationRequestDTOList__Availability-V1": {
        "type": "object",
        "required": [
          "results"
        ],
        "properties": {
          "results": {
            "type": "array",
            "description": "Response",
            "items": {
              "$ref": "#/components/schemas/ProductDeliveryInformationRequestDTO__Availability-V1"
            },
            "example": [
              {
                "shippingProfileId": "2f236e76-543e-5a0b-ac79-53f5db132e44",
                "processingTime": "3",
                "sku": "MOCK-CABINET-1"
              },
              {
                "shippingProfileId": "2f236e76-543e-5a0b-ac79-53f5db132e44",
                "processingTime": "1",
                "sku": "SANDWICH-1"
              }
            ]
          },
          "links": {
            "type": "object",
            "description": "Link to next response",
            "properties": {
              "href": {
                "type": "string",
                "description": "the linked reference as URI",
                "example": "/v1/availability/product-delivery-information?cursor=MTIzNDU2"
              },
              "rel": {
                "type": "string",
                "example": "next",
                "description": "link relation type"
              }
            }
          }
        }
      },
      "ProductDeliveryInformationRequestDTO__Availability-V1": {
        "type": "object",
        "required": [
          "shippingProfileId",
          "processingTime",
          "sku"
        ],
        "properties": {
          "shippingProfileId": {
            "type": "string",
            "example": "2f236e76-543e-5a0b-ac79-53f5db132e44",
            "description": "The ShippingProfileId is provided in the ShippingProfiles-API and is the PrimaryKey which is used to  map a specific Profile to a SKU"
          },
          "processingTime": {
            "type": "string",
            "format": "[1..99] or DEFAULT",
            "example": "DEFAULT",
            "description": "The processingTime of a specific SKU, which can be any value between 1 and 99 or 'DEFAULT'. <br> When it is set to DEFAULT the defaultProcessingTime used in the shipping profile will be considered <br> Otherwise the defaultProcessingTime is overwritten and is not reset even if the shipping profile is changed. <br> It describes the time the partner needs to prepare the order for a shipment."
          },
          "sku": {
            "type": "string",
            "example": "123456789ABCDE",
            "description": "StockKeepingUnit given by partner configuration. e.g. 'shirt-red-M', external identifier of article variation."
          }
        },
        "title": "ProductDeliveryInformationRequestDTO"
      },
      "ProductDeliveryInformationResponseDTO__Availability-V1": {
        "type": "object",
        "required": [
          "shippingProfileId",
          "processingTime",
          "sku"
        ],
        "properties": {
          "shippingProfileId": {
            "type": "string",
            "example": "2f236e76-543e-5a0b-ac79-53f5db132e44",
            "description": "The ShippingProfileId is provided in the ShippingProfiles-API and is the PrimaryKey which is used to  map a specific Profile to a SKU"
          },
          "processingTime": {
            "type": "string",
            "example": "2",
            "description": "The processingTime of a specific SKU, which can be any value between 1 and 99 or 'DEFAULT'. <br> When it is set to DEFAULT the defaultProcessingTime used in the shipping profile will be considered <br> Otherwise the defaultProcessingTime is overwritten and is not reset even if the shipping profile is changed. <br> It describes the time the partner needs to prepare the order for a shipment."
          },
          "sku": {
            "type": "string",
            "example": "123456789ABCDE",
            "description": "StockKeepingUnit given by partner configuration. e.g. 'shirt-red-M', external identifier of article variation."
          }
        },
        "title": "ProductDeliveryInformationResponseDTO"
      },
      "Link__Availability-V1": {
        "type": "object",
        "properties": {
          "rel": {
            "type": "string",
            "example": "self",
            "description": "link relation type",
            "enum": [
              "prev",
              "next",
              "self"
            ]
          },
          "href": {
            "type": "string",
            "example": ".../v1/availability/quantities?cursor=MTIzNDU2",
            "description": "the linked reference as URI"
          }
        }
      },
      "APIErrorResponseForBadRequest__Availability-V1": {
        "description": "Describes the error details",
        "type": "object",
        "required": [
          "errors"
        ],
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/ErrorDetailsForMultiStatus__Availability-V1"
          }
        }
      },
      "ErrorForUnknownSku__Availability-V1": {
        "description": "Describes all the errors",
        "type": "object",
        "required": [
          "detail",
          "logref"
        ],
        "properties": {
          "detail": {
            "description": "The description of the error.",
            "example": "Error sku: TEST-SKU is unknown",
            "type": "string"
          },
          "logref": {
            "type": "string",
            "example": "sku",
            "description": "key to find in the log"
          }
        }
      },
      "ErrorDetailsForMultiStatus__Availability-V1": {
        "description": "Describes the error details",
        "type": "array",
        "example": [
          {
            "path": "/v1/availability/product-delivery-information",
            "title": "Validation Failure",
            "code": "404",
            "detail": "Error shippingProfileId: b35c4ef1-50dd-4765-9bcf-82cde57823d8 is unknown",
            "logref": "shippingProfileId"
          },
          {
            "path": "/v1/availability/product-delivery-information",
            "title": "Validation Failure",
            "code": "404",
            "detail": "Error sku: TEST-SKU is unknown",
            "logref": "sku"
          }
        ],
        "items": {
          "$ref": "#/components/schemas/QuantityApiError__Availability-V1"
        }
      },
      "APIErrorResponseForNotFound__Availability-V1": {
        "description": "Describes the error details",
        "type": "object",
        "required": [
          "title",
          "path",
          "code",
          "detail",
          "logref"
        ],
        "properties": {
          "path": {
            "description": "url of the request",
            "example": "/v1/availability/product-delivery-information",
            "type": "string"
          },
          "title": {
            "description": "type of error",
            "example": "Sku not found",
            "type": "string"
          },
          "code": {
            "description": "status code of response",
            "type": "number",
            "example": 404
          },
          "detail": {
            "description": "type of error",
            "example": "Sku not found for TEST_SKU",
            "type": "string"
          },
          "logref": {
            "description": "field of the error",
            "example": "sku",
            "type": "string"
          }
        }
      },
      "ApiErrorResponseForPayloadTooLarge__Availability-V1": {
        "type": "object",
        "required": [
          "errors"
        ],
        "properties": {
          "errors": {
            "type": "array",
            "description": "type of error",
            "example": [
              {
                "code": 413,
                "detail": "Payload too large",
                "logref": "b35c4ef1-50dd-4765-9bcf-82cde57823d8",
                "path": "/v1/availability/product-delivery-information",
                "title": "Error while processing request"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/QuantityApiError__Availability-V1"
            }
          }
        }
      },
      "APIErrorResponseForInternalServer__Availability-V1": {
        "description": "Describes the error details",
        "type": "object",
        "required": [
          "title",
          "path",
          "code",
          "detail",
          "logref"
        ],
        "properties": {
          "title": {
            "description": "type of error",
            "example": "Internal server error",
            "type": "string"
          },
          "path": {
            "description": "url of the request",
            "example": "/v1/availability/product-delivery-information",
            "type": "string"
          },
          "code": {
            "description": "status code of response",
            "type": "number",
            "example": 500
          },
          "detail": {
            "description": "type of error",
            "type": "string",
            "example": "Internal server error"
          },
          "logref": {
            "description": "attribute of the error",
            "type": "string",
            "example": ""
          }
        }
      },
      "GetAllProductDeliveryInfoResponse__Availability-V1": {
        "type": "object",
        "required": [
          "results"
        ],
        "properties": {
          "results": {
            "type": "array",
            "description": "List of maximum 200 sku-shipping profiles. Returns a cursor field if there are more than 200 sku-shipping profiles mapping to get the next results.",
            "items": {
              "$ref": "#/components/schemas/ProductDeliveryInformationResponseDTO__Availability-V1"
            }
          },
          "links": {
            "type": "object",
            "description": "link to next page if there are more than 200 mappings",
            "properties": {
              "href": {
                "type": "string",
                "example": "/v1/availability/product-delivery-information?cursor=MTIzNDU2",
                "description": "url to get next max 200 results"
              },
              "rel": {
                "type": "string",
                "example": "next",
                "description": "link relation type"
              }
            }
          }
        }
      },
      "CampaignName__SponsoredProductAds-V1": {
        "type": "string",
        "minLength": 1,
        "maxLength": 250,
        "example": "My awesome campaign",
        "description": "Campaign display name. Must not contain `$`, `§`, `\"`, `#`, `*`, or parentheses — except for an optional trailing numeric suffix (e.g. `My campaign (2)`).\n",
        "pattern": "^[^($§\"#*)]*(\\(\\d+\\))?$"
      },
      "CreateCampaignRequest__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "name",
          "startDate",
          "budget",
          "pacing",
          "budgetType",
          "campaignType"
        ],
        "properties": {
          "name": {
            "$ref": "#/components/schemas/CampaignName__SponsoredProductAds-V1"
          },
          "startDate": {
            "type": "string",
            "format": "date",
            "description": "Campaign start date. Must be today or a future date.",
            "example": "2026-04-28"
          },
          "endDate": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "description": "Campaign end date. Must be at least today and greater or equal to the startDate. May be `null` for ongoing campaigns; however, `null` is not allowed when `budgetType` is `LIFETIME`.\n",
            "example": "2026-10-28"
          },
          "budget": {
            "$ref": "#/components/schemas/MonetaryAmount__SponsoredProductAds-V1"
          },
          "pacing": {
            "type": "string",
            "enum": [
              "ASAP",
              "EVEN"
            ]
          },
          "budgetType": {
            "type": "string",
            "enum": [
              "DAILY",
              "WEEKLY",
              "MONTHLY",
              "LIFETIME"
            ]
          },
          "campaignType": {
            "type": "string",
            "enum": [
              "AUTOMATIC",
              "MANUAL"
            ]
          }
        }
      },
      "PatchCampaignRequest__SponsoredProductAds-V1": {
        "type": "object",
        "minProperties": 1,
        "description": "Partial update of a campaign. At least one field must be provided. Note: `budgetType` and `campaignType` are immutable after creation and cannot be changed.\n",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/CampaignName__SponsoredProductAds-V1"
          },
          "startDate": {
            "type": "string",
            "format": "date",
            "description": "Campaign start date. Must be today or a future date.",
            "example": "2026-04-28"
          },
          "endDate": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "description": "Campaign end date. Must be at least one day after today. May be `null` for ongoing campaigns; however, `null` is not allowed when `budgetType` is `LIFETIME`.\n",
            "example": "2026-10-28"
          },
          "budget": {
            "$ref": "#/components/schemas/MonetaryAmount__SponsoredProductAds-V1"
          },
          "pacing": {
            "type": "string",
            "enum": [
              "ASAP",
              "EVEN"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "WAITING",
              "ACTIVE",
              "PAUSED"
            ]
          }
        }
      },
      "CreateTargetsRequest__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "targets"
        ],
        "properties": {
          "targets": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/TargetInput__SponsoredProductAds-V1"
            }
          }
        }
      },
      "UpdateTargetsRequest__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "targets"
        ],
        "properties": {
          "targets": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/UpdateTargetItem__SponsoredProductAds-V1"
            }
          }
        }
      },
      "UpdateTargetItem__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "targetId"
        ],
        "minProperties": 2,
        "properties": {
          "targetId": {
            "type": "string",
            "format": "uuid"
          },
          "sku": {
            "type": "string"
          },
          "bid": {
            "$ref": "#/components/schemas/MonetaryAmount__SponsoredProductAds-V1"
          }
        }
      },
      "CreateKeywordsRequest__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/KeywordInput__SponsoredProductAds-V1"
            }
          }
        }
      },
      "UpdateKeywordsRequest__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/UpdateKeywordItem__SponsoredProductAds-V1"
            }
          }
        }
      },
      "UpdateKeywordItem__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "keywordId"
        ],
        "minProperties": 2,
        "properties": {
          "keywordId": {
            "type": "string",
            "format": "uuid"
          },
          "matchType": {
            "type": "string",
            "enum": [
              "EXACT",
              "PHRASE",
              "BROAD"
            ]
          },
          "bid": {
            "$ref": "#/components/schemas/MonetaryAmount__SponsoredProductAds-V1"
          }
        }
      },
      "TargetInput__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "sku"
        ],
        "properties": {
          "sku": {
            "type": "string"
          },
          "bid": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MonetaryAmount__SponsoredProductAds-V1"
              }
            ],
            "description": "Required for AUTOMATIC campaigns, ignored for MANUAL campaigns."
          }
        }
      },
      "KeywordInput__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "keyword",
          "matchType",
          "keywordType"
        ],
        "properties": {
          "keyword": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "matchType": {
            "type": "string",
            "enum": [
              "EXACT",
              "PHRASE",
              "BROAD"
            ]
          },
          "keywordType": {
            "type": "string",
            "enum": [
              "POSITIVE",
              "NEGATIVE"
            ]
          },
          "bid": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MonetaryAmount__SponsoredProductAds-V1"
              }
            ],
            "description": "Required for POSITIVE, ignored for NEGATIVE."
          }
        }
      },
      "ChangeRequest__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "requestId",
          "requestType",
          "status",
          "lastModifiedAt"
        ],
        "properties": {
          "requestId": {
            "type": "string",
            "format": "uuid"
          },
          "requestType": {
            "type": "string",
            "enum": [
              "CREATE_CAMPAIGN",
              "UPDATE_CAMPAIGN",
              "CREATE_TARGETS",
              "UPDATE_TARGETS",
              "DELETE_TARGETS",
              "CREATE_KEYWORDS",
              "UPDATE_KEYWORDS",
              "DELETE_KEYWORDS"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING",
              "ACCEPTED",
              "REJECTED"
            ]
          },
          "lastModifiedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp of the last status change of this change request."
          }
        }
      },
      "ChangeRequestResponse__SponsoredProductAds-V1": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChangeRequest__SponsoredProductAds-V1"
          },
          {
            "type": "object",
            "required": [
              "_links"
            ],
            "properties": {
              "rejectionReason": {
                "type": "string",
                "nullable": true,
                "description": "Human-readable explanation of why the request was rejected. Only present when `status` is `REJECTED`. See the `getChangeRequest` operation description for a list of common rejection reasons.\n"
              },
              "entityIds": {
                "type": "array",
                "nullable": true,
                "description": "IDs of the entities affected by this request. `null` for CREATE operations while still PENDING (entities not yet assigned). Populated with entity IDs once the request is ACCEPTED.\n",
                "items": {
                  "type": "string",
                  "format": "uuid"
                },
                "example": [
                  "00000002-0000-4000-8000-000000000002",
                  "00000003-0000-4000-8000-000000000003"
                ]
              },
              "_links": {
                "type": "object",
                "required": [
                  "self"
                ],
                "description": "Navigation links. Always contains `self`. When status is `ACCEPTED`, also contains a `campaign` link in the current implementation.\n",
                "properties": {
                  "self": {
                    "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
                  },
                  "campaign": {
                    "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
                  }
                },
                "example": {
                  "self": {
                    "href": "https://api.otto.market/v1/sponsored-product-ads/change-requests/00000004-0000-4000-8000-000000000004"
                  },
                  "campaign": {
                    "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001"
                  }
                }
              }
            }
          }
        ],
        "example": {
          "requestId": "00000004-0000-4000-8000-000000000004",
          "requestType": "CREATE_TARGETS",
          "status": "REJECTED",
          "lastModifiedAt": "2026-04-14T10:00:00Z",
          "rejectionReason": "The specified SKU does not exist in the product catalog.",
          "entityIds": [],
          "_links": {
            "self": {
              "href": "https://api.otto.market/v1/sponsored-product-ads/change-requests/00000004-0000-4000-8000-000000000004"
            }
          }
        }
      },
      "WriteOperationResponse__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "changeRequest",
          "_links"
        ],
        "properties": {
          "changeRequest": {
            "$ref": "#/components/schemas/ChangeRequest__SponsoredProductAds-V1"
          },
          "_links": {
            "type": "object",
            "required": [
              "self"
            ],
            "properties": {
              "self": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              },
              "change-request": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              }
            }
          }
        }
      },
      "CreateCampaignResponse__SponsoredProductAds-V1": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WriteOperationResponse__SponsoredProductAds-V1"
          },
          {
            "type": "object",
            "properties": {
              "_links": {
                "example": {
                  "self": {
                    "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns"
                  },
                  "change-request": {
                    "href": "https://api.otto.market/v1/sponsored-product-ads/change-requests/00000004-0000-4000-8000-000000000004"
                  }
                }
              }
            }
          }
        ]
      },
      "CreateTargetsResponse__SponsoredProductAds-V1": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WriteOperationResponse__SponsoredProductAds-V1"
          },
          {
            "type": "object",
            "properties": {
              "_links": {
                "example": {
                  "self": {
                    "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets"
                  },
                  "change-request": {
                    "href": "https://api.otto.market/v1/sponsored-product-ads/change-requests/00000004-0000-4000-8000-000000000004"
                  }
                }
              }
            }
          }
        ]
      },
      "KeywordWriteOperationResponse__SponsoredProductAds-V1": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WriteOperationResponse__SponsoredProductAds-V1"
          },
          {
            "type": "object",
            "properties": {
              "_links": {
                "type": "object",
                "properties": {
                  "target": {
                    "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
                  },
                  "campaign": {
                    "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
                  }
                },
                "example": {
                  "self": {
                    "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords"
                  },
                  "change-request": {
                    "href": "https://api.otto.market/v1/sponsored-product-ads/change-requests/00000004-0000-4000-8000-000000000004"
                  },
                  "target": {
                    "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002"
                  },
                  "campaign": {
                    "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001"
                  }
                }
              }
            }
          }
        ]
      },
      "CampaignListItemDTO__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "campaignId",
          "name",
          "status",
          "startDate",
          "budget",
          "budgetType",
          "pacing",
          "campaignType",
          "createdAt",
          "updatedAt",
          "_links"
        ],
        "properties": {
          "campaignId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING",
              "WAITING",
              "ACTIVE",
              "PAUSED",
              "ENDED",
              "CANCELED"
            ]
          },
          "startDate": {
            "type": "string",
            "format": "date",
            "example": "2026-04-28"
          },
          "endDate": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "example": "2026-10-28"
          },
          "budget": {
            "$ref": "#/components/schemas/MonetaryAmount__SponsoredProductAds-V1"
          },
          "budgetType": {
            "type": "string",
            "enum": [
              "DAILY",
              "WEEKLY",
              "MONTHLY",
              "LIFETIME"
            ]
          },
          "pacing": {
            "type": "string",
            "enum": [
              "ASAP",
              "EVEN"
            ]
          },
          "campaignType": {
            "type": "string",
            "enum": [
              "AUTOMATIC",
              "MANUAL"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "_links": {
            "type": "object",
            "required": [
              "self"
            ],
            "properties": {
              "self": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              },
              "targets": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              }
            },
            "example": {
              "self": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001"
              },
              "targets": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets"
              }
            }
          }
        }
      },
      "CampaignDTO__SponsoredProductAds-V1": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CampaignListItemDTO__SponsoredProductAds-V1"
          },
          {
            "type": "object",
            "properties": {
              "_links": {
                "type": "object",
                "properties": {
                  "latest-change-request": {
                    "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
                  }
                }
              },
              "_embedded": {
                "type": "object",
                "properties": {
                  "latest-change-request": {
                    "$ref": "#/components/schemas/ChangeRequest__SponsoredProductAds-V1"
                  }
                }
              }
            }
          }
        ]
      },
      "PaginatedTargetsResponse__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "targets",
          "_links"
        ],
        "properties": {
          "targets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TargetListItemDTO__SponsoredProductAds-V1"
            }
          },
          "nextCursor": {
            "type": "string",
            "nullable": true,
            "description": "Opaque cursor for the next page. Absent or `null` when there is no next page. Pass this value as the `cursor` query parameter to retrieve the next page.\n",
            "example": "eyJjcmVhdGVkQXQi..."
          },
          "prevCursor": {
            "type": "string",
            "nullable": true,
            "description": "Opaque cursor for the previous page. Absent or `null` on the first page. Pass this value as the `cursor` query parameter to retrieve the previous page.\n",
            "example": "eyJjcmVhdGVkQXQi..."
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              },
              "next": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              },
              "prev": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              }
            },
            "example": {
              "self": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets?limit=20"
              },
              "next": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets?cursor=eyJjcmVhdGVkQXQi...&limit=20"
              },
              "prev": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets?cursor=eyJjcmVhdGVkQXQi...&limit=20"
              }
            }
          }
        }
      },
      "TargetListItemDTO__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "targetId",
          "sku",
          "createdAt",
          "updatedAt",
          "_links"
        ],
        "properties": {
          "targetId": {
            "type": "string",
            "format": "uuid"
          },
          "sku": {
            "type": "string"
          },
          "bid": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/MonetaryAmount__SponsoredProductAds-V1"
              }
            ],
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "_links": {
            "type": "object",
            "required": [
              "self"
            ],
            "properties": {
              "self": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              },
              "campaign": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              },
              "keywords": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              }
            },
            "example": {
              "self": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002"
              },
              "campaign": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001"
              },
              "keywords": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords"
              }
            }
          }
        }
      },
      "TargetDTO__SponsoredProductAds-V1": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TargetListItemDTO__SponsoredProductAds-V1"
          },
          {
            "type": "object",
            "properties": {
              "_links": {
                "type": "object",
                "properties": {
                  "latest-change-request": {
                    "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
                  }
                }
              },
              "_embedded": {
                "type": "object",
                "properties": {
                  "latest-change-request": {
                    "$ref": "#/components/schemas/ChangeRequest__SponsoredProductAds-V1"
                  }
                }
              }
            }
          }
        ]
      },
      "KeywordListItemDTO__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "keywordId",
          "keyword",
          "matchType",
          "keywordType",
          "_links"
        ],
        "properties": {
          "keywordId": {
            "type": "string",
            "format": "uuid"
          },
          "keyword": {
            "type": "string"
          },
          "matchType": {
            "type": "string",
            "enum": [
              "EXACT",
              "PHRASE",
              "BROAD"
            ]
          },
          "keywordType": {
            "type": "string",
            "enum": [
              "POSITIVE",
              "NEGATIVE"
            ]
          },
          "bid": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/MonetaryAmount__SponsoredProductAds-V1"
              }
            ],
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "_links": {
            "type": "object",
            "required": [
              "self"
            ],
            "properties": {
              "self": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              },
              "latest-change-request": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              },
              "target": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              }
            },
            "example": {
              "self": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords/00000003-0000-4000-8000-000000000003"
              },
              "target": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002"
              }
            }
          }
        }
      },
      "KeywordDTO__SponsoredProductAds-V1": {
        "allOf": [
          {
            "$ref": "#/components/schemas/KeywordListItemDTO__SponsoredProductAds-V1"
          },
          {
            "type": "object",
            "properties": {
              "_links": {
                "type": "object",
                "properties": {
                  "latest-change-request": {
                    "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
                  }
                }
              },
              "_embedded": {
                "type": "object",
                "properties": {
                  "latest-change-request": {
                    "$ref": "#/components/schemas/ChangeRequest__SponsoredProductAds-V1"
                  }
                }
              }
            }
          }
        ]
      },
      "PaginatedKeywordsResponse__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "keywords",
          "_links"
        ],
        "properties": {
          "keywords": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeywordListItemDTO__SponsoredProductAds-V1"
            }
          },
          "nextCursor": {
            "type": "string",
            "nullable": true,
            "description": "Opaque cursor for the next page. Absent or `null` when there is no next page. Pass this value as the `cursor` query parameter to retrieve the next page.\n",
            "example": "eyJjcmVhdGVkQXQi..."
          },
          "prevCursor": {
            "type": "string",
            "nullable": true,
            "description": "Opaque cursor for the previous page. Absent or `null` on the first page. Pass this value as the `cursor` query parameter to retrieve the previous page.\n",
            "example": "eyJjcmVhdGVkQXQi..."
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              },
              "next": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              },
              "prev": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              },
              "target": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              },
              "campaign": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              }
            },
            "example": {
              "self": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords?limit=20"
              },
              "next": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords?cursor=eyJjcmVhdGVkQXQi...&limit=20"
              },
              "prev": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002/keywords?cursor=eyJjcmVhdGVkQXQi...&limit=20"
              },
              "target": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001/targets/00000002-0000-4000-8000-000000000002"
              },
              "campaign": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001"
              }
            }
          }
        }
      },
      "PaginatedCampaignsResponse__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "campaigns",
          "_links"
        ],
        "properties": {
          "campaigns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CampaignListItemDTO__SponsoredProductAds-V1"
            }
          },
          "nextCursor": {
            "type": "string",
            "nullable": true,
            "description": "Opaque cursor for the next page. Absent or `null` when there is no next page. Pass this value as the `cursor` query parameter to retrieve the next page.\n",
            "example": "eyJjcmVhdGVkQXQi..."
          },
          "prevCursor": {
            "type": "string",
            "nullable": true,
            "description": "Opaque cursor for the previous page. Absent or `null` on the first page. Pass this value as the `cursor` query parameter to retrieve the previous page.\n",
            "example": "eyJjcmVhdGVkQXQi..."
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              },
              "next": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              },
              "prev": {
                "$ref": "#/components/schemas/Link__SponsoredProductAds-V1"
              }
            },
            "example": {
              "self": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns?limit=20"
              },
              "next": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns?cursor=eyJjcmVhdGVkQXQi...&limit=20"
              },
              "prev": {
                "href": "https://api.otto.market/v1/sponsored-product-ads/campaigns?cursor=eyJjcmVhdGVkQXQi...&limit=20"
              }
            }
          }
        }
      },
      "Link__SponsoredProductAds-V1": {
        "type": "object",
        "description": "A HAL link object as defined in draft-kelly-json-hal.",
        "required": [
          "href"
        ],
        "properties": {
          "href": {
            "type": "string",
            "format": "uri",
            "description": "The URL of the linked resource.",
            "example": "https://api.otto.market/v1/sponsored-product-ads/campaigns/00000001-0000-4000-8000-000000000001"
          }
        }
      },
      "MonetaryAmount__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "amount",
          "currency"
        ],
        "properties": {
          "amount": {
            "type": "integer",
            "format": "int64",
            "minimum": 20,
            "description": "Amount in minor units (cents). Example 1099 = 10.99 EUR. Minimum value is 20 (0.20 EUR)."
          },
          "currency": {
            "type": "string",
            "enum": [
              "EUR"
            ]
          }
        }
      },
      "APIErrorResponse__SponsoredProductAds-V1": {
        "type": "object",
        "required": [
          "errors",
          "timestamp"
        ],
        "properties": {
          "errors": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object",
              "required": [
                "message"
              ],
              "properties": {
                "message": {
                  "type": "string",
                  "description": "Human-readable error description."
                },
                "field": {
                  "type": "string",
                  "nullable": true,
                  "description": "The field that caused the error, if applicable."
                }
              }
            }
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CampaignMetrics__SponsoredProductAdsReporting-V1": {
        "properties": {
          "clickThroughRate": {
            "type": "number",
            "title": "Clickthroughrate",
            "description": "Clicks divided by views. Ratio, not a monetary value."
          },
          "costPerClick": {
            "type": "number",
            "title": "Costperclick",
            "description": "Total costs divided by total clicks. Monetary value in euro cents (EUR cents)."
          },
          "returnOnAdSpend": {
            "type": "number",
            "title": "Returnonadspend",
            "description": "Total sales divided by total costs. Ratio, not a monetary value."
          },
          "totalViews": {
            "type": "integer",
            "title": "Totalviews",
            "description": "Number of ad views."
          },
          "totalClicks": {
            "type": "integer",
            "title": "Totalclicks",
            "description": "Number of ad clicks."
          },
          "totalCosts": {
            "type": "number",
            "title": "Totalcosts",
            "description": "Total advertising costs. Monetary value in euro cents (EUR cents)."
          },
          "totalOrderedSkus": {
            "type": "integer",
            "title": "Totalorderedskus",
            "description": "Number of ordered SKUs attributed to the campaign."
          },
          "totalSales": {
            "type": "number",
            "title": "Totalsales",
            "description": "Total attributed sales. Monetary value in euro cents (EUR cents)."
          }
        },
        "type": "object",
        "required": [
          "clickThroughRate",
          "costPerClick",
          "returnOnAdSpend",
          "totalViews",
          "totalClicks",
          "totalCosts",
          "totalOrderedSkus",
          "totalSales"
        ],
        "title": "CampaignMetrics",
        "description": "Aggregated campaign KPIs. All monetary values are expressed in euro cents (EUR cents)."
      },
      "CampaignReportAvailableColumns__SponsoredProductAdsReporting-V1": {
        "type": "string",
        "enum": [
          "TOTAL_VIEWS",
          "TOTAL_CLICKS",
          "TOTAL_COSTS",
          "TOTAL_SALES",
          "TOTAL_ORDERED_SKUS",
          "CAMPAIGN_ID",
          "EVENT_DATE_CET"
        ],
        "title": "CampaignReportAvailableColumns",
        "description": "Columns selectable in a campaign report. TOTAL_COSTS and TOTAL_SALES are monetary values in euro cents (EUR cents)."
      },
      "CampaignReportConfiguration__SponsoredProductAdsReporting-V1": {
        "properties": {
          "columns": {
            "items": {
              "$ref": "#/components/schemas/CampaignReportAvailableColumns__SponsoredProductAdsReporting-V1"
            },
            "type": "array",
            "title": "Columns",
            "description": "List of columns to include in the report. TOTAL_COSTS and TOTAL_SALES are reported in euro cents (EUR cents)."
          },
          "groupBy": {
            "title": "Groupby",
            "description": "List of groupBy columns for the kpis in the report. Dimension columns in 'columns' are auto-added to GROUP BY. Columns in 'groupBy' are auto-added to SELECT. If not specified, defaults to grouping by CAMPAIGN_ID for campaign reports.",
            "default": [
              "CAMPAIGN_ID"
            ],
            "items": {
              "$ref": "#/components/schemas/CampaignReportGroupByColumns__SponsoredProductAdsReporting-V1"
            },
            "type": "array",
            "nullable": true
          },
          "filters": {
            "title": "Filters",
            "description": "List of filters to apply to the report data.",
            "items": {
              "$ref": "#/components/schemas/ReportFilter__SponsoredProductAdsReporting-V1"
            },
            "type": "array",
            "nullable": true
          },
          "format": {
            "$ref": "#/components/schemas/ReportFormat__SponsoredProductAdsReporting-V1",
            "description": "Format of the report, currently only CSV is supported."
          }
        },
        "type": "object",
        "required": [
          "columns",
          "format"
        ],
        "title": "CampaignReportConfiguration"
      },
      "CampaignReportGroupByColumns__SponsoredProductAdsReporting-V1": {
        "type": "string",
        "enum": [
          "EVENT_DATE_CET",
          "CAMPAIGN_ID"
        ],
        "title": "CampaignReportGroupByColumns"
      },
      "CampaignReportRequest__SponsoredProductAdsReporting-V1": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255,
            "title": "Name",
            "description": "The name of the campaign report."
          },
          "fromDate": {
            "type": "string",
            "format": "date",
            "title": "Fromdate"
          },
          "toDate": {
            "type": "string",
            "format": "date",
            "title": "Todate"
          },
          "configuration": {
            "$ref": "#/components/schemas/CampaignReportConfiguration__SponsoredProductAdsReporting-V1",
            "description": "Configuration for the campaign report."
          }
        },
        "type": "object",
        "required": [
          "name",
          "fromDate",
          "toDate",
          "configuration"
        ],
        "title": "CampaignReportRequest"
      },
      "DateRange__SponsoredProductAdsReporting-V1": {
        "properties": {
          "fromDate": {
            "title": "Fromdate",
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "toDate": {
            "title": "Todate",
            "type": "string",
            "format": "date",
            "nullable": true
          }
        },
        "type": "object",
        "title": "DateRange"
      },
      "ErrorItem__SponsoredProductAdsReporting-V1": {
        "properties": {
          "path": {
            "type": "string",
            "title": "Path",
            "description": "Request path that triggered the error"
          },
          "title": {
            "type": "string",
            "title": "Title",
            "description": "HTTP status phrase"
          },
          "detail": {
            "type": "string",
            "title": "Detail",
            "description": "Human-readable explanation of the error"
          },
          "detail-structured": {
            "title": "Detail-Structured",
            "description": "Machine-readable structured context (omitted when not available)",
            "additionalProperties": true,
            "type": "object",
            "nullable": true
          },
          "jsonpath": {
            "title": "Jsonpath",
            "description": "JSONPath to the offending body field (omitted for non-body errors)",
            "type": "string",
            "nullable": true
          },
          "logref": {
            "title": "Logref",
            "description": "Correlation ID for log tracing (omitted when no X-Correlation-ID was sent)",
            "type": "string",
            "nullable": true
          }
        },
        "type": "object",
        "required": [
          "path",
          "title",
          "detail"
        ],
        "title": "ErrorItem"
      },
      "FilterOperator__SponsoredProductAdsReporting-V1": {
        "type": "string",
        "enum": [
          "=",
          ">=",
          "<=",
          ">",
          "<",
          "!="
        ],
        "title": "FilterOperator",
        "description": "Allowed comparison operators for report filters."
      },
      "FilterableColumn__SponsoredProductAdsReporting-V1": {
        "type": "string",
        "enum": [
          "CAMPAIGN_ID",
          "SKU"
        ],
        "title": "FilterableColumn",
        "description": "Allowed column names that can be used in report filters."
      },
      "HTTPValidationError__SponsoredProductAdsReporting-V1": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError__SponsoredProductAdsReporting-V1"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "KeywordFilterableColumn__SponsoredProductAdsReporting-V1": {
        "type": "string",
        "enum": [
          "CAMPAIGN_ID",
          "SKU",
          "MATCH_TYPE"
        ],
        "title": "KeywordFilterableColumn",
        "description": "Allowed column names that can be used in keyword report filters."
      },
      "KeywordReportAvailableColumns__SponsoredProductAdsReporting-V1": {
        "type": "string",
        "enum": [
          "TOTAL_VIEWS",
          "TOTAL_CLICKS",
          "TOTAL_COSTS",
          "TOTAL_SALES",
          "TOTAL_ORDERED_SKUS",
          "CAMPAIGN_ID",
          "EVENT_DATE_CET",
          "KEYWORD",
          "SEARCHTERM",
          "MATCH_TYPE"
        ],
        "title": "KeywordReportAvailableColumns",
        "description": "Columns selectable in a keyword report. TOTAL_COSTS and TOTAL_SALES are monetary values in euro cents (EUR cents)."
      },
      "KeywordReportConfiguration__SponsoredProductAdsReporting-V1": {
        "properties": {
          "columns": {
            "items": {
              "$ref": "#/components/schemas/KeywordReportAvailableColumns__SponsoredProductAdsReporting-V1"
            },
            "type": "array",
            "title": "Columns",
            "description": "List of columns to include in the report. TOTAL_COSTS and TOTAL_SALES are reported in euro cents (EUR cents)."
          },
          "groupBy": {
            "title": "Groupby",
            "description": "List of groupBy columns for the kpis in the report. Dimension columns in 'columns' are auto-added to GROUP BY. Columns in 'groupBy' are auto-added to SELECT. If not specified, KEYWORD is applied and all KPIs are aggregated at this level.",
            "default": [
              "KEYWORD"
            ],
            "items": {
              "$ref": "#/components/schemas/KeywordReportGroupByColumns__SponsoredProductAdsReporting-V1"
            },
            "type": "array",
            "nullable": true
          },
          "filters": {
            "title": "Filters",
            "description": "List of filters to apply to the report data.",
            "items": {
              "$ref": "#/components/schemas/KeywordReportFilter__SponsoredProductAdsReporting-V1"
            },
            "type": "array",
            "nullable": true
          },
          "format": {
            "$ref": "#/components/schemas/ReportFormat__SponsoredProductAdsReporting-V1",
            "description": "Format of the report, currently only CSV is supported."
          }
        },
        "type": "object",
        "required": [
          "columns",
          "format"
        ],
        "title": "KeywordReportConfiguration"
      },
      "KeywordReportFilter__SponsoredProductAdsReporting-V1": {
        "properties": {
          "column": {
            "$ref": "#/components/schemas/KeywordFilterableColumn__SponsoredProductAdsReporting-V1",
            "description": "Column to filter on."
          },
          "operator": {
            "$ref": "#/components/schemas/FilterOperator__SponsoredProductAdsReporting-V1",
            "description": "Comparison operator."
          },
          "value": {
            "type": "string",
            "title": "Value",
            "description": "Value to compare against. For the MATCH_TYPE column, one of: EXACT, BROAD, PHRASE."
          }
        },
        "type": "object",
        "required": [
          "column",
          "operator",
          "value"
        ],
        "title": "KeywordReportFilter",
        "description": "A single filter condition for a keyword report query."
      },
      "KeywordReportGroupByColumns__SponsoredProductAdsReporting-V1": {
        "type": "string",
        "enum": [
          "KEYWORD",
          "SEARCHTERM",
          "EVENT_DATE_CET",
          "MATCH_TYPE"
        ],
        "title": "KeywordReportGroupByColumns"
      },
      "KeywordReportRequest__SponsoredProductAdsReporting-V1": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255,
            "title": "Name",
            "description": "The name of the keyword report."
          },
          "fromDate": {
            "type": "string",
            "format": "date",
            "title": "Fromdate"
          },
          "toDate": {
            "type": "string",
            "format": "date",
            "title": "Todate"
          },
          "configuration": {
            "$ref": "#/components/schemas/KeywordReportConfiguration__SponsoredProductAdsReporting-V1",
            "description": "Configuration for the keyword report."
          }
        },
        "type": "object",
        "required": [
          "name",
          "fromDate",
          "toDate",
          "configuration"
        ],
        "title": "KeywordReportRequest"
      },
      "ProblemDetailResponse__SponsoredProductAdsReporting-V1": {
        "properties": {
          "errors": {
            "items": {
              "$ref": "#/components/schemas/ErrorItem__SponsoredProductAdsReporting-V1"
            },
            "type": "array",
            "title": "Errors",
            "description": "List of error items (always exactly one)"
          }
        },
        "type": "object",
        "required": [
          "errors"
        ],
        "title": "ProblemDetailResponse"
      },
      "ProductMetrics__SponsoredProductAdsReporting-V1": {
        "properties": {
          "clickThroughRate": {
            "type": "number",
            "title": "Clickthroughrate",
            "description": "Clicks divided by views. Ratio, not a monetary value."
          },
          "costPerClick": {
            "type": "number",
            "title": "Costperclick",
            "description": "Total costs divided by total clicks. Monetary value in euro cents (EUR cents)."
          },
          "returnOnAdSpend": {
            "type": "number",
            "title": "Returnonadspend",
            "description": "Total sales divided by total costs. Ratio, not a monetary value."
          },
          "totalViews": {
            "type": "integer",
            "title": "Totalviews",
            "description": "Number of ad views."
          },
          "totalClicks": {
            "type": "integer",
            "title": "Totalclicks",
            "description": "Number of ad clicks."
          },
          "totalCosts": {
            "type": "number",
            "title": "Totalcosts",
            "description": "Total advertising costs. Monetary value in euro cents (EUR cents)."
          },
          "totalOrderedSkus": {
            "type": "integer",
            "title": "Totalorderedskus",
            "description": "Number of ordered SKUs attributed to the product."
          },
          "totalSales": {
            "type": "number",
            "title": "Totalsales",
            "description": "Total attributed sales. Monetary value in euro cents (EUR cents)."
          },
          "totalSalesSeller": {
            "type": "number",
            "title": "Totalsalesseller",
            "description": "Total attributed sales of articles with same brand for the seller. Monetary value in euro cents (EUR cents)."
          }
        },
        "type": "object",
        "required": [
          "clickThroughRate",
          "costPerClick",
          "returnOnAdSpend",
          "totalViews",
          "totalClicks",
          "totalCosts",
          "totalOrderedSkus",
          "totalSales",
          "totalSalesSeller"
        ],
        "title": "ProductMetrics",
        "description": "Aggregated product KPIs. All monetary values are expressed in euro cents (EUR cents)."
      },
      "ProductReportAvailableColumns__SponsoredProductAdsReporting-V1": {
        "type": "string",
        "enum": [
          "TOTAL_VIEWS",
          "TOTAL_CLICKS",
          "TOTAL_COSTS",
          "TOTAL_SALES",
          "TOTAL_ORDERED_SKUS",
          "TOTAL_SALES_SELLER",
          "CAMPAIGN_ID",
          "SKU",
          "EVENT_DATE_CET"
        ],
        "title": "ProductReportAvailableColumns",
        "description": "Columns selectable in a product report. TOTAL_COSTS, TOTAL_SALES and TOTAL_SALES_SELLER are monetary values in euro cents (EUR cents)."
      },
      "ProductReportConfiguration__SponsoredProductAdsReporting-V1": {
        "properties": {
          "columns": {
            "items": {
              "$ref": "#/components/schemas/ProductReportAvailableColumns__SponsoredProductAdsReporting-V1"
            },
            "type": "array",
            "title": "Columns",
            "description": "List of columns to include in the report. TOTAL_COSTS, TOTAL_SALES and TOTAL_SALES_SELLER are reported in euro cents (EUR cents)."
          },
          "groupBy": {
            "title": "Groupby",
            "description": "List of groupBy columns for the kpis in the report. Dimension columns in 'columns' are auto-added to GROUP BY. Columns in 'groupBy' are auto-added to SELECT. If not specified, defaults to grouping by SKU for product reports.",
            "default": [
              "SKU"
            ],
            "items": {
              "$ref": "#/components/schemas/ProductReportGroupByColumns__SponsoredProductAdsReporting-V1"
            },
            "type": "array",
            "nullable": true
          },
          "filters": {
            "title": "Filters",
            "description": "List of filters to apply to the report data.",
            "items": {
              "$ref": "#/components/schemas/ReportFilter__SponsoredProductAdsReporting-V1"
            },
            "type": "array",
            "nullable": true
          },
          "format": {
            "$ref": "#/components/schemas/ReportFormat__SponsoredProductAdsReporting-V1",
            "description": "Format of the report, currently only CSV is supported."
          }
        },
        "type": "object",
        "required": [
          "columns",
          "format"
        ],
        "title": "ProductReportConfiguration"
      },
      "ProductReportGroupByColumns__SponsoredProductAdsReporting-V1": {
        "type": "string",
        "enum": [
          "EVENT_DATE_CET",
          "CAMPAIGN_ID",
          "SKU"
        ],
        "title": "ProductReportGroupByColumns"
      },
      "ProductReportRequest__SponsoredProductAdsReporting-V1": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255,
            "title": "Name",
            "description": "The name of the product report."
          },
          "fromDate": {
            "type": "string",
            "format": "date",
            "title": "Fromdate"
          },
          "toDate": {
            "type": "string",
            "format": "date",
            "title": "Todate"
          },
          "configuration": {
            "$ref": "#/components/schemas/ProductReportConfiguration__SponsoredProductAdsReporting-V1",
            "description": "Configuration for the product report."
          }
        },
        "type": "object",
        "required": [
          "name",
          "fromDate",
          "toDate",
          "configuration"
        ],
        "title": "ProductReportRequest"
      },
      "ReportFilter__SponsoredProductAdsReporting-V1": {
        "properties": {
          "column": {
            "$ref": "#/components/schemas/FilterableColumn__SponsoredProductAdsReporting-V1",
            "description": "Column to filter on."
          },
          "operator": {
            "$ref": "#/components/schemas/FilterOperator__SponsoredProductAdsReporting-V1",
            "description": "Comparison operator."
          },
          "value": {
            "type": "string",
            "title": "Value",
            "description": "Value to compare against."
          }
        },
        "type": "object",
        "required": [
          "column",
          "operator",
          "value"
        ],
        "title": "ReportFilter",
        "description": "A single filter condition for a report query."
      },
      "ReportFormat__SponsoredProductAdsReporting-V1": {
        "type": "string",
        "enum": [
          "CSV"
        ],
        "title": "ReportFormat"
      },
      "ReportJobStatus__SponsoredProductAdsReporting-V1": {
        "type": "string",
        "enum": [
          "IN_PROGRESS",
          "FAILED",
          "READY"
        ],
        "title": "ReportJobStatus"
      },
      "ReportStatusResponse__SponsoredProductAdsReporting-V1": {
        "properties": {
          "reportId": {
            "type": "string",
            "title": "Reportid"
          },
          "status": {
            "$ref": "#/components/schemas/ReportJobStatus__SponsoredProductAdsReporting-V1",
            "description": "The status of the report: IN_PROGRESS, FAILED, or READY."
          },
          "downloadUrl": {
            "title": "Downloadurl",
            "description": "The URL to download the generated report if the status is READY. If not READY, this field will be null.",
            "type": "string",
            "nullable": true
          }
        },
        "type": "object",
        "required": [
          "reportId",
          "status"
        ],
        "title": "ReportStatusResponse"
      },
      "SponsoredProductAdsCampaignPerformance__SponsoredProductAdsReporting-V1": {
        "properties": {
          "campaignId": {
            "type": "string",
            "title": "Campaignid"
          },
          "dateRange": {
            "$ref": "#/components/schemas/DateRange__SponsoredProductAdsReporting-V1"
          },
          "metrics": {
            "$ref": "#/components/schemas/CampaignMetrics__SponsoredProductAdsReporting-V1"
          },
          "lastCalculatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Lastcalculatedat"
          }
        },
        "type": "object",
        "required": [
          "campaignId",
          "dateRange",
          "metrics",
          "lastCalculatedAt"
        ],
        "title": "SponsoredProductAdsCampaignPerformance"
      },
      "SponsoredProductAdsProductPerformance__SponsoredProductAdsReporting-V1": {
        "properties": {
          "campaignId": {
            "type": "string",
            "title": "Campaignid"
          },
          "sku": {
            "type": "string",
            "title": "Sku"
          },
          "dateRange": {
            "$ref": "#/components/schemas/DateRange__SponsoredProductAdsReporting-V1"
          },
          "metrics": {
            "$ref": "#/components/schemas/ProductMetrics__SponsoredProductAdsReporting-V1"
          },
          "lastCalculatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Lastcalculatedat"
          }
        },
        "type": "object",
        "required": [
          "campaignId",
          "sku",
          "dateRange",
          "metrics",
          "lastCalculatedAt"
        ],
        "title": "SponsoredProductAdsProductPerformance"
      },
      "ValidationError__SponsoredProductAdsReporting-V1": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          },
          "input": {
            "title": "Input"
          },
          "ctx": {
            "type": "object",
            "title": "Context"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      }
    },
    "examples": {
      "ShipmentCreateRequestParcelDelivery__Shipments-V1": {
        "value": {
          "trackingKey": {
            "carrier": "HERMES",
            "trackingNumber": "H1234567890123456789"
          },
          "shipDate": "2019-10-11T07:49:12.642Z",
          "shipFromAddress": {
            "city": "Dresden",
            "countryCode": "DEU",
            "zipCode": "01067"
          },
          "positionItems": [
            {
              "positionItemId": "b01b8ad2-a49c-47fc-8ade-8629ec000020",
              "salesOrderId": "bf43d748-f13d-49ca-b2e2-1824e9000021",
              "returnTrackingKey": {
                "carrier": "DHL",
                "trackingNumber": "577546565072"
              },
              "returnAddressCarrierId": "7423afd2-e7ab-4bae-ac30-048b7c0346c1"
            },
            {
              "positionItemId": "b01b8ad2-a49c-47fc-8ade-8629ec000022",
              "salesOrderId": "bf43d748-f13d-49ca-b2e2-1824e9000021",
              "returnTrackingKey": {
                "carrier": "DHL",
                "trackingNumber": "577546565072"
              },
              "returnAddressCarrierId": "7423afd2-e7ab-4bae-ac30-048b7c0346c1"
            }
          ]
        }
      },
      "MultiparcelShipmentCreateRequestParcelDelivery__Shipments-V1": {
        "value": [
          {
            "trackingKey": {
              "carrier": "HERMES",
              "trackingNumber": "H1234567890123456788"
            },
            "shipDate": "2019-10-11T07:49:12.642Z",
            "shipFromAddress": {
              "city": "Dresden",
              "countryCode": "DEU",
              "zipCode": "01067"
            },
            "positionItems": [
              {
                "positionItemId": "b01b8ad2-a49c-47fc-8ade-8629ec000020",
                "salesOrderId": "bf43d748-f13d-49ca-b2e2-1824e9000021",
                "returnTrackingKey": {
                  "carrier": "DHL",
                  "trackingNumber": "577546565072"
                },
                "returnAddressCarrierId": "7423afd2-e7ab-4bae-ac30-048b7c0346c1"
              }
            ]
          },
          {
            "trackingKey": {
              "carrier": "HERMES",
              "trackingNumber": "H1234567890123456789"
            },
            "shipDate": "2019-10-11T07:49:12.643Z",
            "shipFromAddress": {
              "city": "Dresden",
              "countryCode": "DEU",
              "zipCode": "01067"
            },
            "positionItems": [
              {
                "positionItemId": "b01b8ad2-a49c-47fc-8ade-8629ec000020",
                "salesOrderId": "bf43d748-f13d-49ca-b2e2-1824e9000021",
                "returnTrackingKey": {
                  "carrier": "DHL",
                  "trackingNumber": "577546565073"
                },
                "returnAddressCarrierId": "7423afd2-e7ab-4bae-ac30-048b7c0346c1"
              }
            ]
          }
        ]
      },
      "ShipmentCreateRequestForwarderDelivery__Shipments-V1": {
        "value": {
          "trackingKey": {
            "carrier": "OTHER_FORWARDER",
            "trackingNumber": "FF12345678"
          },
          "shipDate": "2019-10-11T07:49:12.642Z",
          "shipFromAddress": {
            "city": "Dresden",
            "countryCode": "DEU",
            "zipCode": "01067"
          },
          "positionItems": [
            {
              "positionItemId": "b01b8ad2-a49c-47fc-8ade-8629ec000020",
              "salesOrderId": "bf43d748-f13d-49ca-b2e2-1824e9000021"
            },
            {
              "positionItemId": "b01b8ad2-a49c-47fc-8ade-8629ec000022",
              "salesOrderId": "bf43d748-f13d-49ca-b2e2-1824e9000021"
            }
          ]
        }
      },
      "ShipmentCreateRequestForwarderDeliveryWithoutTrackingNo__Shipments-V1": {
        "value": {
          "trackingKey": {
            "carrier": "OTHER_FORWARDER"
          },
          "shipDate": "2019-10-11T07:49:12.642Z",
          "shipFromAddress": {
            "city": "Dresden",
            "countryCode": "DEU",
            "zipCode": "01067"
          },
          "positionItems": [
            {
              "positionItemId": "b01b8ad2-a49c-47fc-8ade-8629ec000020",
              "salesOrderId": "bf43d748-f13d-49ca-b2e2-1824e9000021"
            },
            {
              "positionItemId": "b01b8ad2-a49c-47fc-8ade-8629ec000022",
              "salesOrderId": "bf43d748-f13d-49ca-b2e2-1824e9000021"
            }
          ]
        }
      },
      "ShipmentCreateInsufficientPermissionsResponse__Shipments-V1": {
        "description": "A position item in the request doesn't belong to the partner.",
        "value": {
          "errors": [
            {
              "title": "INSUFFICIENT_PERMISSION",
              "detail": "The partner is not allowed to create/update a shipment for position item ID",
              "path": "/shipments",
              "jsonPath": "positionItems[0].positionItemId"
            }
          ]
        }
      },
      "MultiparcelShipmentCreateInsufficientPermissionsResponse__Shipments-V1": {
        "description": "A position item in the request doesn't belong to the partner.",
        "value": {
          "errors": [
            {
              "title": "INSUFFICIENT_PERMISSION",
              "detail": "The partner is not allowed to create/update a shipment for position item ID",
              "path": "/multiparcel-shipments/shipments",
              "jsonPath": "shipments[0].positionItems[0].positionItemId"
            }
          ]
        }
      },
      "ShipmentCreateTrackingKeyMandatoryResponse__Shipments-V1": {
        "description": "The tracking key in the request is mandatory.",
        "value": {
          "errors": [
            {
              "title": "PROPERTY_IS_MANDATORY",
              "detail": "The property is mandatory",
              "path": "/shipments",
              "jsonPath": "trackingKey"
            }
          ]
        }
      },
      "MultiparcelShipmentCreateTrackingKeyMandatoryResponse__Shipments-V1": {
        "description": "The tracking key in the request for a shipment is mandatory.",
        "value": {
          "errors": [
            {
              "title": "PROPERTY_IS_MANDATORY",
              "detail": "The property is mandatory",
              "path": "/multiparcel-shipments/shipments",
              "jsonPath": "shipments[0].trackingKey"
            }
          ]
        }
      },
      "ShipmentAddPositionItemsInsufficientPermissionsResponse__Shipments-V1": {
        "description": "A position item in the request doesn't belong to the partner.",
        "value": {
          "errors": [
            {
              "title": "INSUFFICIENT_PERMISSION",
              "detail": "The partner is not allowed to create/update a shipment for position item ID",
              "path": "/shipments",
              "jsonPath": "[0].positionItemId"
            }
          ]
        }
      }
    },
    "headers": {
      "ETag": {
        "description": "The RFC 7232 ETag header field in a response provides the entity-tag of a selected resource. The entity-tag is an opaque identifier for versions and representations of the same resource over time, regardless whether multiple versions are valid at the same time. An entity-tag consists of an opaque quoted string, possibly prefixed by a weakness indicator (see [RFC 7232 Section 2.3](https://tools.ietf.org/html/rfc7232#section-2.3).",
        "schema": {
          "type": "string"
        },
        "required": false,
        "example": "7da7a728f910"
      },
      "Last-Modified": {
        "description": "TThe Last-Modified header field in a response provides a timestamp indicating the date and time at which the origin server believes the selected representation was last modified, as determined at the conclusion of handling the request (see [RFC 7232 Section 2.3](https://tools.ietf.org/html/rfc7232#section-2.2).",
        "schema": {
          "type": "string"
        },
        "required": false,
        "example": "Tue, 15 Nov 1994 12:45:26 GMT"
      }
    },
    "parameters": {
      "If-Match": {
        "name": "If-Match",
        "in": "header",
        "description": "The RFC7232 If-Match header field in a request requires the server to only operate on the resource that matches at least one of the provided entity-tags. This allows clients express a precondition that prevent the method from being applied if there have been any changes to the resource (see [RFC 7232 Section 3.1](https://tools.ietf.org/html/rfc7232#section-3.1).",
        "schema": {
          "type": "string"
        },
        "required": false,
        "example": "7da7a728f910"
      },
      "If-None-Match": {
        "name": "If-None-Match",
        "in": "header",
        "description": "The RFC7232 If-None-Match header field in a request requires the server to only operate on the resource if it does not match any of the provided entity-tags. If the provided entity-tag is `*`, it is required that the resource does not exist at all (see [RFC 7232 Section 3.2](https://tools.ietf.org/html/rfc7232#section-3.2)",
        "schema": {
          "type": "string"
        },
        "required": false,
        "example": "7da7a728f910"
      },
      "If-Modified-Since": {
        "name": "If-Modified-Since",
        "in": "header",
        "description": "The RFC7232 If-Modified-Since header field makes a GET or HEAD request method conditional on the selected representation's modification date being more recent than the date provided in the field-value. Transfer of the selected representation's data is avoided if that data has not changed.",
        "schema": {
          "type": "string"
        },
        "required": false,
        "example": "Sat, 29 Oct 1994 19:43:31 GMT"
      },
      "If-Unmodified-Since": {
        "name": "If-Unmodified-Since",
        "in": "header",
        "description": "The RFC7232 If-Unmodified-Since header field makes the request method conditional on the selected representation's last modification date being earlier than or equal to the date provided in the field-value. This field accomplishes the same purpose as If-Match for cases where the user agent does not have an entity-tag for the representation.",
        "schema": {
          "type": "string"
        },
        "required": false,
        "example": "Sat, 29 Oct 1994 19:43:31 GMT"
      },
      "CampaignIdPath": {
        "name": "campaignId",
        "in": "path",
        "description": "Unique campaign identifier.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid",
          "example": "00000001-0000-4000-8000-000000000001"
        }
      },
      "TargetIdPath": {
        "name": "targetId",
        "in": "path",
        "description": "Unique target identifier.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid",
          "example": "00000002-0000-4000-8000-000000000002"
        }
      },
      "KeywordIdPath": {
        "name": "keywordId",
        "in": "path",
        "description": "Unique keyword identifier.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid",
          "example": "00000003-0000-4000-8000-000000000003"
        }
      },
      "ChangeRequestIdPath": {
        "name": "requestId",
        "in": "path",
        "description": "Unique change request identifier.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid",
          "example": "00000004-0000-4000-8000-000000000004"
        }
      },
      "CursorQuery": {
        "name": "cursor",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "example": "eyJjcmVhdGVkQXQi..."
        },
        "description": "Opaque cursor for pagination. Use the value of `nextCursor` or `prevCursor` from the previous response.\n"
      },
      "LimitQuery": {
        "name": "limit",
        "in": "query",
        "required": false,
        "schema": {
          "type": "integer",
          "format": "int32",
          "minimum": 1,
          "default": 100,
          "maximum": 1000
        },
        "description": "Results per page (max 1000)",
        "example": 100
      }
    },
    "requestBodies": {},
    "responses": {
      "UnauthorizedError": {
        "description": "Unauthorized. Missing or invalid authentication token.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/APIErrorResponse__SponsoredProductAds-V1"
            },
            "example": {
              "errors": [
                {
                  "message": "Unauthorized"
                }
              ],
              "timestamp": "2026-04-14T10:00:00Z"
            }
          }
        }
      },
      "ForbiddenError": {
        "description": "Forbidden. Insufficient permissions or resource access denied.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/APIErrorResponse__SponsoredProductAds-V1"
            },
            "example": {
              "errors": [
                {
                  "message": "Access denied. You do not have permission to access this resource."
                }
              ],
              "timestamp": "2026-04-14T10:00:00Z"
            }
          }
        }
      },
      "NotFoundError": {
        "description": "Not found. The requested resource does not exist.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/APIErrorResponse__SponsoredProductAds-V1"
            },
            "example": {
              "errors": [
                {
                  "message": "Resource not found"
                }
              ],
              "timestamp": "2026-04-14T10:00:00Z"
            }
          }
        }
      },
      "InternalServerError": {
        "description": "Internal server error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/APIErrorResponse__SponsoredProductAds-V1"
            },
            "example": {
              "errors": [
                {
                  "message": "Internal server error"
                }
              ],
              "timestamp": "2026-04-14T10:00:00Z"
            }
          }
        }
      },
      "BadRequestError": {
        "description": "Bad request. Invalid or rejected input data.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/APIErrorResponse__SponsoredProductAds-V1"
            },
            "example": {
              "errors": [
                {
                  "message": "'name' must be between 1 and 250 characters.",
                  "field": "name"
                },
                {
                  "message": "'startDate' must not be null.",
                  "field": "startDate"
                }
              ],
              "timestamp": "2026-04-15T10:00:00Z"
            }
          }
        }
      },
      "ConflictError": {
        "description": "Conflict. A change request for this campaign is already pending. Wait for it to reach a terminal state (`ACCEPTED` or `REJECTED`) before submitting a new write operation.\n",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/APIErrorResponse__SponsoredProductAds-V1"
            },
            "example": {
              "errors": [
                {
                  "message": "A change request for this campaign is already in progress. Please wait for it to complete."
                }
              ],
              "timestamp": "2026-04-15T10:00:00Z"
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Products V5",
      "description": ""
    },
    {
      "name": "Orders V4",
      "description": ""
    },
    {
      "name": "ReturnShipments V1",
      "description": ""
    },
    {
      "name": "Shipments V1",
      "description": ""
    },
    {
      "name": "Returns V3",
      "description": ""
    },
    {
      "name": "Receipts V3",
      "description": ""
    },
    {
      "name": "Price Reductions V1",
      "description": ""
    },
    {
      "name": "ReturnsWarehouse V2",
      "description": ""
    },
    {
      "name": "ShippingProfiles V1",
      "description": ""
    },
    {
      "name": "Availability V1",
      "description": ""
    },
    {
      "name": "SponsoredProductAds V1",
      "description": ""
    },
    {
      "name": "SponsoredProductAdsReporting V1",
      "description": ""
    }
  ]
}