{
  "openapi": "3.0.2",
  "info": {
    "title": "JTL-Channel API",
    "version": "1.0.0",
    "x-logo": {
      "url": "https://scx-sandbox.ui.jtl-software.com/docs/scx.png"
    },
    "description": "JTL-Channel API is a REST-based API that helps a Channel Integrator to connect Marketplace with the JTL-Wawi \nERP System.\n\n# Key Features\n\nWith the JTL-Channel API, you can:\n\n  * Describe connected Marketplace Data Structure by providing Category and Attribute Data\n  * Manage Product and Offer Listings\n  * Manage Orders \n  * Handle the Post Order Process\n\n# Development Guide\n\nThere is a detailed development guide available at [developer.jtl-software.com](https://developer.jtl-software.com/products/marketplaces/scx-channel-api/change_log).\n"
  },
  "servers": [
    {
      "url": "https://scx-sbx.api.jtl-software.com",
      "description": "Sandbox"
    },
    {
      "url": "https://scx.api.jtl-software.com",
      "description": "Production"
    }
  ],
  "tags": [
    {
      "name": "Seller",
      "description": "Seller Management\n"
    },
    {
      "name": "Channel",
      "description": "Meta channel routes"
    },
    {
      "name": "Notification",
      "description": "Channel notifications"
    },
    {
      "name": "Supported Prices",
      "description": "Price type management"
    },
    {
      "name": "Meta",
      "description": "meta"
    },
    {
      "name": "Attributes",
      "description": "Channel attributes"
    },
    {
      "name": "Categories",
      "description": "Channel categories"
    },
    {
      "name": "Order",
      "description": "Orders"
    },
    {
      "name": "Return",
      "description": "Order returns"
    },
    {
      "name": "Events",
      "description": "SCX events"
    },
    {
      "name": "Offer",
      "description": "Channel offers"
    },
    {
      "name": "Report",
      "description": "SCX reports"
    },
    {
      "name": "Ticket",
      "description": "Channel tickets"
    },
    {
      "name": "Stock Updates",
      "description": "Stock update operations"
    }
  ],
  "paths": {
    "/v1/channel": {
      "get": {
        "operationId": "GetChannel",
        "tags": [
          "Channel"
        ],
        "summary": "Status",
        "description": "Read Channel information\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ChannelStatus"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "patch": {
        "operationId": "UpdateChannel",
        "tags": [
          "Channel"
        ],
        "summary": "Update Channel",
        "description": "Update Channel information. This endpoint is protected by MFA (2FA).\nA valid MFA PIN must be included in the request. The PIN can be generated\nusing the GET /v1/channel/mfa-pin endpoint and will be sent to the channel's\nmfaContact email address.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateChannel"
        },
        "responses": {
          "201": {
            "description": "Channel Updated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/mfa-pin": {
      "get": {
        "operationId": "GetChannelMfaPin",
        "tags": [
          "Channel"
        ],
        "summary": "Generate MFA PIN",
        "description": "Generates a Multi-Factor Authentication (MFA) PIN for channel updates.\nThe PIN is sent to the channel's mfaContact email address and must be used\nwhen updating channel details via the PATCH /v1/channel endpoint.\nThe PIN is stored securely and never returned directly to the client.\nIt is deleted after successful validation or when it expires.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "MFA PIN generated and sent to the channel's mfaContact email address"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/seller/list": {
      "get": {
        "operationId": "GetSellerList",
        "tags": [
          "Channel"
        ],
        "summary": "List all SellerIds",
        "description": "The API Endpoint list all Seller IDs known by SCX-API with current status.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ChannelSellerListResponse"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/notification": {
      "post": {
        "operationId": "PostChannelNotification",
        "tags": [
          "Notification"
        ],
        "summary": "Notification",
        "description": "Send a Channel Notification to SCX\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateChannelNotification"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/OptionalErrorResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/price": {
      "post": {
        "operationId": "CreatePriceType",
        "tags": [
          "Supported Prices"
        ],
        "summary": "Price Types",
        "description": "Create a price type for different customer groups.",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/PriceType"
        },
        "responses": {
          "201": {
            "description": "Price type Created"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/payment-rules": {
      "put": {
        "operationId": "PutPaymentRules",
        "tags": [
          "Meta"
        ],
        "summary": "Payment Rules",
        "description": "Payment Rules\n",
        "requestBody": {
          "$ref": "#/components/requestBodies/PaymentRules"
        },
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "Payment Rules Created"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/shipping-rules": {
      "put": {
        "operationId": "PutShippingRules",
        "tags": [
          "Meta"
        ],
        "summary": "Shipping Rules",
        "description": "Shipping Rules can be used to define a list of Carriers which are supported by the connected Marketplace\n(supportedCarrierList). A connected Seller integration will provide the Id to the Carrier when the Shipping\nInformation is transmitted. (see Event Type: `Seller:Order.Shipping`)\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ShippingRules"
        },
        "responses": {
          "201": {
            "description": "Shipping Rules Created"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/attribute/global": {
      "put": {
        "operationId": "CreateGlobalAttributes",
        "tags": [
          "Attributes"
        ],
        "summary": "Global Attributes",
        "description": "Create or update global attribute. Global attributes not depending on categories and are visible for offers in\na global scope. Use these kind of attributes to define channel specific needs.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ContentEncodingGzip"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/GlobalAttributes"
        },
        "responses": {
          "201": {
            "description": "Global attribute created"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "get": {
        "operationId": "GetGlobalAttributes",
        "tags": [
          "Attributes"
        ],
        "summary": "Get Global Attributes",
        "description": "Get global attributes",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/AttributeListResponse"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/attribute/global/{attributeId}": {
      "delete": {
        "operationId": "DeleteGlobalAttributeById",
        "tags": [
          "Attributes"
        ],
        "summary": "Delete Global Attribute",
        "description": "Delete global attribute by attributeId.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "attributeId",
            "description": "ID of the global attribute to delete.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/AttributeId"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Global attribute deleted"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/attribute/seller/{sellerId}": {
      "put": {
        "operationId": "CreateSellerAttributes",
        "tags": [
          "Attributes"
        ],
        "summary": "Seller Attributes",
        "description": "Create or update Seller specific attributes. These kind of attributes can be used to provide seller specific\nattributes on global scope. Seller specific attributes not depending on categories and are visible for offers\nin a global scope.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ContentEncodingGzip"
          },
          {
            "$ref": "#/components/parameters/SellerIdPath"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ChannelAttributes"
        },
        "responses": {
          "201": {
            "description": "Seller attribute created"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "get": {
        "operationId": "GetSellerAttributes",
        "tags": [
          "Attributes"
        ],
        "summary": "Get Seller Attributes",
        "description": "Get Seller specific attributes\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/SellerIdPath"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/AttributeListResponse"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/attribute/seller/{attributeId}": {
      "delete": {
        "operationId": "DeleteSellerAttributeById",
        "tags": [
          "Attributes"
        ],
        "summary": "Delete Seller Attribute",
        "description": "Delete a seller-specific attribute by attributeId.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "attributeId",
            "description": "ID of the seller-specific attribute to delete.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/AttributeId"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Seller attribute deleted"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/attribute/category/{categoryId}": {
      "put": {
        "operationId": "CreateCategoryAttributes",
        "tags": [
          "Attributes"
        ],
        "summary": "Category Attributes",
        "description": "Create Attributes which are required for listings in specific category.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ContentEncodingGzip"
          },
          {
            "in": "path",
            "name": "categoryId",
            "description": "Assing attributes to a former created channel category. If no categoryId is provided the attribut\nwill be assigned to the global channel scope, which means that every offer may require such\nan attribute.\n",
            "required": true,
            "style": "simple",
            "explode": true,
            "schema": {
              "$ref": "#/components/schemas/CategoryId"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ChannelAttributes"
        },
        "responses": {
          "201": {
            "description": "Attributes received"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "get": {
        "operationId": "GetCategoryAttributes",
        "tags": [
          "Attributes"
        ],
        "summary": "Get Category Attributes",
        "description": "Get Attributes which are required for listings in specific category.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "categoryId",
            "description": "ID of the channel category whose attributes should be returned.",
            "required": true,
            "style": "simple",
            "explode": true,
            "schema": {
              "$ref": "#/components/schemas/CategoryId"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/AttributeListResponse"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/attribute/{attributeId}/category/{categoryId}": {
      "delete": {
        "operationId": "DeleteCategoryAttributeById",
        "tags": [
          "Attributes"
        ],
        "summary": "Delete Category Attribute by ID",
        "description": "Delete channel attributes from all assigned categories.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "attributeId",
            "description": "ID of the attribute to remove from the given category.",
            "required": true,
            "style": "simple",
            "explode": true,
            "schema": {
              "$ref": "#/components/schemas/AttributeId"
            }
          },
          {
            "in": "path",
            "name": "categoryId",
            "description": "ID of the category the attribute should be removed from.",
            "required": true,
            "style": "simple",
            "explode": true,
            "schema": {
              "$ref": "#/components/schemas/CategoryId"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Attribute deactivated"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/attribute/category": {
      "delete": {
        "operationId": "DeleteCategoryAttributes",
        "tags": [
          "Attributes"
        ],
        "summary": "Delete Category Attributes",
        "description": "Delete category attributes by category ID.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "categoryId",
            "description": "ID of the category whose attribute assignments should be deleted. If omitted, all category attribute assignments are deleted.",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/CategoryId"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Attributes deleted"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/categories": {
      "put": {
        "operationId": "CreateChannelCategoryTree",
        "tags": [
          "Categories"
        ],
        "summary": "Update Category Tree",
        "description": "Update Channel Category tree.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ContentEncodingGzip"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ChannelCategories"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/CategoryTreeCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "get": {
        "operationId": "GetChannelCategoryTree",
        "tags": [
          "Categories"
        ],
        "summary": "Get Category Tree",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/CategoryTreeResponse"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/seller": {
      "post": {
        "operationId": "CreateSeller",
        "tags": [
          "Seller"
        ],
        "summary": "Create Seller",
        "description": "Connect a new Seller to SCX Platform\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateSeller"
        },
        "responses": {
          "201": {
            "description": "Seller linked"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "patch": {
        "operationId": "UpdateSeller",
        "tags": [
          "Seller"
        ],
        "summary": "Update Seller",
        "description": "Update a existing Seller\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateSeller"
        },
        "responses": {
          "201": {
            "description": "Seller updated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/seller/signup-session": {
      "get": {
        "operationId": "GetSignupSession",
        "tags": [
          "Seller"
        ],
        "summary": "Read Signup Session",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "session",
            "description": "SessionId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/SignupSessionResponse"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/seller/update-session": {
      "get": {
        "operationId": "GetUpdateSession",
        "tags": [
          "Seller"
        ],
        "summary": "Read Update Session",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "session",
            "description": "Update session identifier",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/UpdateSessionResponse"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/seller/{sellerId}": {
      "delete": {
        "operationId": "DeleteSellerById",
        "tags": [
          "Seller"
        ],
        "summary": "Unlink Seller\n",
        "description": "Unlink a Seller from Channel. When doing this the Channel will no longer reveive data for\nthis Channel.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "sellerId",
            "description": "Unique Seller Id created with a former PUT /seller call",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Seller is unlinked"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/order": {
      "post": {
        "operationId": "CreateOrders",
        "tags": [
          "Order"
        ],
        "summary": "Create Orders",
        "description": "Create new Orders\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateOrder"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OptionalErrorResponse"
          },
          "201": {
            "description": "Orders Created"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/SellerNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/order/status": {
      "put": {
        "operationId": "UpdateOrderStatus",
        "tags": [
          "Order"
        ],
        "summary": "Status Update",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "description": "Update status for an existing order",
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateOrderStatus"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OptionalErrorResponse"
          },
          "201": {
            "description": "Status updated sucessful"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/order/address-update": {
      "put": {
        "operationId": "UpdateOrderAddressUpdate",
        "tags": [
          "Order"
        ],
        "summary": "Update Order Address List",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "description": "Address update for existing orders",
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateOrderAddressUpdate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OptionalErrorResponse"
          },
          "201": {
            "description": "Address updated successful"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/order/cancellation-accept": {
      "put": {
        "operationId": "OrderCancellationRequestAccept",
        "tags": [
          "Order"
        ],
        "summary": "Accept Cancellation Request",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "description": "Accept a cancellation Request for a Order or OrderItem",
        "requestBody": {
          "$ref": "#/components/requestBodies/OrderCancellationAcceptRequest"
        },
        "responses": {
          "201": {
            "description": "Order Cancellation accepted"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/order/cancellation-denied": {
      "put": {
        "operationId": "OrderCancellationRequestDenied",
        "tags": [
          "Order"
        ],
        "summary": "Deny Cancellation Request",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "description": "Deny a cancellation Request for a Order or OrderItem",
        "requestBody": {
          "$ref": "#/components/requestBodies/OrderCancellationDeniedRequest"
        },
        "responses": {
          "201": {
            "description": "Order Cancellation denied"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/order/cancellation": {
      "post": {
        "operationId": "RequestOrderCancellation",
        "tags": [
          "Order"
        ],
        "summary": "Request Order Cancellation",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "description": "Request cancallation for a Order or OrderItem\n",
        "requestBody": {
          "$ref": "#/components/requestBodies/OrderCancellationRequestRequest"
        },
        "responses": {
          "201": {
            "description": "Order Cancellation received."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/order/invoice": {
      "post": {
        "operationId": "UploadInvoice",
        "tags": [
          "Order"
        ],
        "summary": "Upload Invoice",
        "security": [
          {
            "SellerAuth": []
          }
        ],
        "description": "Upload an invoice document for an order.\n",
        "requestBody": {
          "$ref": "#/components/requestBodies/Invoice"
        },
        "responses": {
          "201": {
            "description": "Invoice received"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/order/invoice/{documentId}": {
      "get": {
        "operationId": "GetInvoiceDocument",
        "tags": [
          "Order"
        ],
        "summary": "Invoice",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "description": "Download Invoice document\n",
        "parameters": [
          {
            "in": "path",
            "name": "documentId",
            "description": "ID of the invoice document to download.",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Invoice"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/order/return": {
      "post": {
        "operationId": "CreateReturnAnnouncement",
        "tags": [
          "Return"
        ],
        "summary": "Return Announcement\n",
        "description": "Create a Return Announcement\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateReturnAnnouncementRequest"
        },
        "responses": {
          "201": {
            "description": "Return announcement received"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/order/return/processing-result": {
      "post": {
        "operationId": "CreateReturnProcessingResult",
        "tags": [
          "Return"
        ],
        "summary": "Return Processing Result\n",
        "description": "Send return Processing Result\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateReturnProcessingResult"
        },
        "responses": {
          "201": {
            "description": "Return processing result received"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/order/refund/processing-result": {
      "post": {
        "operationId": "SendRefundProcessingResult",
        "tags": [
          "Order"
        ],
        "summary": "Refund Processing Result",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "description": "Send Refund processing result back to Seller.\n",
        "requestBody": {
          "$ref": "#/components/requestBodies/RefundProcessingResultRequest"
        },
        "responses": {
          "201": {
            "description": "Refund processing result receied"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/event": {
      "get": {
        "operationId": "GetEvents",
        "tags": [
          "Events"
        ],
        "summary": "Seller Events\n",
        "description": "API Endpoint to retrieve events from registered sellers. Events are various different actions which may occur when \nsellers are processing channel data such as orders. After receiving a seller events response, each event in the response\nneeds to be acknowledged using `PATCH /v1/channel/event` request. Unacknowledged events will be delivered again after a\nperiod of time.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "description": "List seller events created after a specified time. If no createdAfter parameter is set, all \nunacknowledged events will be returned.\n",
            "name": "createdAfter",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2019-07-01T12:00:32+00:00",
            "required": false
          },
          {
            "in": "query",
            "description": "Optional parameter to request only a subset of available Seller Events. We recommend requesting only\nevents by using the `eventTypeFilter` parameter to process only events which can be processed by the\ncurrent channel implementation.\n",
            "name": "eventTypeFilter",
            "schema": {
              "type": "string"
            },
            "explode": true,
            "example": "SellerTestEvent,System:Notification,Seller:Order.Confirmed",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/SellerEventList"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "delete": {
        "operationId": "AcknowledgeEvents",
        "tags": [
          "Events"
        ],
        "summary": "Acknowledge Events",
        "description": "Delete Events by eventId. If a event is deleted it will not redelivered with the next `GET /v1/channel/event` request",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/EventIdList"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/offer/in-progress": {
      "post": {
        "operationId": "CreateOfferReceived",
        "tags": [
          "Offer"
        ],
        "summary": "Mark Listing in-progress\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "description": "Mark OfferId as in progress. Until a offer is marked as in progress it will\nbe redelivered on each GET /v1/channel/offer call.\n",
        "requestBody": {
          "$ref": "#/components/requestBodies/OfferListingInProgress"
        },
        "responses": {
          "201": {
            "description": "Offer received"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/offer/listing-failed": {
      "post": {
        "operationId": "CreateOfferListingFailed",
        "tags": [
          "Offer"
        ],
        "summary": "Mark Listing as failed\n",
        "description": "Mark a offer listing as failed\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/OfferListingFailed"
        },
        "responses": {
          "201": {
            "description": "Errors received"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/offer/listed": {
      "post": {
        "operationId": "CreateOfferListed",
        "tags": [
          "Offer"
        ],
        "summary": "Offer successful listed",
        "description": "Offer listed",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/OfferListingSuccessful"
        },
        "responses": {
          "201": {
            "description": "Listings received"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/report/{reportId}": {
      "post": {
        "deprecated": true,
        "operationId": "CreateReport",
        "tags": [
          "Report"
        ],
        "summary": "Report",
        "description": "This API route is deprecated and will be removed soon. Use `POST /v1/channel/report/{reportId}/data` instead.\n\nSend processed report data to the Channel API. On this API route, the maximum allowed size of items is 25,000.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "reportId",
            "description": "Target report identifier",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Full seller inventory report payload (deprecated single-shot upload), either as JSON or gzipped binary.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportSellerInventory"
              }
            },
            "application/gzip": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Report data accepted (deprecated)"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/report/{reportId}/data": {
      "post": {
        "operationId": "CreateReportData",
        "tags": [
          "Report"
        ],
        "summary": "Send Data",
        "description": "Send partial report data to the Channel API.\nOnce all data is sent, the reportId must be marked as completed by\ncalling `POST /v1/channel/report/{reportId}/completed`.\nA report is only valid up to 48h after requesting it.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "reportId",
            "description": "Identifier of the report to send data to",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Partial seller inventory report data chunk, either as JSON or gzipped binary upload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportSellerInventory"
              }
            },
            "application/gzip": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Report data accepted"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/report/{reportId}/completed": {
      "post": {
        "operationId": "CompleteReportProcessing",
        "tags": [
          "Report"
        ],
        "summary": "Mark Report completed",
        "description": "Mark a reportId as completed. Once a reportId is marked as completed, it can not receive any additional data.\nA report is only valid up to 48h after requesting it.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "reportId",
            "description": "Identifier of the report to mark as completed",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Report marked a completed"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/ticket/attachment": {
      "get": {
        "operationId": "GetTicketAttachment",
        "tags": [
          "Ticket"
        ],
        "summary": "Download Attachment",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "description": "Download Attachment\n",
        "parameters": [
          {
            "in": "query",
            "name": "sellerId",
            "description": "ID of the seller that owns the ticket attachment.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/SellerId"
            }
          },
          {
            "in": "query",
            "name": "ticketId",
            "description": "ID of the ticket the attachment belongs to.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/TicketId"
            }
          },
          {
            "in": "query",
            "name": "filename",
            "description": "Filename of the attachment to download.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/TicketAttachmentResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "post": {
        "operationId": "UploadTicketAttachment",
        "tags": [
          "Ticket"
        ],
        "summary": "Upload Attachment",
        "description": "Upload a attachment for a Ticket\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/TicketAttachment"
        },
        "responses": {
          "201": {
            "description": "Attachmet Uploaded"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/ticket": {
      "post": {
        "operationId": "CreateTicket",
        "tags": [
          "Ticket"
        ],
        "summary": "Create Ticket",
        "description": "Send a Ticket to Channel API\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateTicket"
        },
        "responses": {
          "201": {
            "description": "Ticket created"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/offer/stock-updates/all": {
      "get": {
        "operationId": "GetAllStockUpdates",
        "tags": [
          "Offer",
          "Stock Updates"
        ],
        "summary": "Stock Updates (All Sellers)",
        "description": "This endpoint retrieves all stock updates across all sellers for a channel. It provides a comprehensive \nview of inventory changes from all sellers associated with the authenticated channel.\n\nThis endpoint is ideal for:\n\n- **Periodic synchronization**: Regularly poll for stock updates across all sellers to keep inventory in sync\n- **Incremental updates**: Use the `updatedAfter` parameter with the previous `lastUpdatedAt` value to fetch only new changes\n\nThis API endpoint has a stricter rate limit.  \n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "name": "updatedAfter",
            "in": "query",
            "required": true,
            "description": "Filters stock updates to return only those modified after the specified date and time.\n",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2025-12-29T14:13:06Z"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with stock updates from all sellers",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StockList"
                },
                "example": {
                  "stockUpdateList": [
                    {
                      "channel": "CHANNEL",
                      "sellerId": "TESTSELLER",
                      "offerId": 4711,
                      "channelOfferId": "SKU1",
                      "quantity": 1,
                      "updatedAt": "2025-12-29T14:13:06+00:00"
                    }
                  ],
                  "lastUpdatedAt": "2025-12-29T14:13:06+00:00"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/v1/channel/offer/stock-updates": {
      "get": {
        "operationId": "GetStockUpdatesBySeller",
        "tags": [
          "Offer",
          "Stock Updates"
        ],
        "summary": "Stock Updates (by Seller)",
        "description": "This endpoint retrieves stock updates for offers from a specific seller within a channel. \nIt allows you to sync inventory changes for a particular seller's offers over time.\n\nReturns a filtered list of stock changes that occurred after a specified timestamp for a specific seller.\n",
        "security": [
          {
            "ChannelAuth": []
          }
        ],
        "parameters": [
          {
            "name": "updatedAfter",
            "in": "query",
            "required": true,
            "description": "Timestamp to filter stock updates. Only updates after this time will be returned.\n\n**Format:** ISO 8601 timestamp\n",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2025-12-01T00:00:00Z"
          },
          {
            "name": "sellerId",
            "in": "query",
            "description": "ID of the seller whose stock updates should be returned.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/SellerId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with stock updates for the specified seller",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StockList"
                },
                "example": {
                  "stockUpdateList": [
                    {
                      "channel": "RONHER",
                      "sellerId": "TESTSRL68f8f79d90556",
                      "offerId": 1,
                      "channelOfferId": "SKU1",
                      "quantity": 14,
                      "updatedAt": "2025-12-16T11:48:41+00:00"
                    }
                  ],
                  "lastUpdatedAt": "2025-12-29T14:13:06+00:00"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/AccessForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ResourceNotFound"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    }
  },
  "components": {
    "requestBodies": {
      "TicketAttachment": {
        "description": "Multipart upload of a single attachment file for an existing ticket.",
        "content": {
          "multipart/form-data": {
            "schema": {
              "$ref": "#/components/schemas/TicketAttachmentRequest"
            }
          }
        }
      },
      "UpdateChannel": {
        "description": "Channel master data update payload (display name, currency, supported marketplaces, MFA PIN).",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ChannelSelfUpdate"
            }
          }
        }
      },
      "CreateChannelNotification": {
        "description": "Channel-level notification to be broadcast to connected sellers (e.g. maintenance, incidents).",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Notification"
            }
          }
        }
      },
      "CreateOrder": {
        "description": "List of new orders received from the marketplace that should be forwarded to the sellers.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OrderList"
            }
          }
        }
      },
      "UpdateOrderStatus": {
        "description": "List of order status changes (e.g. payment received, shipped) reported by the marketplace.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OrderStatusList"
            }
          }
        }
      },
      "UpdateOrderAddressUpdate": {
        "description": "List of customer address updates for existing orders.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OrderAddressUpdateList"
            }
          }
        }
      },
      "OrderCancellationAcceptRequest": {
        "description": "Marketplace confirmation that a previously requested order cancellation has been accepted.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CancellationAccept"
            }
          }
        }
      },
      "OrderCancellationDeniedRequest": {
        "description": "Marketplace rejection of a previously requested order cancellation, including the reason.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CancellationDenied"
            }
          }
        }
      },
      "OrderCancellationRequestRequest": {
        "description": "Cancellation request originating from the marketplace that the seller has to accept or deny.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OrderCancellationRequest"
            }
          }
        }
      },
      "ChannelCategories": {
        "description": "Full marketplace category tree to be published for use in seller listings.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ChannelCategoryTree"
            }
          }
        }
      },
      "GlobalAttributes": {
        "description": "List of attributes that apply to all sellers and listings on the channel (global scope).",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AttributeList"
            }
          }
        }
      },
      "ChannelAttributes": {
        "description": "List of attributes scoped to a single seller or to a specific category.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AttributeList"
            }
          }
        }
      },
      "PriceType": {
        "description": "Definition of a price type supported by the channel (e.g. gross, net, sale price).",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PriceType"
            }
          }
        }
      },
      "CreateSeller": {
        "description": "New seller account data to be registered on the channel.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateSeller"
            }
          }
        }
      },
      "UpdateSeller": {
        "description": "Updated master data for an existing seller account.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateSeller"
            }
          }
        }
      },
      "EventIdList": {
        "description": "List of event IDs to acknowledge as successfully processed.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/EventIdList"
            }
          }
        }
      },
      "OfferListingInProgress": {
        "description": "List of offers whose listing process is currently being executed by the channel.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OfferListingInProgressList"
            }
          }
        }
      },
      "OfferListingFailed": {
        "description": "List of offers whose listing on the channel has failed, including the error reason.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OfferListingFailedList"
            }
          }
        }
      },
      "OfferListingSuccessful": {
        "description": "List of offers that have been successfully listed on the channel.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OfferListingSuccessfulList"
            }
          }
        }
      },
      "ShippingRules": {
        "description": "Set of shipping rules (carrier, region, cost) supported by the channel.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ShippingRules"
            }
          }
        }
      },
      "PaymentRules": {
        "description": "Set of payment rules (payment methods, currencies) supported by the channel.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PaymentRules"
            }
          }
        }
      },
      "Invoice": {
        "description": "Invoice metadata together with the binary PDF document for a marketplace order.",
        "content": {
          "multipart/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/InvoiceUpload"
            },
            "encoding": {
              "document": {
                "contentType": "application/pdf",
                "explode": false,
                "allowReserved": true
              }
            }
          }
        }
      },
      "CreateReturnAnnouncementRequest": {
        "description": "Announcement of a return shipment that the customer is sending back for a marketplace order.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ReturnAnnouncement"
            }
          }
        }
      },
      "CreateReturnProcessingResult": {
        "description": "Result of the channel-side processing of a return (accepted, rejected, partial).",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ReturnProcessingResult"
            }
          }
        }
      },
      "RefundProcessingResultRequest": {
        "description": "Result of the channel-side processing of a refund request (accepted, rejected, amount).",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/RefundProcessingResult"
            }
          }
        }
      },
      "CreateTicket": {
        "description": "Customer service ticket created on the channel side that should be forwarded to the seller.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Ticket"
            }
          }
        }
      }
    },
    "responses": {
      "ChannelSellerListResponse": {
        "description": "OK",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ChannelSellerList"
            }
          }
        }
      },
      "Invoice": {
        "description": "Invoice Document",
        "content": {
          "application/pdf": {
            "schema": {
              "type": "string",
              "format": "binary"
            }
          }
        }
      },
      "ChannelStatus": {
        "description": "Channel status retrieved",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ChannelStatus"
            }
          }
        }
      },
      "CategoryTreeCreated": {
        "description": "Category Tree created",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CategoryTreeVersion"
            }
          }
        }
      },
      "SellerEventList": {
        "description": "Seller events retrieved",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SellerEventList"
            }
          }
        }
      },
      "UpdateSessionResponse": {
        "description": "Session updated",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateSession"
            }
          }
        }
      },
      "SignupSessionResponse": {
        "description": "Signup session retrieved",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SignupSession"
            }
          }
        }
      },
      "AttributeListResponse": {
        "description": "Attribute list retrieved",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AttributeListSchema"
            }
          }
        }
      },
      "CategoryTreeResponse": {
        "description": "Category tree retrieved",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CategoryTreeList"
            }
          }
        }
      },
      "AccessForbidden": {
        "description": "Access forbidden, invalid or unknown Token was used."
      },
      "ServerError": {
        "description": "Unexpected Server Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponseList"
            },
            "example": {
              "errorList": [
                {
                  "code": "GEN500",
                  "message": "Internal Server Error",
                  "severity": "error",
                  "hint": null
                }
              ]
            }
          }
        }
      },
      "BadRequest": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponseList"
            },
            "example": {
              "errorList": [
                {
                  "code": "VAL100",
                  "message": "Required field sellerId not found",
                  "severity": "error",
                  "hint": "Check the field `sellerId` — it must be a non-empty string."
                }
              ]
            }
          }
        }
      },
      "OptionalErrorResponse": {
        "description": "Call was overall successful but some items can be faulty",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponseList"
            },
            "example": {
              "errorList": [
                {
                  "code": "CHN401",
                  "message": "Not all orders could be processed. 9 out of 10 orders were stored successfully",
                  "severity": "warning",
                  "hint": null
                }
              ]
            }
          }
        }
      },
      "ResourceNotFound": {
        "description": "Requested resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponseList"
            },
            "example": {
              "errorList": [
                {
                  "code": "GEN404",
                  "message": "Not found",
                  "severity": "error",
                  "hint": null
                }
              ]
            }
          }
        }
      },
      "SellerNotFound": {
        "description": "The requested seller could not be found or is not active."
      },
      "NoContent": {
        "description": "No Content"
      },
      "TicketAttachmentResponse": {
        "description": "Ticket Attachment",
        "content": {
          "text/plain": {
            "schema": {
              "type": "string"
            }
          },
          "application/pdf": {
            "schema": {
              "type": "string",
              "format": "binary"
            }
          },
          "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
            "schema": {
              "type": "string",
              "format": "binary"
            }
          },
          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
            "schema": {
              "type": "string",
              "format": "binary"
            }
          },
          "application/vnd.ms-excel": {
            "schema": {
              "type": "string",
              "format": "binary"
            }
          },
          "application/msword": {
            "schema": {
              "type": "string",
              "format": "binary"
            }
          },
          "image/*": {
            "schema": {
              "type": "string",
              "format": "binary"
            }
          }
        }
      }
    },
    "schemas": {
      "ChannelSellerList": {
        "description": "List of all sellers currently registered on the channel.",
        "type": "object",
        "properties": {
          "sellerList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChannelSeller"
            }
          }
        }
      },
      "CategoryTreeList": {
        "description": "Wrapper around the published category tree (list of root categories with their children).",
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Category"
            }
          }
        }
      },
      "AttributeListSchema": {
        "description": "Versioned list of attribute definitions published by the channel.",
        "type": "object",
        "properties": {
          "attributeListVersion": {
            "type": "string",
            "example": "2019060115430"
          },
          "attributeList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attribute"
            }
          }
        }
      },
      "InvoiceUpload": {
        "description": "Multipart payload combining invoice metadata with the binary PDF document for upload.",
        "type": "object",
        "required": [
          "invoice",
          "document"
        ],
        "properties": {
          "invoice": {
            "$ref": "#/components/schemas/InvoiceMetaData"
          },
          "document": {
            "description": "The Invoice document as binary data must be type of PDF and have a maximum size of 16 MB.",
            "type": "string",
            "format": "binary"
          }
        }
      },
      "SellerEventList": {
        "description": "Paginated list of events relevant to a seller (e.g. listing failed, order received) emitted by the channel.",
        "type": "object",
        "properties": {
          "eventList": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "type": "object",
              "required": [
                "id",
                "createdAt",
                "type",
                "event"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "example": "5cde84164d811d00144581f8"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "example": "2019-07-01T12:43:23+00:00"
                },
                "clientVersion": {
                  "$ref": "#/components/schemas/ClientVersion"
                },
                "type": {
                  "$ref": "#/components/schemas/SellerEventTypeList"
                },
                "event": {
                  "type": "object",
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/SellerEventOrderShipping"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventOrderPayment"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventOfferEnd"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventOfferNew"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventOfferUpdate"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventOfferStockUpdate"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventOfferPriceUpdate"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventTest"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventReportRequest"
                    },
                    {
                      "$ref": "#/components/schemas/SystemEventNotification"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventChannelUnlinked"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventSellerAttributesUpdateRequest"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventOrderCancellationRequest"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventOrderCancellationAccepted"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventOrderCancellationDenied"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventOrderConfirmed"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventOrderInvoice"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventOrderReturnReceived"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventOrderRefund"
                    },
                    {
                      "$ref": "#/components/schemas/SellerEventTicketReply"
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "ChannelSelfUpdate": {
        "description": "Channel master-data update payload — display name, currency, supported marketplaces, contact data and feature flags. Requires an MFA PIN.",
        "type": "object",
        "required": [
          "mfaPin"
        ],
        "properties": {
          "mfaPin": {
            "description": "Multi-Factor Authentication (MFA) PIN required for updating channel details. The PIN must be generated using the GET /v1/channel/mfa-pin endpoint and will be sent to the channel's mfaContact email address.",
            "type": "string",
            "example": "12345670"
          },
          "displayName": {
            "description": "Channel Name\n",
            "type": "string",
            "example": "MyBestDeals.com"
          },
          "currency": {
            "description": "Currency which are supported by the Channel. According to ISO-4217.\n",
            "type": "string",
            "example": "EUR"
          },
          "marketplaceList": {
            "description": "Country ISO code or a list of ISO codes which geografic market is supported.\n",
            "type": "array",
            "items": {
              "type": "string",
              "example": "DE"
            }
          },
          "website": {
            "type": "string",
            "format": "uri",
            "example": "https://mybestdeals.de/sell-with-jtl"
          },
          "mfaContact": {
            "type": "string",
            "format": "email",
            "description": "Email address used for Multi-Factor Authentication (MFA). MFA PINs for channel updates\nwill be sent to this email address.\n",
            "example": "security@mybestdeals.de",
            "nullable": true
          },
          "vendor": {
            "type": "string",
            "example": "JTL-Software"
          },
          "signUpUrl": {
            "description": "The SignUp URL ist required for register new Sellers with the SCX Channel API.\nSCX will create a Sign-Up ID to link a seller with SCX.\n",
            "type": "string",
            "example": "https://mysqlbestdeals.com/signup-for-scx?session={SESSION}"
          },
          "updateUrl": {
            "description": "The Update URL ist required for updating a existing Sellers with the SCX Channel API. If this URL is\nnot set it will use the signUpUrl as a fallback\n",
            "type": "string",
            "example": "https://mysqlbestdeals.com/signup-for-scx?session={SESSION}"
          },
          "featureList": {
            "$ref": "#/components/schemas/ChannelFeatureList"
          },
          "minimumClientsVersionRequired": {
            "type": "array",
            "description": "Must be a list of supported Clients. If at least one item is defined SCX will validate the Client version during sign up process. \nIf the list is empty or null, no client restrictions is in place.\n",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/MinimumClientsVersionRequired"
            }
          }
        }
      },
      "ChannelStatus": {
        "description": "Operational status of the channel including whether it is currently active and its master data.",
        "type": "object",
        "properties": {
          "isActive": {
            "type": "boolean",
            "example": true
          },
          "channel": {
            "$ref": "#/components/schemas/SalesChannelData"
          }
        }
      },
      "ChannelCategoryTree": {
        "description": "Full category tree published by the channel, structured as a list of root categories with nested children.",
        "type": "object",
        "properties": {
          "categoryList": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/Category"
            }
          }
        }
      },
      "CreateSeller": {
        "description": "Payload to register a new seller account on the channel after a successful signup session.",
        "type": "object",
        "required": [
          "session",
          "sellerId"
        ],
        "properties": {
          "session": {
            "type": "string",
            "format": "uuid",
            "example": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6"
          },
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "companyName": {
            "type": "string",
            "example": "Bernd's brennender Brennholzverleih GmbH"
          }
        }
      },
      "UpdateSeller": {
        "description": "Payload used to update master data and active flag of an existing seller account.",
        "type": "object",
        "required": [
          "session",
          "isActive"
        ],
        "properties": {
          "session": {
            "type": "string",
            "format": "uuid",
            "example": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6"
          },
          "isActive": {
            "type": "boolean",
            "example": true
          },
          "companyName": {
            "type": "string",
            "example": "Bernd's brennender Brennholzverleih GmbH"
          }
        }
      },
      "CategoryTreeVersion": {
        "description": "Version identifier returned after publishing or updating the channel category tree.",
        "type": "object",
        "properties": {
          "categoryTreeVersion": {
            "type": "string",
            "example": "1559721549-ajifn"
          }
        }
      },
      "OfferListingInProgressList": {
        "description": "Batch of offers whose listing process on the channel is currently in progress.",
        "type": "object",
        "required": [
          "offerList"
        ],
        "properties": {
          "offerList": {
            "type": "array",
            "minItems": 1,
            "maxItems": 1000,
            "items": {
              "$ref": "#/components/schemas/OfferListingInProgress"
            }
          }
        }
      },
      "OfferListingFailedList": {
        "description": "Batch of offers whose listing on the channel has failed, including the failure reason per offer.",
        "type": "object",
        "required": [
          "offerList"
        ],
        "properties": {
          "offerList": {
            "type": "array",
            "minItems": 1,
            "maxItems": 1000,
            "items": {
              "$ref": "#/components/schemas/OfferListingFailed"
            }
          }
        }
      },
      "OfferListingSuccessfulList": {
        "description": "Batch of offers that have been successfully listed on the channel.",
        "type": "object",
        "required": [
          "offerList"
        ],
        "properties": {
          "offerList": {
            "type": "array",
            "minItems": 1,
            "maxItems": 1000,
            "items": {
              "$ref": "#/components/schemas/OfferListingSuccessful"
            }
          }
        }
      },
      "ShippingRules": {
        "description": "Shipping rules supported by the channel — list of carriers and the regions they cover.",
        "type": "object",
        "properties": {
          "supportedCarrierList": {
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/SupportedCarrier"
            }
          }
        }
      },
      "PaymentRules": {
        "description": "Payment rules supported by the channel — list of accepted payment methods.",
        "type": "object",
        "required": [
          "supportedPaymentMethodList"
        ],
        "properties": {
          "supportedPaymentMethodList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportedPaymentMethod"
            }
          }
        }
      },
      "OrderCancellationAccept": {
        "description": "Wrapper around CancellationAccept used to keep a stable named schema in generated SDK clients.\nAcceptance of a cancellation request previously sent by the channel.\n",
        "title": "OrderCancellationAccept",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/CancellationAccept"
          }
        ]
      },
      "OrderCancellationDenied": {
        "description": "Wrapper around CancellationDenied used to keep a stable named schema in generated SDK clients.\nDenial of a cancellation request previously sent by the channel.\n",
        "title": "OrderCancellationDenied",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/CancellationDenied"
          }
        ]
      },
      "UpdateSession": {
        "description": "Update-flow session payload identifying the seller whose master data is being updated.",
        "title": "UpdateSession",
        "type": "object",
        "required": [
          "sellerId"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          }
        }
      },
      "SignupSession": {
        "description": "Signup-flow session payload referencing the JTL account that initiated the seller signup.",
        "title": "SignupSession",
        "type": "object",
        "required": [
          "jtlAccountId"
        ],
        "properties": {
          "jtlAccountId": {
            "$ref": "#/components/schemas/JtlAccountId"
          }
        }
      },
      "ChannelFeatureList": {
        "type": "object",
        "properties": {
          "invoiceDocumentTransfer": {
            "description": "Indicates if Invoice can be shared between Channel and Seller Implementation. If this flag is set to\n`from-seller` a connected client implementation (such as JTL-Wawi) can upload invoice documents using\n`POST /v1/seller/order/invoice`. When flag is set to `from-channel` a connected client can receive invoice from\na Channel by `Channel:Order.Invoice` Event. A value `not-supported` indicates that no invoices can be transmitted\nbetween Seller and Channel.\n",
            "type": "string",
            "enum": [
              "not-supported",
              "from-channel",
              "from-seller"
            ],
            "default": "not-supported"
          },
          "priceUpdatesSupported": {
            "description": "Indicates whether the channel is able to process events of type Seller:Offer.PriceUpdate\n",
            "type": "boolean",
            "default": false
          },
          "quantityPriceSupported": {
            "description": "Does the channel support quantity price for quantity greater than 1. In SCX all offer prices are represented by\na quantity price data structure. In case there is no support for quantity prices on a certain channel only\nthe price for quantity 1 is taken into account. All other price settings may be ignored by the connected\nchannel.\n",
            "type": "boolean",
            "default": false
          },
          "remainingQuanitySupported": {
            "description": "Indicates if a channel is able to support a remaing quanity with each Order. The feature can be used\nby a connected client implementation (such as JTL-Wawi) to manage quanity updates on an channel.\n",
            "type": "boolean",
            "default": false
          },
          "variationsSupported": {
            "description": "Does the channel supports listing of variation offers. Variations are multiple similar (but not identical)\nitems in a offer listing. For example, a single offer could contain multiple items of the same brand and\nmodel that vary by color and size (like \"Blue, Large\" and \"Black, Medium\"). Each variation can have its own\nquantity and price.\n",
            "type": "boolean",
            "default": false
          },
          "returnTrackingRequired": {
            "description": "Indicates if a channel requires a return tracking code for an order item shipping update.\n",
            "type": "boolean",
            "default": false
          },
          "allowCombineOrders": {
            "description": "Indicates if a channel allows the combination of multiple separate orders into one.\n",
            "type": "boolean",
            "default": false
          },
          "stockUpdateWithoutEventSupported": {
            "description": "Indicates if a channel will fetch Stock updates per Route without need of SellerEventOfferStockUpdate.\n",
            "type": "boolean",
            "default": false
          }
        }
      },
      "MinimumClientsVersionRequired": {
        "type": "object",
        "required": [
          "type",
          "version"
        ],
        "properties": {
          "type": {
            "type": "string",
            "example": "Wawi",
            "description": "Type of Client. Set to `Wawi` for JTL-Wawi.\n"
          },
          "version": {
            "type": "string",
            "example": "1.11.0.3",
            "description": "Minimum Client Version required for channel selection and sign up.\nMust be a semantic version (e.g., 1.11.0.3).\n"
          }
        }
      },
      "IsPlatform": {
        "description": "Defines whether a channel is a platform channel. Is the property is set to true the channel is considered as a platform channel.\nThe platform property must be null\n- true = Platform Channel\n- false = Marketplace or normal Channel\n",
        "type": "boolean",
        "default": false,
        "example": false
      },
      "Platform": {
        "description": "Belonging to a platform.\nIf set, it is a marketplace channel.\nIf isPlatform = true, this property must not be set.\n",
        "type": "string",
        "default": null,
        "example": "AMAZON"
      },
      "MarketplaceChannelList": {
        "description": "Only set for Platform Channel, and contains all Marketplace Channel names that have been assigned to the platform.\n",
        "type": "array",
        "default": null,
        "example": [
          "JTL Marketplace FR",
          "JTL Marketplace DE",
          "JTL Marketplace GB"
        ]
      },
      "StockSyncGroup": {
        "type": "string",
        "nullable": true,
        "description": "Groups Marketplace Channels for stock synchronization.\nRules:\n- May ONLY be set when `platform` != null (Marketplace Channel).\n- Must be null when `isPlatform` = true (Platform Channel).\nSemantics:\n- All Channels with the same `stockSyncGroup` expect only ONE stock update per SKU\n  (ERP sends to exactly one Channel of the group).\n",
        "example": "AMAZON-EU"
      },
      "ChannelBasedData": {
        "type": "object",
        "required": [
          "marketplaceList",
          "displayName",
          "website",
          "supportContact",
          "vendor",
          "signUpUrl",
          "featureList"
        ],
        "properties": {
          "group": {
            "type": "string",
            "example": "MyBestDeals",
            "nullable": true
          },
          "currency": {
            "description": "Currency which are supported by the Channel. According to ISO-4217.\n",
            "type": "string",
            "example": "EUR"
          },
          "marketplaceList": {
            "description": "Country ISO code or a list of ISO codes which geografic market is supported.\n",
            "type": "array",
            "items": {
              "type": "string",
              "example": "DE"
            }
          },
          "supportedLanguages": {
            "description": "Laguage ISO code or a list of ISO codes which languages ars supported. According to ISO 639-1.\n",
            "type": "array",
            "items": {
              "type": "string",
              "example": "de"
            }
          },
          "displayName": {
            "description": "Channel Name\n",
            "type": "string",
            "example": "MyBestDeals.com"
          },
          "website": {
            "type": "string",
            "format": "uri",
            "example": "https://mybestdeals.de/sell-with-jtl"
          },
          "pricing": {
            "type": "string",
            "format": "uri",
            "example": "https://mybestdeals.de/sell-with-jtl#pricing",
            "nullable": true
          },
          "channelType": {
            "type": "string",
            "default": "MARKETPLACE",
            "enum": [
              "MARKETPLACE",
              "OTHER"
            ]
          },
          "supportContact": {
            "type": "string",
            "format": "email",
            "example": "support@mybestdeals.de"
          },
          "vendor": {
            "type": "string",
            "example": "JTL-Software"
          },
          "signUpUrl": {
            "description": "The SignUp URL ist required for register new Sellers with the SCX Channel API.\nSCX will create a Sign-Up ID to link a seller with SCX.\n",
            "type": "string",
            "example": "https://mysqlbestdeals.com/signup-for-scx?session={SESSION}"
          },
          "updateUrl": {
            "description": "The Update URL ist required for updating a existing Sellers with the SCX Channel API. If this URL is\nnot set it will use the signUpUrl as a fallback\n",
            "type": "string",
            "example": "https://mysqlbestdeals.com/signup-for-scx?session={SESSION}"
          },
          "logo": {
            "type": "string",
            "description": "URL of a Channel logo\n",
            "example": "https://mysqlbestdeals.com/logo.svg",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Description text of a channel\n",
            "example": "MyBestDeals is the marketplace where customers find the best deals in the world.",
            "nullable": true
          },
          "appId": {
            "type": "string",
            "description": "AppId of a channel. Wawi use this to create Links to the Channel-Documentation\n",
            "example": "mybestdeals",
            "nullable": true
          },
          "featureList": {
            "$ref": "#/components/schemas/ChannelFeatureList"
          },
          "minimumClientsVersionRequired": {
            "type": "array",
            "description": "Must be a list of supported Clients. If at least one item is defined SCX will validate the Client version during sign up process. \nIf the list is empty or null, no client restrictions is in place.\n",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/MinimumClientsVersionRequired"
            }
          },
          "isPlatform": {
            "$ref": "#/components/schemas/IsPlatform"
          },
          "platform": {
            "$ref": "#/components/schemas/Platform"
          },
          "marketplaceChannelList": {
            "$ref": "#/components/schemas/MarketplaceChannelList"
          },
          "stockSyncGroup": {
            "$ref": "#/components/schemas/StockSyncGroup"
          }
        }
      },
      "SalesChannelBase": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ChannelBasedData"
          }
        ],
        "properties": {
          "visibility": {
            "type": "string",
            "description": "Sales Channel visibility.\n\n* **JTL**: Channel provided directly by JTL\n* **THIRDPARTY**: Channel hostet, supported and accounted by a 3rd Party vendor\n* **ONBOARDING**: Channel is in on boarding process - these channels are only visible to selected user group\n* **RESTRICTED**: Channel can only be shown to select sellers\n* **(Deprecated) PUBLIC**: do not use\n",
            "enum": [
              "JTL",
              "THIRDPARTY",
              "ONBOARDING",
              "RESTRICTED"
            ],
            "example": "JTL"
          }
        }
      },
      "Channel": {
        "description": "This is the unique Channel name.\n",
        "type": "string",
        "example": "MYBESTDEALCOMDE",
        "pattern": "^\\w{5,15}$"
      },
      "SalesChannelData": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/SalesChannelBase"
          }
        ],
        "required": [
          "channel",
          "currency",
          "visibility",
          "marketplaceList",
          "displayName",
          "website",
          "supportContact",
          "vendor",
          "signUpUrl",
          "isPlatform"
        ],
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/Channel"
          }
        }
      },
      "ErrorResponseList": {
        "type": "object",
        "properties": {
          "errorList": {
            "nullable": true,
            "type": "array",
            "example": [
              {
                "code": "GEN700",
                "message": "Seller SELLER_4711 does not exist on channel kaufland.",
                "severity": "error",
                "hint": "i9n-order22"
              }
            ],
            "items": {
              "title": "Error",
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "example": "GEN700"
                },
                "message": {
                  "type": "string",
                  "example": "Seller SELLER_4711 does not exist on channel kaufland."
                },
                "severity": {
                  "type": "string",
                  "enum": [
                    "error",
                    "warning",
                    "info"
                  ],
                  "default": "error"
                },
                "hint": {
                  "type": "string",
                  "nullable": true,
                  "example": "i9n-order22"
                }
              }
            }
          }
        }
      },
      "SellerId": {
        "description": "A unique Id identify a Seller on a specific SalesChannel. The SellerId is generated\nfrom the Channel itself during the Seller SignUp Process.\n",
        "type": "string",
        "example": "4711",
        "pattern": "^\\w{1,50}$"
      },
      "ChannelSeller": {
        "type": "object",
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "jtlAccountId": {
            "description": "The JTL Account ID is the unique identifier of a seller in the JTL-System.\n",
            "type": "integer",
            "example": 12345
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "isActiveByJTL": {
            "description": "Indicates if the seller is active according to the JTL System. If this flag is set to `false` the seller is not \nactive in JTL-Wawi. A reason for this can be that the seller has no active subscription or the seller has been\ndeactivated by himself in JTL-Wawi.\n",
            "type": "boolean",
            "default": true
          },
          "isActiveByChannel": {
            "description": "Indicates if the seller is active according to your connection. If this flag is set to `false` the seller \nwas deactivated by a `DELETE /v1/channel/seller` request.\n",
            "type": "boolean",
            "default": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "example": "2019-03-13T20:21:43+00:00"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2019-03-13T20:21:43+00:00",
            "nullable": true
          }
        }
      },
      "ChannelNotificationSeverity": {
        "type": "string",
        "enum": [
          "INFO",
          "WARNING",
          "ERROR"
        ],
        "default": "INFO",
        "example": "INFO"
      },
      "ChannelNotificationReferenceType": {
        "type": "string",
        "example": "OFFER",
        "enum": [
          "OFFER",
          "CHANNELOFFER",
          "ORDERITEMID"
        ]
      },
      "Notification": {
        "type": "object",
        "required": [
          "sellerId",
          "severity",
          "message"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "severity": {
            "$ref": "#/components/schemas/ChannelNotificationSeverity"
          },
          "message": {
            "type": "string",
            "example": "Product Data could not be updated"
          },
          "reference": {
            "title": "ChannelNotificationReference",
            "type": "object",
            "nullable": true,
            "required": [
              "type",
              "id"
            ],
            "properties": {
              "type": {
                "$ref": "#/components/schemas/ChannelNotificationReferenceType"
              },
              "id": {
                "type": "string",
                "example": "19820701"
              }
            }
          }
        }
      },
      "PriceType": {
        "type": "object",
        "required": [
          "priceTypeId",
          "displayName"
        ],
        "properties": {
          "priceTypeId": {
            "type": "string",
            "example": "B2C"
          },
          "displayName": {
            "type": "string",
            "example": "Standard Price"
          },
          "description": {
            "type": "string",
            "example": "B2C Price"
          }
        }
      },
      "SupportedPaymentMethod": {
        "type": "object",
        "required": [
          "paymentMethodId"
        ],
        "properties": {
          "paymentMethodId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "example": "PM011"
          },
          "displayName": {
            "type": "string",
            "maxLength": 150,
            "example": "CreditCard"
          }
        }
      },
      "SupportedCarrier": {
        "type": "object",
        "required": [
          "carrierId"
        ],
        "properties": {
          "carrierId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "example": "C102"
          },
          "displayName": {
            "type": "string",
            "maxLength": 150,
            "example": "Deutsche Post"
          }
        }
      },
      "AttributeId": {
        "description": "AttributeId must be a category tree wide unique identifer.\n",
        "type": "string",
        "example": "12323",
        "minLength": 1,
        "maxLength": 512
      },
      "AllowedValue": {
        "type": "object",
        "required": [
          "value"
        ],
        "properties": {
          "value": {
            "description": "An enumeration to include in the set. The enumeration bust be string-based.\nExample: '1', 'green_l_st'\n",
            "type": "string",
            "maxLength": 1024,
            "minLength": 1
          },
          "display": {
            "description": "An optional alias for the enumeration, which will be shown in the GUI. If left empty, the value will be shown instead.\nExample: 'Red', 'Light Green + Striped'\n",
            "type": "string",
            "maxLength": 1024,
            "minLength": 1
          },
          "sort": {
            "description": "Specifies the order of values",
            "type": "integer",
            "default": 0
          }
        }
      },
      "Attribute": {
        "type": "object",
        "required": [
          "attributeId",
          "displayName"
        ],
        "properties": {
          "attributeId": {
            "$ref": "#/components/schemas/AttributeId"
          },
          "displayName": {
            "description": "Display name is used to display the attribute inside a User Interface.\n",
            "type": "string",
            "example": "Brand",
            "maxLength": 150
          },
          "isMultipleAllowed": {
            "description": "Define if there is more than one value allowed for this attribute.\n",
            "type": "boolean",
            "example": false,
            "default": false
          },
          "type": {
            "description": "Attribute type decribe which kind of data is expecet for a particular attribute.\n\n* Type **smalltext** is considerd a plain text any may not exceed more than 255 characters.\n* Type **text** is considerd plain text and may not exceed a maximum length more than 50.000 characters.\n* Type **htmltext** may be used for text where HTML Markup is allowed. The maximum lengh schould not exceed\nmore than 50.000 characters.\n* Type **date** must follow [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard with Timezone.\n* Type **enum** may provide data with enumValues property\n* Type **image** a attribute with an existing remote File uploaded using `POST /v1/seller/offer/file`\n* Type **document** a attribute with an existing remote File uploaded using `POST /v1/seller/offer/file`\n* Type **url** must match a URL Schema\n* Type **label** can be used as help text. Requires description to be set\n",
            "type": "string",
            "enum": [
              "smalltext",
              "htmltext",
              "text",
              "integer",
              "decimal",
              "enum",
              "date",
              "boolean",
              "image",
              "document",
              "url",
              "label"
            ],
            "example": "text",
            "default": "smalltext"
          },
          "values": {
            "description": "A set of possible choices for this specific attribute, in the form of a list of possible enumerations.\n",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AllowedValue"
            },
            "example": [
              {
                "value": "Beer"
              },
              {
                "value": "Tee",
                "display": "Wine"
              }
            ]
          },
          "attributeValueValidation": {
            "description": "Regular expression to validate attribute value\n",
            "type": "string",
            "example": "/^[0-9]{13}$/",
            "maxLength": 1024,
            "default": null
          },
          "conditionalMandatoryBy": {
            "description": "This property defines conditional mandatory settings\n",
            "type": "array",
            "nullable": true,
            "items": {
              "type": "object",
              "properties": {
                "attributeId": {
                  "$ref": "#/components/schemas/AttributeId"
                },
                "attributeValues": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "example": "High"
                  }
                }
              }
            }
          },
          "conditionalOptionalBy": {
            "description": "This property defines conditional optional settings\n",
            "type": "array",
            "nullable": true,
            "items": {
              "type": "object",
              "properties": {
                "attributeId": {
                  "$ref": "#/components/schemas/AttributeId"
                },
                "attributeValues": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "example": "No Frame"
                  }
                }
              }
            }
          },
          "required": {
            "type": "boolean",
            "example": true,
            "default": false
          },
          "recommended": {
            "description": "A Channel may recommend to have a attribute set when lisitng a offer on a certain markatplace to gain more\nvisibility and potential transactions.\n",
            "type": "boolean",
            "example": false,
            "default": false
          },
          "section": {
            "description": "Optinal attribute to assign a attribute to a specific section. A section can be used by a Seller Integration\nto show attributes grouped inside a identical section name.\n",
            "type": "string",
            "example": "Colors and Appearance",
            "default": null
          },
          "sectionPosition": {
            "description": "Section position is used to sort attributes in descending order inside a section. This property may be used by a Seller Integration to determine display sequence in a User Interface.",
            "type": "integer",
            "default": 0
          },
          "isRepeatableSubSection": {
            "description": "A repeatable subSection can be used to group related attributes together. Those related set of attributes is \nrepeatable as a group. When thoese attributes are transmitted to the SCX-Seller API as Channel Attributes they \nmust have the \"group\" property filled with a unique identifier. This attribute affect the subSection property.\nAll subsections with the same name must have the same value isRepeatableSubSection and musst not be mixed with\ndifferent settings.\n",
            "type": "boolean",
            "example": true,
            "default": false,
            "nullable": true
          },
          "subSection": {
            "description": "A sub section can be used to build a group of attributes inside a section.\n",
            "type": "string",
            "example": "Length",
            "default": null
          },
          "subSectionPosition": {
            "description": "Sub section position is used to sort attributes in descending order. This property may be used by a Seller\nIntegration to determine display sequence in a User Interface inside identicy **section**s\n",
            "type": "integer",
            "example": 0,
            "default": 0
          },
          "description": {
            "description": "Describe the purpose of an Attribute.\n",
            "type": "string",
            "example": null,
            "default": null
          },
          "isVariationDimension": {
            "type": "boolean",
            "example": true,
            "default": null
          },
          "enumValues": {
            "deprecated": true,
            "description": "(DEPRECATED - use values property instead)\nIf the attribte type equals to ENUM this propertie must be set.\n",
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 200,
              "example": "Blue"
            }
          }
        }
      },
      "AttributeList": {
        "type": "object",
        "properties": {
          "attributeList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attribute"
            }
          }
        }
      },
      "CategoryId": {
        "description": "Channel category Id\n",
        "type": "string",
        "minLength": 1,
        "maxLength": 512,
        "example": "Beer4711"
      },
      "Category": {
        "type": "object",
        "required": [
          "categoryId",
          "displayName",
          "isLeaf"
        ],
        "properties": {
          "categoryId": {
            "description": "Channel category Id.",
            "type": "string",
            "minLength": 1,
            "maxLength": 512,
            "example": "4711"
          },
          "displayName": {
            "description": "Category display name.",
            "type": "string",
            "example": "Beer",
            "minLength": 1,
            "maxLength": 250
          },
          "listingAllowed": {
            "description": "Mark a categoryId as leaf. Only leaf categories can list offers.",
            "type": "boolean",
            "default": true
          },
          "parentCategoryId": {
            "description": "Parent category Id. If category is 0 the current category is considered as root category.",
            "type": "string",
            "minLength": 1,
            "maxLength": 512,
            "example": "2343"
          }
        }
      },
      "JtlAccountId": {
        "description": "JTL Internal ID to identify a JTL Account\n",
        "type": "integer",
        "format": "int32",
        "minimum": 1,
        "example": 1782
      },
      "ChannelOrderStatus": {
        "description": "The current order status.\n\n* **UNACKED**: Order is created in Marketplace but a Seller acknowledge is required.\n* **CREATED**: Order is created but not yet completed.\n* **ACCEPTED**: Order is placed and checkout process is complete but not yet shipped.\n* (DEPRECATED) ~~SHIPPED~~: All items in the order have been shipped\n* (DEPRECATED) ~~PARTIALLY_SHIPPED~~: Some items (but not all) have been shipped.\n* (DEPRECATED) ~~CANCELED_BY_SELLER~~: Order is canceled by seller.\n* (DEPRECATED) ~~CANCELED_BY_BUYER~~: Order is canceled by buyer.\n",
        "type": "string",
        "enum": [
          "UNACKED",
          "CREATED",
          "ACCEPTED",
          "SHIPPED",
          "PARTIALLY_SHIPPED",
          "CANCELED_BY_SELLER",
          "CANCELED_BY_BUYER"
        ]
      },
      "ChannelOrderId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 150,
        "example": "43523-43432-43532"
      },
      "OrderItemId": {
        "description": "A unique identifier to identify a order item. This ID is provided by the Channel itself an should be used to identify a order item id.",
        "type": "string",
        "example": "5437233",
        "format": "string",
        "minLength": 1,
        "maxLength": 50
      },
      "OrderItemStatus": {
        "description": "The current for order item.\n\n* **UNSHIPPED**: Item is ready for shipping\n* **SHIPPED**: Item is sent to buyer\n* **CANCELED_BY_SELLER**: Order is canceled by seller.\n* **CANCELED_BY_BUYER**: Order is canceled by buyer.\n* **RETURNED**: Item is returned to Seller.\n* **REFUNDED**: Item was returned and refunded.\n",
        "type": "string",
        "enum": [
          "UNSHIPPED",
          "SHIPPED",
          "CANCELED_BY_SELLER",
          "CANCELED_BY_BUYER",
          "RETURNED",
          "REFUNDED"
        ]
      },
      "OrderItemPaymentStatus": {
        "description": "The current payment status\n\n* **PENDING**: Order Item is not yet paid.\n* **PAID**: Order Item is complete paid.\n",
        "type": "string",
        "enum": [
          "PENDING",
          "PAID"
        ]
      },
      "OfferId": {
        "description": "Unique Offer Id to identify an Offer on a Sales Channel.\n",
        "type": "integer",
        "example": 5437233,
        "format": "int64",
        "minimum": 1,
        "maxLength": 50
      },
      "ChannelOfferId": {
        "description": "Channel defined unique Offer Id to identify an Offer on a Sales Channel.\n",
        "type": "string",
        "example": "XCD233554",
        "minLength": 1,
        "maxLength": 100
      },
      "SKU": {
        "description": "Stock keeping unit is a unique Id used to identify one product.\n",
        "type": "string",
        "example": "BEER-001",
        "minLength": 1,
        "maxLength": 150
      },
      "AdditionalOrderDataGroupValues": {
        "title": "AdditionalOrderDataGroupValues",
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "The key is used to identify the additional order data. The key can be used multiple times in the list and\nwe recommend to use a human readable key.\n",
            "minLength": 1,
            "maxLength": 255,
            "example": "Advertising fee"
          },
          "value": {
            "type": "string",
            "description": "The value is used to store the additional order data and must be always a string.\n",
            "minLength": 1,
            "maxLength": 5000,
            "example": "0.50 USD"
          }
        }
      },
      "AdditionalOrderDataGroup": {
        "title": "AdditionalOrderDataGroup",
        "description": "Additional order data is a list of key value pairs and should be used to add additional information to an order.\nThe data is used by a connected client implementation (such as JTL-Wawi) to display and print this information.\n",
        "type": "object",
        "properties": {
          "group": {
            "type": "string",
            "description": "The group name is used to group the additional order data. The group name must be unique in the list.\n",
            "minLength": 1,
            "maxLength": 150,
            "example": "Marketplace Fees"
          },
          "values": {
            "type": "array",
            "minItems": 1,
            "maxItems": 50,
            "items": {
              "$ref": "#/components/schemas/AdditionalOrderDataGroupValues"
            }
          }
        }
      },
      "OrderItemTypeItem": {
        "type": "object",
        "title": "OrderItemTypeItem",
        "properties": {
          "orderItemId": {
            "$ref": "#/components/schemas/OrderItemId"
          },
          "type": {
            "type": "string",
            "default": "ITEM"
          },
          "itemStatus": {
            "$ref": "#/components/schemas/OrderItemStatus"
          },
          "itemPaymentStatus": {
            "$ref": "#/components/schemas/OrderItemPaymentStatus"
          },
          "grossPrice": {
            "type": "string",
            "example": "2.00",
            "description": "The order item gross price\nThe gross price is not allowed to have more than 2 decimal places.\n"
          },
          "total": {
            "type": "string",
            "example": "2.00",
            "description": "Overall gross price (quantity * grossPrice)\nThe total is not allowed to have more than 2 decimal places.\n"
          },
          "taxPercent": {
            "type": "string",
            "nullable": true,
            "example": "16.00"
          },
          "grossFee": {
            "description": "The accrued sales charge (gross), which is levied by the marketplace. This property is optional and if a\nmarketplace does not support sales fees then this property must be null or not present.\nThe gross fee is not allowed to have more than 2 decimal places.\n",
            "type": "string",
            "example": "0.29",
            "nullable": true
          },
          "offerId": {
            "$ref": "#/components/schemas/OfferId"
          },
          "channelOfferId": {
            "$ref": "#/components/schemas/ChannelOfferId"
          },
          "sku": {
            "$ref": "#/components/schemas/SKU"
          },
          "quantity": {
            "type": "string",
            "default": "1.0",
            "example": "1.0"
          },
          "title": {
            "type": "string",
            "example": "Dark Beer"
          },
          "estimatedShippingDate": {
            "type": "string",
            "format": "date-time",
            "example": "2010-03-11T00:00:00+00:00"
          },
          "estimatedDeliveryDate": {
            "type": "string",
            "format": "date-time",
            "example": "2010-03-12T00:00:00+00:00"
          },
          "remainingQuantity": {
            "type": "string",
            "description": "Includes the rest of the inventory available on the connected Marketplace. The remaining quanity can be used\nby a connected client implementation (such as JTL-Wawi) to manage quanity updates.\n",
            "nullable": true,
            "example": "54.0"
          },
          "additionalOrderItemData": {
            "description": "Additional order data is a list of key value pairs. The key is a string and the value is a string or a number.\nThe key must be unique in the list.\n",
            "type": "array",
            "minItems": 0,
            "maxItems": 10,
            "items": {
              "$ref": "#/components/schemas/AdditionalOrderDataGroup"
            }
          },
          "shipFromCountry": {
            "description": "Ship from country (Versandland) - ISO 3 letter country code indicating the country from which the item is shipped\n",
            "type": "string",
            "pattern": "^[A-Z]{3}$",
            "nullable": true,
            "example": "DEU"
          }
        },
        "required": [
          "orderItemId",
          "type",
          "grossPrice",
          "total"
        ]
      },
      "shippingGroup": {
        "description": "The shipping group is a unique identifier about what kind of shipping method and carrier is used to fulfill a order. A shipping group can be given by the connected salesChannel or defined by the seller itself.",
        "type": "string",
        "example": "DHL_DOMESTIC"
      },
      "OrderItemTypeShipping": {
        "type": "object",
        "title": "OrderItemTypeShipping",
        "properties": {
          "orderItemId": {
            "$ref": "#/components/schemas/OrderItemId"
          },
          "type": {
            "type": "string",
            "default": "SHIPPING"
          },
          "grossPrice": {
            "type": "string",
            "example": "3.99"
          },
          "taxPercent": {
            "type": "string",
            "example": "19.00",
            "nullable": true
          },
          "shippingGroup": {
            "$ref": "#/components/schemas/shippingGroup"
          }
        },
        "required": [
          "orderItemId",
          "type",
          "grossPrice",
          "shippingGroup"
        ]
      },
      "OrderItemTypePayment": {
        "type": "object",
        "title": "OrderItemTypePayment",
        "properties": {
          "orderItemId": {
            "$ref": "#/components/schemas/OrderItemId"
          },
          "type": {
            "type": "string",
            "default": "PAYMENT"
          },
          "grossPrice": {
            "type": "string",
            "example": "3.99"
          },
          "taxPercent": {
            "type": "string",
            "example": "19.00",
            "nullable": true
          },
          "note": {
            "type": "string",
            "example": "Cash on delivery"
          }
        },
        "required": [
          "orderItemId",
          "type",
          "grossPrice",
          "note"
        ]
      },
      "OrderItem": {
        "type": "object",
        "anyOf": [
          {
            "$ref": "#/components/schemas/OrderItemTypeItem"
          },
          {
            "$ref": "#/components/schemas/OrderItemTypeShipping"
          },
          {
            "$ref": "#/components/schemas/OrderItemTypePayment"
          }
        ]
      },
      "Address": {
        "type": "object",
        "required": [
          "lastName",
          "street",
          "city",
          "country"
        ],
        "properties": {
          "firstName": {
            "type": "string",
            "example": "Arno"
          },
          "lastName": {
            "type": "string",
            "example": "Nym"
          },
          "gender": {
            "type": "string",
            "enum": [
              "male",
              "female",
              "diverse"
            ]
          },
          "companyName": {
            "type": "string"
          },
          "street": {
            "type": "string",
            "example": "Leyboldstrasse"
          },
          "houseNumber": {
            "type": "string",
            "example": "14a"
          },
          "addition": {
            "type": "string",
            "example": "1. UG"
          },
          "postcode": {
            "type": "string",
            "example": "50354"
          },
          "city": {
            "type": "string",
            "example": "Hürth"
          },
          "phone": {
            "type": "string",
            "example": "+49 0221 123456"
          },
          "country": {
            "type": "string",
            "example": "DE"
          },
          "state": {
            "type": "string",
            "example": "NRW",
            "nullable": true
          }
        }
      },
      "OrderBuyer": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email"
          },
          "vatId": {
            "type": "string"
          }
        }
      },
      "Order": {
        "title": "Order",
        "type": "object",
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "orderStatus": {
            "$ref": "#/components/schemas/ChannelOrderStatus"
          },
          "orderAcceptUntil": {
            "description": "When `orderStatus` is type `UNACKED` a Seller integration must confirn a Order bevor it can be proccessed.\nThis field provides a time until when an order can be accepted. To accept an Order a Seller integration must\ninvoke API call `PUT /v1/seller/order/accept`.\n",
            "type": "string",
            "format": "date-time"
          },
          "paymentMethod": {
            "type": "string",
            "example": "CHANNEL",
            "minLength": 1,
            "maxLength": 150
          },
          "paymentReference": {
            "description": "Payment reference can be used to reference or identify a payment transaction",
            "type": "string"
          },
          "orderId": {
            "$ref": "#/components/schemas/ChannelOrderId"
          },
          "purchasedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2019-02-11T14:54:32+00:00"
          },
          "lastChangedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2019-02-11T16:54:32+00:00"
          },
          "currency": {
            "type": "string",
            "example": "EUR"
          },
          "orderItem": {
            "description": "List of Order Positions such as Order Items, Shipping or Payment. There must be at least on Item of Type ITEM and at least on Item of Type SHIPPING.\n",
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/OrderItem"
            }
          },
          "billingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "note": {
            "description": "A optional note",
            "type": "string",
            "example": "This note can be everything, but a least a additional message."
          },
          "buyer": {
            "$ref": "#/components/schemas/OrderBuyer"
          },
          "weeePickup": {
            "description": "This Order require a electrical and electronic equipment disposal service (WEEE)\n",
            "type": "boolean",
            "example": true,
            "nullable": true
          },
          "language": {
            "description": "The language of the order as a ISO 639-1 language code",
            "type": "string",
            "nullable": true,
            "example": "de"
          },
          "invoiceDocumentTransfer": {
            "description": "This field indicates whether the channel provides the invoice document or the seller has to upload it.\nThis overwrites the default setting of the channel.\nPossible values are:\n- `from-seller`: Seller has to upload the invoice document\n- `from-channel`: Channel provides the invoice document\n- `not-set` (Default): Use the default setting of the channel or indicates that invoice transfer is not supported\n",
            "type": "string",
            "enum": [
              "not-set",
              "from-seller",
              "from-channel"
            ],
            "nullable": true,
            "default": "not-set",
            "example": "from-seller"
          },
          "additionalOrderData": {
            "description": "Additional order data is a list of key value pairs. The key is a string and the value is a string or a number.\nThe key must be unique in the list.\n",
            "type": "array",
            "minItems": 0,
            "maxItems": 10,
            "items": {
              "$ref": "#/components/schemas/AdditionalOrderDataGroup"
            }
          },
          "fbc": {
            "description": "Fulfillment by Channel - indicates if the order is fulfilled by the channel\n",
            "type": "boolean",
            "nullable": true,
            "default": null,
            "example": true
          },
          "b2b": {
            "description": "Business to Business - indicates if this is a B2B order\n",
            "type": "boolean",
            "nullable": true,
            "default": null,
            "example": false
          },
          "salesChannelName": {
            "description": "Sales channel name (Verkaufskanalname) - identifies the specific sales channel\n",
            "type": "string",
            "maxLength": 100,
            "nullable": true,
            "example": "MyMarketplace.de"
          }
        },
        "required": [
          "sellerId",
          "orderStatus",
          "orderId",
          "purchasedAt",
          "lastChangedAt",
          "currency",
          "orderItem"
        ]
      },
      "OrderList": {
        "type": "object",
        "required": [
          "orderList"
        ],
        "properties": {
          "orderList": {
            "type": "array",
            "minItems": 1,
            "maxItems": 1000,
            "items": {
              "$ref": "#/components/schemas/Order"
            }
          }
        }
      },
      "OrderStatus": {
        "type": "object",
        "required": [
          "sellerId",
          "orderId",
          "orderStatus"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "orderId": {
            "$ref": "#/components/schemas/ChannelOrderId"
          },
          "orderStatus": {
            "$ref": "#/components/schemas/ChannelOrderStatus"
          },
          "orderItems": {
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "required": [
                "orderItemId",
                "itemStatus",
                "paymentStatus"
              ],
              "properties": {
                "orderItemId": {
                  "$ref": "#/components/schemas/OrderItemId"
                },
                "itemStatus": {
                  "$ref": "#/components/schemas/OrderItemStatus"
                },
                "paymentStatus": {
                  "$ref": "#/components/schemas/OrderItemPaymentStatus"
                },
                "shipFromCountry": {
                  "description": "Ship from country (Versandland) - ISO 3 letter country code indicating the country from which the item is shipped\n",
                  "type": "string",
                  "pattern": "^[A-Z]{3}$",
                  "nullable": true,
                  "example": "DEU"
                }
              }
            }
          }
        }
      },
      "OrderStatusList": {
        "type": "object",
        "required": [
          "orderList"
        ],
        "properties": {
          "orderList": {
            "type": "array",
            "minItems": 1,
            "maxItems": 1000,
            "items": {
              "$ref": "#/components/schemas/OrderStatus"
            }
          }
        }
      },
      "OrderAddressUpdate": {
        "type": "object",
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "orderId": {
            "$ref": "#/components/schemas/ChannelOrderId"
          },
          "billingAddress": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "shippingAddress": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "buyer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OrderBuyer"
              }
            ],
            "nullable": true
          }
        },
        "required": [
          "sellerId",
          "orderId"
        ]
      },
      "OrderAddressUpdateList": {
        "type": "object",
        "required": [
          "orderList"
        ],
        "properties": {
          "orderList": {
            "type": "array",
            "minItems": 1,
            "maxItems": 1000,
            "items": {
              "$ref": "#/components/schemas/OrderAddressUpdate"
            }
          }
        }
      },
      "OrderCancellationRequestId": {
        "type": "string",
        "description": "A unique identifier for the order cancellation request. This ID should by used by Seller to identify the cancellation response from the Channel.\n",
        "format": "uuid",
        "example": "82992d3a-b153-4422-b539-f4d1f1b4aecb"
      },
      "CancellationAccept": {
        "required": [
          "sellerId",
          "orderCancellationRequestId"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "orderCancellationRequestId": {
            "$ref": "#/components/schemas/OrderCancellationRequestId"
          }
        }
      },
      "CancellationDenied": {
        "required": [
          "sellerId",
          "orderCancellationRequestId",
          "reason"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "orderCancellationRequestId": {
            "$ref": "#/components/schemas/OrderCancellationRequestId"
          },
          "reason": {
            "type": "string",
            "maxLength": 250
          }
        }
      },
      "CancelReason": {
        "type": "string",
        "description": "* BUYER_CANCELLED: the buyer cancelled the order.\n* UNDELIVERABLE_TO_SHIPPING_ADDRESS: Could not deliver to the address given by the buyer.\n* UNDELIVERABLE_BY_CARRIER: Carrier do not ship to the buyerss location.\n* OUT_OF_STOCK: The item is out of stock, for example because you are temporarily or permenantly sold out.\n* DELAYED_INVENTORY: The item is not in your inventory and there is a delay in delivery by the supplier.\n* PRICING_ERROR: The price on the connected marketplace was incorrect.\n* OTHER: Well, objvoiusly there is some reason missing in this list.\n",
        "enum": [
          "BUYER_CANCELLED",
          "UNDELIVERABLE_TO_SHIPPING_ADDRESS",
          "UNDELIVERABLE_BY_CARRIER",
          "OUT_OF_STOCK",
          "DELAYED_INVENTORY",
          "PRICING_ERROR",
          "OTHER"
        ]
      },
      "OrderCancellationRequest": {
        "type": "object",
        "title": "OrderCancellationRequest",
        "required": [
          "orderCancellationRequestId",
          "channel",
          "sellerId",
          "orderId",
          "orderItem",
          "reason"
        ],
        "properties": {
          "orderCancellationRequestId": {
            "$ref": "#/components/schemas/OrderCancellationRequestId"
          },
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "orderId": {
            "$ref": "#/components/schemas/ChannelOrderId"
          },
          "orderItem": {
            "type": "array",
            "nullable": true,
            "minItems": 1,
            "items": {
              "type": "object",
              "title": "OrderCancellationItem",
              "required": [
                "orderItemId"
              ],
              "properties": {
                "orderItemId": {
                  "$ref": "#/components/schemas/OrderItemId"
                },
                "quantity": {
                  "type": "string",
                  "default": "1.0",
                  "example": "2.0"
                }
              }
            }
          },
          "cancelReason": {
            "$ref": "#/components/schemas/CancelReason"
          },
          "message": {
            "type": "string",
            "minLength": 0,
            "maxLength": 1024
          }
        }
      },
      "InvoiceDocumentType": {
        "type": "string",
        "enum": [
          "INVOICE",
          "CREDITNOTE"
        ],
        "default": "INVOICE"
      },
      "OrderInvoiceTransactionItemDiscounts": {
        "type": "object",
        "required": [
          "totalGrossPrice",
          "totalNetPrice",
          "totalVatAmount"
        ],
        "properties": {
          "name": {
            "description": "Discount name",
            "type": "string",
            "nullable": true,
            "example": "10% Winter Sale"
          },
          "discountId": {
            "description": "Channel Related Discount ID",
            "type": "string",
            "nullable": true,
            "example": "D1265327"
          },
          "totalGrossPrice": {
            "type": "number",
            "format": "float",
            "minimum": 0,
            "default": 0
          },
          "totalNetPrice": {
            "type": "number",
            "format": "float",
            "minimum": 0,
            "default": 0
          },
          "totalVatAmount": {
            "type": "number",
            "format": "float",
            "minimum": 0,
            "default": 0
          },
          "vatRate": {
            "type": "number",
            "format": "float",
            "minimum": 0,
            "default": 0
          }
        }
      },
      "OrderInvoiceTransactionItem": {
        "type": "object",
        "required": [
          "orderItemId",
          "orderItemType",
          "totalGrossPriceWithDiscounts",
          "totalNetPriceWithDiscounts",
          "totalVatAmountWithDiscounts",
          "vatRate"
        ],
        "properties": {
          "orderItemId": {
            "type": "string"
          },
          "orderItemType": {
            "type": "string",
            "enum": [
              "ITEM",
              "SHIPPING",
              "PAYMENT"
            ]
          },
          "sku": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "format": "float",
            "minimum": 0,
            "default": 1
          },
          "totalGrossPriceWithDiscounts": {
            "type": "number",
            "minimum": 0,
            "format": "float"
          },
          "totalNetPriceWithDiscounts": {
            "type": "number",
            "minimum": 0,
            "format": "float"
          },
          "totalVatAmountWithDiscounts": {
            "type": "number",
            "minimum": 0,
            "format": "float"
          },
          "vatRate": {
            "type": "number",
            "minimum": 0,
            "format": "float"
          },
          "discounts": {
            "type": "array",
            "minItems": 0,
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/OrderInvoiceTransactionItemDiscounts"
            }
          }
        }
      },
      "OrderInvoice": {
        "type": "object",
        "required": [
          "orderId",
          "purchasedAt"
        ],
        "properties": {
          "orderId": {
            "$ref": "#/components/schemas/ChannelOrderId"
          },
          "purchasedAt": {
            "type": "string",
            "format": "date-time"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "transactionItemList": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/OrderInvoiceTransactionItem"
            }
          }
        }
      },
      "InvoiceMetaData": {
        "type": "object",
        "required": [
          "type",
          "sellerId",
          "orderId",
          "invoiceNumber",
          "billingAddress",
          "currency",
          "transactionDate",
          "taxCalculationDate"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/InvoiceDocumentType"
          },
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "orderId": {
            "$ref": "#/components/schemas/ChannelOrderId"
          },
          "invoiceNumber": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "originalInvoiceNumber": {
            "type": "string",
            "nullable": true,
            "description": "A original Invoice Number is required when type is CREDITNOTE\n"
          },
          "transactionDate": {
            "type": "string",
            "format": "date-time",
            "description": "Date when the Invoice document was issued.\n"
          },
          "taxCalculationDate": {
            "type": "string",
            "format": "date-time",
            "description": "Date when the tax in the Invoice document was calculated.\n"
          },
          "transactionDetails": {
            "type": "string",
            "nullable": true
          },
          "shipmentDate": {
            "type": "string",
            "format": "date-time"
          },
          "taxAddressRole": {
            "type": "string",
            "enum": [
              "shipFrom",
              "shipTo"
            ]
          },
          "exportOutsideEu": {
            "type": "boolean"
          },
          "currency": {
            "type": "string"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "sellerVatNumber": {
            "type": "string",
            "nullable": true
          },
          "buyerVatNumber": {
            "type": "string",
            "nullable": true
          },
          "orderList": {
            "type": "array",
            "minItems": 1,
            "description": "List of orders that are part of the invoice document. There must be at least one order on a document.  If the invoice document type is INVOICE, the shipping address is required and can not be empty or null.\n",
            "items": {
              "$ref": "#/components/schemas/OrderInvoice"
            }
          }
        }
      },
      "ReturnReason": {
        "type": "string",
        "enum": [
          "NO_REASON",
          "DEFECT",
          "WRONG_ITEM",
          "WRONG_SIZE",
          "TOO_LATE",
          "BAD_QUALITY"
        ]
      },
      "ReturnAnnouncementOrderItem": {
        "type": "object",
        "required": [
          "orderItemId",
          "quantity",
          "returnReason"
        ],
        "properties": {
          "orderItemId": {
            "$ref": "#/components/schemas/OrderItemId"
          },
          "quantity": {
            "type": "string",
            "example": "1.0"
          },
          "returnReason": {
            "$ref": "#/components/schemas/ReturnReason"
          },
          "note": {
            "type": "string",
            "maxLength": 1024
          }
        }
      },
      "ChannelReturnId": {
        "type": "string",
        "description": "Id used to identify an order return on Marketplace.\n",
        "example": "R12343"
      },
      "ReturnAnnouncement": {
        "type": "object",
        "required": [
          "sellerId",
          "orderId",
          "channelReturnId"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "orderId": {
            "$ref": "#/components/schemas/ChannelOrderId"
          },
          "orderItem": {
            "description": "Details about what will be to returned to Seller. If the orderItem list is empty as Seller must expect that the\nwhole order is returned.\n",
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/ReturnAnnouncementOrderItem"
            }
          },
          "channelReturnId": {
            "$ref": "#/components/schemas/ChannelReturnId"
          },
          "returnTracking": {
            "type": "object",
            "required": [
              "carrier",
              "trackingNumber"
            ],
            "description": "Optional information about return tracking.\n",
            "properties": {
              "carrier": {
                "type": "string",
                "example": "DHL"
              },
              "trackingNumber": {
                "type": "string",
                "example": "12334-44332-323256"
              }
            }
          }
        }
      },
      "SellerReturnId": {
        "type": "string",
        "description": "Id used to identify an order return on Seller side.\n",
        "example": "123"
      },
      "ReturnProcessingError": {
        "title": "ReturnProcessingError",
        "required": [
          "message"
        ],
        "properties": {
          "code": {
            "type": "string",
            "example": "GEN615"
          },
          "message": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      },
      "ReturnProcessingResult": {
        "type": "object",
        "required": [
          "sellerId",
          "sellerReturnId",
          "isAccepted"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "sellerReturnId": {
            "$ref": "#/components/schemas/SellerReturnId"
          },
          "isAccepted": {
            "type": "boolean",
            "example": false
          },
          "processingErrorList": {
            "type": "array",
            "minItems": 0,
            "maxItems": 500,
            "items": {
              "$ref": "#/components/schemas/ReturnProcessingError"
            }
          }
        }
      },
      "RefundId": {
        "type": "string",
        "description": "Seller created unique Id to identify the processing Result of a Refund processing from a Channel.\n",
        "minLength": 1,
        "maxLength": 128
      },
      "RefundProcessingError": {
        "title": "RefundProcessingError",
        "required": [
          "message"
        ],
        "properties": {
          "code": {
            "type": "string",
            "example": "GEN615"
          },
          "message": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      },
      "RefundProcessingResult": {
        "title": "RefundProcessingResult",
        "type": "object",
        "required": [
          "refundId",
          "sellerId",
          "isAccepted"
        ],
        "properties": {
          "refundId": {
            "$ref": "#/components/schemas/RefundId"
          },
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "isAccepted": {
            "type": "boolean"
          },
          "processingErrorList": {
            "type": "array",
            "minItems": 0,
            "maxItems": 500,
            "items": {
              "$ref": "#/components/schemas/RefundProcessingError"
            }
          }
        }
      },
      "ClientVersion": {
        "description": "ERP-Client Version.\n",
        "type": "string",
        "example": "1.11.0.6",
        "pattern": "^\\w{1,25}$"
      },
      "SellerEventTypeList": {
        "type": "string",
        "enum": [
          "System:Test",
          "System:Notification",
          "Seller:Order.Confirmed",
          "Seller:Order.Shipping",
          "Seller:Order.Payment",
          "Seller:Order.Cancellation.Request",
          "Seller:Order.Cancellation.Accepted",
          "Seller:Order.Cancellation.Denied",
          "Seller:Order.Refund",
          "Seller:Order.Invoice",
          "Seller:Order.ReturnReceived",
          "Seller:Offer.New",
          "Seller:Offer.Update",
          "Seller:Offer.End",
          "Seller:Offer.StockUpdate",
          "Seller:Offer.PriceUpdate",
          "Seller:Report.Request",
          "Seller:Channel.Unlinked",
          "Seller:Meta.SellerAttributesUpdateRequest",
          "Seller:Ticket.Reply"
        ]
      },
      "EventSellerRelated": {
        "title": "EventSellerRelated",
        "type": "object",
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          }
        },
        "required": [
          "sellerId"
        ]
      },
      "OrderShipping": {
        "type": "object",
        "required": [
          "sellerId",
          "orderId",
          "shippingComplete",
          "shippedAt",
          "shippingItems"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "orderId": {
            "$ref": "#/components/schemas/ChannelOrderId"
          },
          "shippingComplete": {
            "description": "When shipping is completed set to \"true\".\n",
            "type": "boolean",
            "example": true
          },
          "shippingItems": {
            "type": "array",
            "minItems": 1,
            "items": {
              "title": "OrderShippingPosition",
              "type": "object",
              "required": [
                "carrier"
              ],
              "properties": {
                "carrier": {
                  "type": "string",
                  "example": "DHL"
                },
                "trackingNumber": {
                  "type": "string",
                  "example": "23435833543343222322"
                },
                "returnTracking": {
                  "description": "The return tracking number and carrier for the return process. Each orderItemId may have its own return\ntracking.\n",
                  "type": "object",
                  "nullable": true,
                  "required": [
                    "carrier",
                    "trackingNumber"
                  ],
                  "properties": {
                    "carrier": {
                      "type": "string",
                      "example": "DHL"
                    },
                    "trackingNumber": {
                      "type": "string",
                      "example": "432353833232443222322"
                    }
                  }
                },
                "shippedAt": {
                  "type": "string",
                  "format": "date-time",
                  "example": "2019-01-13T12:00:00+00:00"
                },
                "orderItemIdList": {
                  "description": "Container to describe what items are included.\n",
                  "nullable": true,
                  "type": "array",
                  "minItems": 0,
                  "items": {
                    "title": "OrderShippingPositionItem",
                    "type": "object",
                    "required": [
                      "orderItemId",
                      "quantity"
                    ],
                    "properties": {
                      "orderItemId": {
                        "$ref": "#/components/schemas/OrderItemId"
                      },
                      "quantity": {
                        "type": "integer"
                      }
                    }
                  }
                },
                "shippedFrom": {
                  "description": "The adress from where the shipment is sent.",
                  "type": "object",
                  "nullable": true,
                  "required": [
                    "country",
                    "city",
                    "postcode"
                  ],
                  "properties": {
                    "city": {
                      "type": "string",
                      "example": "Köln"
                    },
                    "country": {
                      "type": "string",
                      "example": "DE"
                    },
                    "postcode": {
                      "type": "string",
                      "example": "51107"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "SellerEventOrderShipping": {
        "title": "SellerEventOrderShipping",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/EventSellerRelated"
          },
          {
            "$ref": "#/components/schemas/OrderShipping"
          }
        ]
      },
      "OrderPayment": {
        "type": "object",
        "required": [
          "sellerId",
          "orderId",
          "paymentComplete",
          "paidAt"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "orderId": {
            "$ref": "#/components/schemas/ChannelOrderId"
          },
          "paymentComplete": {
            "type": "boolean",
            "example": true
          },
          "paidAt": {
            "type": "string",
            "format": "date-time",
            "example": "2019-01-16T13:00:00+01:00"
          }
        }
      },
      "SellerEventOrderPayment": {
        "title": "SellerEventOrderPayment",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/EventSellerRelated"
          },
          {
            "$ref": "#/components/schemas/OrderPayment"
          }
        ]
      },
      "SellerEventOfferEnd": {
        "title": "SellerEventOfferEnd",
        "type": "object",
        "required": [
          "sellerId",
          "offerId"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "offerId": {
            "$ref": "#/components/schemas/OfferId"
          },
          "channelOfferId": {
            "$ref": "#/components/schemas/ChannelOfferId"
          }
        }
      },
      "OfferIdRelated": {
        "type": "object",
        "properties": {
          "offerId": {
            "$ref": "#/components/schemas/OfferId"
          }
        }
      },
      "ParentOfferId": {
        "description": "In case the current offer has an reference to a parent offer. This ParentOfferId must be used to identify the\nParent Offer. The ParentOfferId is conditionally mandatory for variation Offers in case you add a new Item\nto a existing Variation Offer Listing.\n",
        "type": "integer",
        "example": 3434223,
        "format": "int64",
        "minimum": 1,
        "nullable": true
      },
      "QuantityPrice": {
        "type": "object",
        "required": [
          "amount",
          "currency"
        ],
        "properties": {
          "amount": {
            "type": "string",
            "example": "14.65",
            "nullable": false
          },
          "currency": {
            "type": "string",
            "example": "EUR",
            "nullable": false
          },
          "quantity": {
            "type": "string",
            "example": "1.0",
            "nullable": true,
            "default": "1.0"
          }
        }
      },
      "PriceContainer": {
        "type": "object",
        "required": [
          "id",
          "quantityPriceList"
        ],
        "properties": {
          "id": {
            "type": "string",
            "example": "B2C",
            "nullable": false
          },
          "quantityPriceList": {
            "type": "array",
            "minItems": 1,
            "maxItems": 50,
            "items": {
              "$ref": "#/components/schemas/QuantityPrice"
            }
          }
        }
      },
      "ChannelAttribute": {
        "type": "object",
        "required": [
          "attributeId",
          "value"
        ],
        "properties": {
          "attributeId": {
            "type": "string",
            "example": "1332"
          },
          "value": {
            "type": "string",
            "example": "MyBeerBrand"
          },
          "group": {
            "type": "string",
            "nullable": true,
            "example": "1"
          }
        }
      },
      "Variation": {
        "type": "object",
        "properties": {
          "offerId": {
            "$ref": "#/components/schemas/OfferId"
          },
          "sku": {
            "$ref": "#/components/schemas/SKU"
          },
          "gtin": {
            "type": "string",
            "example": "4003227021106"
          },
          "variationDimensionList": {
            "description": "A List of SalesChannel related attributes. These attributes are used to define variation dimensions.\nYou can use up to 10 dimensions to build a multi-variation listing.\n",
            "type": "array",
            "minItems": 1,
            "maxItems": 10,
            "items": {
              "$ref": "#/components/schemas/ChannelAttribute"
            }
          },
          "quantity": {
            "description": "Offer Quantity",
            "type": "string",
            "example": "1.0"
          },
          "priceList": {
            "type": "array",
            "minItems": 1,
            "maxItems": 10,
            "items": {
              "$ref": "#/components/schemas/PriceContainer"
            }
          },
          "taxPercent": {
            "type": "string",
            "example": "19.00"
          },
          "pictureList": {
            "type": "array",
            "maxItems": 50,
            "items": {
              "type": "string",
              "example": "b61525f4-8114-4cc2-bccd-9c627ebdc077.png"
            }
          },
          "title": {
            "description": "Title used for this variation listing on SalesChannel. If no title is provided, the SalesChannelOffer title should be used.\n",
            "type": "string",
            "example": "One of the best Beer Variation in the Variation Listing World.",
            "maxLength": 512
          },
          "subTitle": {
            "description": "Subtitle used for this variation listing on SalesChannel. If no subtitle is provided, the SalesChannelOffer Subtitel\nshould be used.\n",
            "type": "string",
            "example": "Maybe the best Variation List SubTitle!",
            "maxLength": 1024
          },
          "description": {
            "description": "Description used for this variation listing on SalesChannel. If no description is provided, the SalesChannelOffer description\nshould be used.\n",
            "type": "string",
            "example": "This Offer Variation description is for this specific SalesChannel\n",
            "maxLength": 50000
          },
          "channelAttributeList": {
            "description": "A List of SalesChannel related attributes. Typically all required attributes need to be passed through this\nobjects. Required (and also optional) attributes can be requested using the /meta Data API endpoints.\n\nA Channel should merge the SalesChannelOffer channelAttributeList with this Attribute List. This List extends\nthe Attributes from the SalesChannelOffer channelAttributeList property and should be overwrite existing\nAttributes.\n",
            "type": "array",
            "minItems": 0,
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/ChannelAttribute"
            }
          }
        },
        "required": [
          "offerId",
          "sku",
          "variationDimensionList",
          "quantity",
          "priceList"
        ]
      },
      "SalesChannelOffer": {
        "type": "object",
        "required": [
          "channel",
          "sellerId",
          "offerId",
          "priceList"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "offerId": {
            "$ref": "#/components/schemas/OfferId"
          },
          "parentOfferId": {
            "$ref": "#/components/schemas/ParentOfferId"
          },
          "channelOfferId": {
            "$ref": "#/components/schemas/ChannelOfferId"
          },
          "channelCategoryId": {
            "type": "string",
            "example": "4355111"
          },
          "quantity": {
            "description": "Offer Quantity",
            "type": "string",
            "example": "1.0"
          },
          "taxPercent": {
            "type": "string",
            "example": "19.00"
          },
          "priceList": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/PriceContainer"
            }
          },
          "title": {
            "description": "Title used for this specific SalesChannel. If no title is provided, the product title should be used.\n",
            "type": "string",
            "example": "One of the best Beer in the World.",
            "maxLength": 512
          },
          "subTitle": {
            "description": "Subtitle used for this specific SalesChannel. If no subtitle is provided, the product description\nshould be used.\n",
            "type": "string",
            "example": "Maybe the best!",
            "maxLength": 1024
          },
          "description": {
            "description": "Description used for this specific SalesChannel. If no description is provided, the product description\nshould be used.\n",
            "type": "string",
            "example": "This Offer description is for this specific SalesChannel\n",
            "maxLength": 50000
          },
          "mainPicture": {
            "type": "string",
            "example": "48dd485e-bab9-48fa-8c03-3736fca1323d.png"
          },
          "pictureList": {
            "type": "array",
            "maxItems": 50,
            "items": {
              "type": "string",
              "example": "b61525f4-8114-4cc2-bccd-9c627ebdc077.png"
            }
          },
          "channelAttributeList": {
            "description": "A List of SalesChannel related attributes. Typically all required attributes need to be passed through this\nobjects. Required (and also optional) attributes can be requested using the /meta Data API endpoints.\n",
            "type": "array",
            "minItems": 0,
            "maxItems": 250,
            "items": {
              "$ref": "#/components/schemas/ChannelAttribute"
            }
          },
          "variationList": {
            "type": "array",
            "minItems": 0,
            "maxItems": 500,
            "items": {
              "$ref": "#/components/schemas/Variation"
            }
          }
        }
      },
      "Price": {
        "type": "object",
        "required": [
          "amount",
          "currency"
        ],
        "properties": {
          "amount": {
            "type": "string",
            "example": "14.65",
            "nullable": false
          },
          "currency": {
            "type": "string",
            "example": "EUR",
            "nullable": false
          }
        }
      },
      "ProductAttribute": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Color"
          },
          "value": {
            "type": "string",
            "example": "Red"
          }
        },
        "required": [
          "name",
          "value"
        ]
      },
      "Product": {
        "type": "object",
        "required": [
          "sku"
        ],
        "properties": {
          "sku": {
            "$ref": "#/components/schemas/SKU"
          },
          "title": {
            "type": "string",
            "example": "Best Beer of the World",
            "minLength": 1,
            "maxLength": 512
          },
          "subTitle": {
            "type": "string",
            "example": "Probably the best!",
            "maxLength": 1024
          },
          "description": {
            "type": "string",
            "example": "So lovely and tasty! Properly the best beer you will ever have.\nYou will never stop drinking.\n",
            "maxLength": 50000
          },
          "gtin": {
            "type": "string",
            "example": "4003227021106"
          },
          "mpn": {
            "type": "string",
            "example": null
          },
          "isbn": {
            "type": "string",
            "example": null
          },
          "brand": {
            "type": "string",
            "example": null
          },
          "srp": {
            "$ref": "#/components/schemas/Price"
          },
          "productAttributeList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAttribute"
            }
          }
        }
      },
      "SellerEventOfferNew": {
        "title": "SellerEventOfferNew",
        "type": "object",
        "description": "List Offer on Channel.\n\nIf your current channel implementation process listing in asychronous manner it is recommended to call\n`/channel/offer/received` afterwards to mark wating Offers as in-progress. If a channel process an Offer\ndirectly you do not need to mark a Offer as `in-progress`. But it is important to mark an Offer as `successful`\nlisted. If there are any errors during the listing process it is importand to mark a offer as `failed`.\n",
        "allOf": [
          {
            "$ref": "#/components/schemas/EventSellerRelated"
          },
          {
            "$ref": "#/components/schemas/OfferIdRelated"
          },
          {
            "$ref": "#/components/schemas/SalesChannelOffer"
          },
          {
            "$ref": "#/components/schemas/Product"
          }
        ],
        "required": [
          "sellerId",
          "offerId"
        ]
      },
      "SellerEventOfferUpdate": {
        "title": "SellerEventOfferUpdate",
        "type": "object",
        "description": "Update existing Offer.\n\nIf your current channel implementation process listing in asychronous manner it is recommended to call\n`/channel/offer/received` afterwards to mark wating Offers as in-progress. If a channel process an Offer\ndirectly you do not need to mark a Offer as `in-progress`. But it is important to mark an Offer as `successful`\nlisted. If there are any errors during the listing process it is importand to mark a offer as `failed`.\n",
        "allOf": [
          {
            "$ref": "#/components/schemas/EventSellerRelated"
          },
          {
            "$ref": "#/components/schemas/OfferIdRelated"
          },
          {
            "$ref": "#/components/schemas/SalesChannelOffer"
          },
          {
            "$ref": "#/components/schemas/Product"
          }
        ],
        "required": [
          "sellerId",
          "offerId"
        ]
      },
      "SellerEventOfferStockUpdate": {
        "title": "SellerEventOfferStockUpdate",
        "type": "object",
        "description": "Update stock for a list of existing Offers\n",
        "required": [
          "sellerId",
          "offerId",
          "quantity"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "offerId": {
            "$ref": "#/components/schemas/OfferId"
          },
          "channelOfferId": {
            "$ref": "#/components/schemas/ChannelOfferId"
          },
          "quantity": {
            "type": "string",
            "nullable": false,
            "example": "100"
          }
        }
      },
      "SellerEventOfferPriceUpdate": {
        "title": "SellerEventOfferPriceUpdate",
        "type": "object",
        "description": "Update price for a list of existing Offers\n",
        "required": [
          "sellerId",
          "offerId",
          "priceList"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "offerId": {
            "$ref": "#/components/schemas/OfferId"
          },
          "channelOfferId": {
            "$ref": "#/components/schemas/ChannelOfferId"
          },
          "priceList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PriceContainer"
            }
          }
        }
      },
      "SellerEventTest": {
        "title": "SellerEventTest",
        "type": "object",
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/Channel"
          },
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          }
        }
      },
      "ReportType": {
        "type": "string",
        "enum": [
          "SELLER_INVENTORY"
        ]
      },
      "ReportRequest": {
        "title": "ReportRequest",
        "type": "object",
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "reportType": {
            "$ref": "#/components/schemas/ReportType"
          },
          "options": {
            "type": "object",
            "properties": {
              "ResultsAsChannelEvent": {
                "type": "boolean",
                "description": "If true, the report will be generated as a channel event.\nThis means that the report will be sent to the seller via the channel event system.\nIf false, the report will be generated as a file.\nThis means that the report will be available for download via the report endpoint.\n"
              }
            }
          },
          "startDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          }
        },
        "required": [
          "sellerId",
          "reportType"
        ]
      },
      "ReportId": {
        "type": "string",
        "description": "A system wide unique Id to identify and download a report\n",
        "example": "910390cc-c3b3-45ba-8be2-ab1824b6c499"
      },
      "ReportIdRelated": {
        "type": "object",
        "required": [
          "reportId"
        ],
        "properties": {
          "reportId": {
            "$ref": "#/components/schemas/ReportId"
          }
        }
      },
      "SellerEventReportRequest": {
        "title": "SellerEventReportRequest",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ReportRequest"
          },
          {
            "$ref": "#/components/schemas/ReportIdRelated"
          }
        ]
      },
      "SystemEventNotification": {
        "title": "SystemEventNotification",
        "type": "object",
        "required": [
          "channel",
          "message",
          "severity",
          "sellerId"
        ],
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/Channel"
          },
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "message": {
            "type": "string",
            "example": "More beer available"
          },
          "severity": {
            "type": "string",
            "enum": [
              "INFO",
              "WARNING",
              "ERROR"
            ]
          }
        }
      },
      "SellerEventChannelUnlinked": {
        "title": "SellerEventChannelUnlinked",
        "type": "object",
        "required": [
          "sellerId",
          "reason",
          "unlinkedAt"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "reason": {
            "type": "string",
            "example": "DEACTIVATED_BY_ACCOUNT",
            "description": "Specifies the reason for the SellerId being removed or marked as inactive. \nThis field can contain predefined values such as 'DEACTIVATED_BY_ACCOUNT', which indicates that the \ndeactivation was initiated by the account holder. This information is crucial for understanding the context \nof the SellerId's status change and for taking appropriate actions based on the reason provided.\n"
          },
          "unlinkedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2019-01-16T13:00:00+01:00",
            "description": "Records the exact date and time when the SellerId was either removed from the system or flagged as inactive. \nThe timestamp follows the ISO 8601 format, providing both date and time\n"
          },
          "permanentlyRemoved": {
            "type": "boolean",
            "default": false,
            "example": false,
            "description": "Indicates whether the SellerId has been permanently removed from the JTL-Account. \nIf set to true, the SellerId is considered invalid within the SCX System. Consequently, Channel Connections \nmust either delete the SellerId or flag it as inactive in their systems. Any attempt to use a permanently \nremoved SellerId will result in an error (GEN700 - Seller {sellerId} does not exist on channel {channel}), \nindicating that the SellerId is no longer valid for transactions on the specified channel.\n"
          }
        }
      },
      "SellerEventSellerAttributesUpdateRequest": {
        "title": "SellerEventSellerAttributesUpdateRequest",
        "type": "object",
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          }
        }
      },
      "SellerEventOrderCancellationRequest": {
        "title": "SellerEventOrderCancellationRequest",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/OrderCancellationRequest"
          }
        ]
      },
      "SellerEventOrderCancellationAccepted": {
        "type": "object",
        "title": "OrderCancellationAccepted",
        "required": [
          "sellerId",
          "orderCancellationRequestId"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/CancellationAccept"
          }
        ]
      },
      "SellerEventOrderCancellationDenied": {
        "type": "object",
        "title": "OrderCancellationDenied",
        "required": [
          "sellerId",
          "orderCancellationRequestId",
          "reason"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/CancellationDenied"
          }
        ]
      },
      "OrderConfirm": {
        "title": "OrderConfirm",
        "type": "object",
        "required": [
          "sellerId",
          "orderId",
          "orderConfirmed"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "orderId": {
            "type": "string",
            "example": "43523-43432-43532"
          },
          "orderAccepted": {
            "type": "boolean",
            "example": false
          },
          "reason": {
            "$ref": "#/components/schemas/CancelReason"
          }
        }
      },
      "SellerEventOrderConfirmed": {
        "title": "SellerEventOrderConfirmed",
        "type": "object",
        "required": [
          "orderId"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/EventSellerRelated"
          },
          {
            "$ref": "#/components/schemas/OrderConfirm"
          }
        ]
      },
      "SellerEventOrderInvoice": {
        "type": "object",
        "title": "OrderInvoice",
        "required": [
          "type",
          "sellerId",
          "orderId",
          "invoiceNumber",
          "documentId",
          "documentExpiresAt"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/InvoiceDocumentType"
          },
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "orderId": {
            "$ref": "#/components/schemas/ChannelOrderId"
          },
          "invoiceNumber": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "documentId": {
            "type": "string",
            "example": "f8132e70-24f6-4f27-b78c-56bc3f286daf"
          },
          "documentExpiresAt": {
            "type": "string",
            "format": "date-time",
            "example": "2020-11-13T13:37:00+00:00"
          }
        }
      },
      "Condition": {
        "type": "string",
        "enum": [
          "ORIGINAL_PACKAGING",
          "MINT_CONDITION",
          "SLIGHTLY_USED",
          "HEAVILY_USED",
          "DAMAGED",
          "INCOMPLETE_DELIVERY",
          "FRAUD"
        ]
      },
      "ReturnReceivedOrderItem": {
        "type": "object",
        "required": [
          "condition",
          "acceptReturn",
          "requireReturnShipping",
          "orderItemId",
          "quantity",
          "returnReason"
        ],
        "properties": {
          "orderItemId": {
            "$ref": "#/components/schemas/OrderItemId"
          },
          "quantity": {
            "type": "string",
            "example": "1.0"
          },
          "returnReason": {
            "$ref": "#/components/schemas/ReturnReason"
          },
          "note": {
            "type": "string",
            "maxLength": 1024
          },
          "condition": {
            "$ref": "#/components/schemas/Condition"
          },
          "acceptReturn": {
            "type": "boolean",
            "example": true
          },
          "requireReturnShipping": {
            "type": "boolean",
            "example": true,
            "default": true
          }
        }
      },
      "ReturnReceived": {
        "type": "object",
        "required": [
          "sellerId",
          "orderId",
          "sellerReturnId",
          "orderItem"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "orderId": {
            "$ref": "#/components/schemas/ChannelOrderId"
          },
          "sellerReturnId": {
            "$ref": "#/components/schemas/SellerReturnId"
          },
          "channelReturnId": {
            "$ref": "#/components/schemas/ChannelReturnId"
          },
          "orderItem": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/ReturnReceivedOrderItem"
            }
          }
        }
      },
      "SellerEventOrderReturnReceived": {
        "type": "object",
        "title": "ReturnReceived",
        "allOf": [
          {
            "$ref": "#/components/schemas/ReturnReceived"
          }
        ]
      },
      "RefundReason": {
        "type": "string",
        "example": "NO_REASON",
        "enum": [
          "NO_REASON",
          "DEFECT",
          "WRONG_ITEM",
          "WRONG_SIZE",
          "TOO_LATE",
          "BAD_QUALITY",
          "OTHER"
        ]
      },
      "RefundOrderItem": {
        "title": "OrderItemRefund",
        "type": "object",
        "required": [
          "orderItemId",
          "quantity",
          "reason",
          "refund",
          "refundCurrency"
        ],
        "properties": {
          "orderItemId": {
            "$ref": "#/components/schemas/OrderItemId"
          },
          "quantity": {
            "type": "string",
            "example": "1.0"
          },
          "reason": {
            "$ref": "#/components/schemas/RefundReason"
          },
          "refund": {
            "type": "string",
            "example": "19.90"
          },
          "refundCurrency": {
            "type": "string",
            "example": "EUR"
          }
        }
      },
      "Refund": {
        "title": "OrderRefund",
        "type": "object",
        "required": [
          "refundId",
          "sellerId",
          "orderId",
          "orderItem"
        ],
        "properties": {
          "refundId": {
            "$ref": "#/components/schemas/RefundId"
          },
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "orderId": {
            "$ref": "#/components/schemas/ChannelOrderId"
          },
          "orderItem": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/RefundOrderItem"
            }
          }
        }
      },
      "SellerEventOrderRefund": {
        "type": "object",
        "title": "SendRefund",
        "allOf": [
          {
            "$ref": "#/components/schemas/Refund"
          }
        ]
      },
      "TicketId": {
        "type": "string",
        "description": "Unique identifcation for Ticket Id\n",
        "minLength": 1,
        "maxLength": 256,
        "example": "CASE-01071982"
      },
      "TicketFrom": {
        "title": "TicketFrom",
        "type": "object",
        "required": [
          "role"
        ],
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "BUYER",
              "SELLER",
              "CHANNEL"
            ],
            "example": "BUYER"
          },
          "name": {
            "type": "string",
            "maxLength": 100,
            "example": "Dave"
          }
        }
      },
      "TicketAttachment": {
        "title": "TicketAttachment",
        "type": "object",
        "required": [
          "filename",
          "contentType"
        ],
        "properties": {
          "filename": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256,
            "example": "RedDot.png"
          },
          "contentType": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "example": "image/png"
          }
        }
      },
      "TicketReply": {
        "title": "TicketReply",
        "type": "object",
        "required": [
          "sellerId",
          "ticketId",
          "createdAt",
          "from",
          "message"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "ticketId": {
            "$ref": "#/components/schemas/TicketId"
          },
          "replyRequested": {
            "type": "boolean",
            "example": true,
            "default": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "from": {
            "$ref": "#/components/schemas/TicketFrom"
          },
          "message": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024,
            "example": "Open the pod bay doors HAL."
          },
          "attachment": {
            "type": "array",
            "minItems": 0,
            "maxItems": 10,
            "items": {
              "$ref": "#/components/schemas/TicketAttachment"
            }
          }
        }
      },
      "SellerEventTicketReply": {
        "title": "TicketReply",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/TicketReply"
          }
        ]
      },
      "EventIdList": {
        "type": "object",
        "properties": {
          "eventIdList": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "type": "string",
              "example": "5cde84164d811d00144581f8"
            }
          }
        }
      },
      "OfferListingInProgress": {
        "type": "object",
        "required": [
          "sellerId",
          "offerId",
          "startedAt"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "offerId": {
            "$ref": "#/components/schemas/OfferId"
          },
          "startedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2019-07-01T15:43:21+00:00"
          }
        }
      },
      "OfferListingFailedError": {
        "type": "object",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "CHN500",
            "description": "A unique error code identifier for the specific type of error encountered."
          },
          "message": {
            "type": "string",
            "minLength": 1,
            "maxLength": 250,
            "example": "Global attribute brand not found",
            "description": "A brief description of the error, intended to be human-readable and understandable."
          },
          "longMessage": {
            "type": "string",
            "minLength": 1,
            "maxLength": 10000,
            "nullable": true,
            "example": "This is a long and more detailed error messages",
            "description": "An optional, more detailed explanation of the error, providing additional context or information that might help in understanding or resolving the issue."
          },
          "relatedAttributeId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 512,
            "nullable": true,
            "example": "global:mpi",
            "description": "An optional identifier for the attribute related to the error, which can help in pinpointing the exact cause or location of the issue."
          },
          "recommendedValue": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1000,
            "nullable": true,
            "example": "MPI_OLEOLE1234",
            "description": "An optional recommended value or action to resolve the error, providing guidance on how to correct the issue or avoid it in future attempts."
          }
        }
      },
      "OfferListingFailed": {
        "type": "object",
        "required": [
          "sellerId",
          "offerId",
          "errorList",
          "failedAt"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "offerId": {
            "$ref": "#/components/schemas/OfferId"
          },
          "errorList": {
            "type": "array",
            "minItems": 1,
            "maxItems": 250,
            "items": {
              "$ref": "#/components/schemas/OfferListingFailedError"
            }
          },
          "failedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2019-07-01T15:43:21+00:00"
          }
        }
      },
      "OfferListingSuccessful": {
        "type": "object",
        "required": [
          "sellerId",
          "offerId",
          "listedAt"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "offerId": {
            "$ref": "#/components/schemas/OfferId"
          },
          "channelOfferId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ChannelOfferId"
              }
            ],
            "nullable": true
          },
          "listedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2019-07-01T15:43:21+00:00"
          },
          "listingUrl": {
            "type": "string",
            "nullable": true,
            "example": "https://mybestdeals.com/listing/1224232323"
          }
        }
      },
      "SellerInventoryItem": {
        "type": "object",
        "title": "SellerInventoryItem",
        "properties": {
          "offerId": {
            "$ref": "#/components/schemas/OfferId"
          },
          "channelOfferId": {
            "$ref": "#/components/schemas/ChannelOfferId"
          },
          "sku": {
            "$ref": "#/components/schemas/SKU"
          },
          "ean": {
            "type": "string",
            "example": "4003227021106"
          },
          "quantity": {
            "type": "string",
            "example": "1.0"
          },
          "priceList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PriceContainer"
            }
          },
          "title": {
            "type": "string",
            "example": "One of the best Beer in the World."
          },
          "channelCategoryId": {
            "type": "string",
            "example": "4355111"
          },
          "channelAttributeList": {
            "type": "array",
            "minItems": 0,
            "maxItems": 1000,
            "items": {
              "$ref": "#/components/schemas/ChannelAttribute"
            }
          }
        }
      },
      "ReportSellerInventory": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "items": {
          "$ref": "#/components/schemas/SellerInventoryItem"
        }
      },
      "AttachmentData": {
        "type": "object",
        "required": [
          "sellerId",
          "ticketId",
          "filename"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "ticketId": {
            "$ref": "#/components/schemas/TicketId"
          },
          "filename": {
            "type": "string",
            "pattern": "^\\w+\\.\\w{1,10}$",
            "description": "Original Filename",
            "example": "product.png"
          }
        }
      },
      "TicketAttachmentRequest": {
        "type": "object",
        "required": [
          "attachmentData",
          "document"
        ],
        "properties": {
          "attachmentData": {
            "description": "Attachment meta data as JSON",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/AttachmentData"
              }
            ]
          },
          "attachment": {
            "description": "File Attachment as binary data must have a maxium size of 16 MB.\n\nAllowed Content-Types are\n* text/plain\n* application/pdf\n* application/vnd.openxmlformats-officedocument.wordprocessingml.document\n* application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\n* application/vnd.ms-excel\n* application/msword\n* image/*\n",
            "type": "string",
            "format": "binary"
          }
        }
      },
      "Topic": {
        "type": "string",
        "enum": [
          "QUESTION",
          "FEEDBACK",
          "DELIVERY",
          "RETURN",
          "REFUND",
          "INCIDENT"
        ]
      },
      "TicketReference": {
        "title": "TicketReference",
        "type": "object",
        "nullable": true,
        "required": [
          "type",
          "id"
        ],
        "properties": {
          "type": {
            "type": "string",
            "example": "ORDERID",
            "enum": [
              "OFFER",
              "CHANNELOFFER",
              "ORDERID",
              "ORDERITEMID"
            ]
          },
          "id": {
            "type": "string",
            "example": "19820701"
          }
        }
      },
      "Ticket": {
        "title": "Ticket",
        "type": "object",
        "required": [
          "sellerId",
          "ticketId",
          "topic",
          "createdAt",
          "from",
          "subject",
          "message"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "ticketId": {
            "$ref": "#/components/schemas/TicketId"
          },
          "topic": {
            "$ref": "#/components/schemas/Topic"
          },
          "reference": {
            "$ref": "#/components/schemas/TicketReference"
          },
          "replyRequested": {
            "type": "boolean",
            "example": true,
            "default": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "from": {
            "$ref": "#/components/schemas/TicketFrom"
          },
          "subject": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024,
            "example": "Pod bay door seems to be locked."
          },
          "message": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024,
            "example": "Open the pod bay doors HAL."
          },
          "attachment": {
            "type": "array",
            "minItems": 0,
            "maxItems": 10,
            "items": {
              "$ref": "#/components/schemas/TicketAttachment"
            }
          }
        }
      },
      "Stock": {
        "type": "object",
        "description": "Represents a single stock update for an offer",
        "required": [
          "sellerId",
          "offerId",
          "channelOfferId",
          "quantity",
          "updatedAt"
        ],
        "properties": {
          "sellerId": {
            "$ref": "#/components/schemas/SellerId"
          },
          "offerId": {
            "$ref": "#/components/schemas/OfferId"
          },
          "channelOfferId": {
            "$ref": "#/components/schemas/ChannelOfferId"
          },
          "quantity": {
            "type": "integer",
            "description": "Current stock quantity for this offer",
            "minimum": 0,
            "example": 1
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 timestamp when this stock update occurred",
            "example": "2025-12-29T14:13:06+00:00"
          }
        }
      },
      "StockList": {
        "type": "object",
        "description": "Response containing a list of stock updates and the timestamp of the last update",
        "required": [
          "stockUpdateList",
          "lastUpdatedAt"
        ],
        "properties": {
          "stockUpdateList": {
            "type": "array",
            "description": "List of stock update objects containing inventory changes",
            "items": {
              "$ref": "#/components/schemas/Stock"
            }
          },
          "lastUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 timestamp indicating the lastest date of stock updates in the current list. Use this value \nas the `updatedAfter` parameter in subsequent requests to fetch only new stock updates.\n",
            "example": "2025-12-29T14:13:06+00:00"
          }
        }
      }
    },
    "parameters": {
      "ContentEncodingGzip": {
        "in": "header",
        "name": "Content-Encoding",
        "description": "Use the Content-Encoding: gzip when sending JSON requestBody as compressed payload. This is recommended when\ncreating huge category trees. There is a limit of 32 MB on this route.\n",
        "schema": {
          "type": "string",
          "enum": [
            "gzip"
          ]
        },
        "required": false
      },
      "SellerIdPath": {
        "in": "path",
        "name": "sellerId",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/SellerId"
        },
        "description": "A unique Id identify a Seller on a specific SalesChannel. The SellerId is generated from the Channel\nitself during the Seller SignUp Process.\n"
      }
    },
    "securitySchemes": {
      "ChannelAuth": {
        "description": "As a Channel Integrator you will receive a API Refresh Token. With such a Refresh Token you\nneed to request an Access Token with a limited Lifetime (see POST /v1/auth). This Access Token\nmust be provided as a Bearer Token in the Authorization Header with every request.\n",
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "SellerAuth": {
        "description": "Bearer JWT issued to a seller after they sign up for a JTL-Scx subscription via the JTL\nCustomer Center. Usage format: `Bearer <JWT>`.\n",
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  }
}