x-generator: NSwag v14.6.3.0 (NJsonSchema v11.5.2.0 (Newtonsoft.Json v13.0.0.0))
openapi: 3.0.0
info:
  title: Query
  version: v1
servers:
  - url: https://norcecommerce.api-se.norce.tech/commerce/query/3.0
paths:
  /Application/ApplicationCultures:
    get:
      tags:
        - Application
      summary: Gets all application cultures.
      operationId: Application_ApplicationCulturesAll
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of application cultures.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApplicationCulture'
  /Application/ApplicationCultures(ApplicationId={applicationId},CultureCode={code}):
    get:
      tags:
        - Application
      summary: >-
        Gets a single application culture by application identifier and culture
        code.
      operationId: Application_ApplicationCultures
      parameters:
        - name: applicationId
          in: path
          required: true
          description: The application identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: code
          in: path
          required: true
          description: The culture code (e.g. "sv-SE").
          schema:
            type: string
          x-position: 2
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A single application culture matching the specified key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleResultOfApplicationCulture'
  /Application/ApplicationCountries:
    get:
      tags:
        - Application
      summary: Gets all application countries.
      operationId: Application_ApplicationCountries
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of application countries.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApplicationCountry'
  /Application/ApplicationCurrencies:
    get:
      tags:
        - Application
      summary: Gets all application currencies.
      operationId: Application_ApplicationCurrencies
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of application currencies.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApplicationCurrency'
  /Application/ApplicationPriceLists:
    get:
      tags:
        - Application
      summary: Gets all application price lists.
      operationId: Application_ApplicationPriceLists
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of application price lists.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApplicationPriceList'
  /Application/ApplicationPriceLists(ApplicationId={applicationId},PriceListId={priceListId}):
    get:
      tags:
        - Application
      summary: >-
        Gets application price lists filtered by application and price list
        identifiers.
      operationId: Application_ApplicationPriceList
      parameters:
        - name: applicationId
          in: path
          required: true
          description: The application identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: priceListId
          in: path
          required: true
          description: The price list identifier.
          schema:
            type: integer
            format: int32
          x-position: 2
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of matching application price lists.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApplicationPriceList'
  /Application/ApplicationSalesAreas:
    get:
      tags:
        - Application
      summary: Gets all application sales areas.
      operationId: Application_ApplicationSalesAreas
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of application sales areas.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApplicationSalesArea'
  /Application/ApplicationRoles:
    get:
      tags:
        - Application
      summary: Gets all application roles.
      operationId: Application_ApplicationRoles
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of application roles.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApplicationRole'
  /Application/Categories:
    get:
      tags:
        - Application
      summary: Gets all categories.
      operationId: Application_Categories
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of categories.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Category'
  /Application/SupplierCategoryMappings:
    get:
      tags:
        - Application
      summary: Gets all supplier-to-category mappings.
      operationId: Application_SupplierCategoryMappings
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of supplier category mappings.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SupplierCategoryMapping'
  /Application/CategoryHierarchy:
    get:
      tags:
        - Application
      summary: Gets the category hierarchy (parent-child relationships).
      operationId: Application_CategoryHierarchy
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of category hierarchy entries.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CategoryHierarchy'
  /Application/CategoryStructures:
    get:
      tags:
        - Application
      summary: Gets all category structures.
      operationId: Application_CategoryStructures
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of category structures.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CategoryStructure'
  /Application/CategoryStructureItems:
    get:
      tags:
        - Application
      summary: Gets all category structure items.
      operationId: Application_CategoryStructureItems
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of category structure items.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CategoryStructureItem'
  /Application/ClientCultures:
    get:
      tags:
        - Application
      summary: Gets all client cultures.
      operationId: Application_ClientCultures
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of client cultures.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientCulture'
  /Application/ClientCurrencies:
    get:
      tags:
        - Application
      summary: Gets all client currencies.
      operationId: Application_ClientCurrencies
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of client currencies.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CurrencyClient'
  /Application/ClientManufacturers:
    get:
      tags:
        - Application
      summary: Gets all client manufacturers.
      operationId: Application_ClientManufacturers
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of client manufacturers.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientManufacturer'
  /Application/SupplierManufacturerMappings:
    get:
      tags:
        - Application
      summary: Gets all supplier-to-manufacturer mappings.
      operationId: Application_SupplierManufacturerMappings
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of supplier manufacturer mappings.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SupplierManufacturerMapping'
  /Application/ClientManufacturers({id}):
    get:
      tags:
        - Application
      summary: Gets a single client manufacturer by its identifier.
      operationId: Application_ClientManufacturer
      parameters:
        - name: id
          in: path
          required: true
          description: The manufacturer identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A single client manufacturer matching the specified identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleResultOfClientManufacturer'
  /Application/ClientPriceLists:
    get:
      tags:
        - Application
      summary: Gets all client price lists.
      operationId: Application_ClientPriceLists
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of client price lists.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PriceListClient'
  /Application/ClientSuppliers:
    get:
      tags:
        - Application
      summary: Gets all client suppliers.
      operationId: Application_ClientSuppliers
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of client suppliers.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientSupplier'
  /Application/ClientSuppliers({id}):
    get:
      tags:
        - Application
      summary: Gets a single client supplier by its identifier.
      operationId: Application_ClientSupplier
      parameters:
        - name: id
          in: path
          required: true
          description: The supplier identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A single client supplier matching the specified identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleResultOfClientSupplier'
  /Application/ClientWarehouses:
    get:
      tags:
        - Application
      summary: Gets all client warehouses.
      operationId: Application_ClientWarehouses
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of client warehouses.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientWarehouse'
  /Application/Families:
    get:
      tags:
        - Application
      summary: Gets all product families.
      operationId: Application_Families
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of product families.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Family'
  /Application/FileInfos:
    get:
      tags:
        - Application
      summary: Gets all file info records.
      operationId: Application_FileInfos
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of file info records and client-configured
            file and image types; these are called file types in the admin,
            Connect, and Commerce services.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FileInfo'
  /Application/Parametrics:
    get:
      tags:
        - Application
      summary: Gets all parametric definitions.
      operationId: Application_Parametrics
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of parametric definitions.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Parametric'
  /Application/ParametricListValues:
    get:
      tags:
        - Application
      summary: Gets all parametric list values.
      operationId: Application_ParametricListValues
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of parametric list values. All values from
            any parametric of type list are included.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ParametricList'
  /Application/ParametricMultipleValues:
    get:
      tags:
        - Application
      summary: Gets all parametric multiple-choice values.
      operationId: Application_ParametricMultipleValues
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of parametric multiple values. All values
            from any parametric of type multiple-choice are included.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ParametricMultiple'
  /Application/ParametricGroups:
    get:
      tags:
        - Application
      summary: Gets all parametric groups.
      operationId: Application_ParametricGroups
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of parametric groups.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ParametricGroup'
  /Application/ProductFlags:
    get:
      tags:
        - Application
      summary: Gets all product flags.
      operationId: Application_ProductFlags
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of product flags.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductFlag'
  /Application/ProductInfoTypes:
    get:
      tags:
        - Application
      summary: Gets all product info types.
      operationId: Application_ProductInfoTypes
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of product info types. The custom fields
            configured by the client for price and onhand records.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductInfoType'
  /Application/SalesAreas:
    get:
      tags:
        - Application
      summary: Gets all client sales areas.
      operationId: Application_SalesAreas
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of client sales areas. All sales areas
            configured for the client are included.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientSalesArea'
  /Application/VariantGroups:
    get:
      tags:
        - Application
      summary: Gets all variant groups.
      operationId: Application_VariantGroups
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of variant groups. Named variant type in
            admin and VariantDefinitionGroup in connect.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VariantGroup'
  /Application/CustomerInfoTypes:
    get:
      tags:
        - Application
      summary: Gets all customer info types.
      operationId: Application_CustomerInfoTypes
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of customer info types. The custom fields
            configured by the client for customer, company and store (division)
            records.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerInfoType'
  /Application/ClientCustomerFlags:
    get:
      tags:
        - Application
      summary: Gets all client customer flags.
      operationId: Application_ClientCustomerFlags
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of client customer flags. Both customer and
            company enabled flags are included.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerFlag'
  /Application/ShoppingInfoTypes:
    get:
      tags:
        - Application
      summary: Gets all shopping info types.
      operationId: Application_ShoppingInfoTypes
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of shopping info types. The custom fields
            configured by the client for basket, and basketitem records.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ShoppingInfoType'
  /Application/OrderInfoTypes:
    get:
      tags:
        - Application
      summary: Gets all order info types.
      operationId: Application_OrderInfoTypes
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of order info types. The custom fields
            configured by the client for order, and orderitem records.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrderInfoType'
  /Application/ClientDivisions:
    get:
      tags:
        - Application
      summary: Gets all client divisions.
      operationId: Application_ClientDivisions
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of client divisions. Divisions are called
            "stores" in admin and commerce services.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientDivision'
  /Application/ProductRelationTypes:
    get:
      tags:
        - Application
      summary: Gets all product relation types.
      operationId: Application_ProductRelationTypes
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of product relation types.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductRelationType'
  /Application/ClientSkuTypes:
    get:
      tags:
        - Application
      summary: Gets all client SKU types.
      operationId: Application_ClientSkuTypes
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of client SKU types. Called product types in
            admin.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientProductSkuTypeClient'
  /Core/Applications:
    get:
      tags:
        - Core
      summary: Gets all applications.
      operationId: Core_Applications
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of applications.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Application'
  /Core/Applications({id}):
    get:
      tags:
        - Core
      summary: Gets a single application by its identifier.
      operationId: Core_Application
      parameters:
        - name: id
          in: path
          required: true
          description: The application identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A single application matching the specified identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleResultOfApplication'
  /Core/Currencies:
    get:
      tags:
        - Core
      summary: Gets all currencies.
      operationId: Core_Currencies
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of currencies.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Currency'
  /Core/Currencies({id}):
    get:
      tags:
        - Core
      summary: Gets a single currency by its identifier.
      operationId: Core_Currency
      parameters:
        - name: id
          in: path
          required: true
          description: The currency identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A single currency matching the specified identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleResultOfCurrency'
  /Core/Files:
    get:
      tags:
        - Core
      summary: Gets all files.
      operationId: Core_Files
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of legacy file types. Use
            Application.FileInfos for client configured file types.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/File'
  /Core/FileTypes:
    get:
      tags:
        - Core
      summary: Gets all file types.
      operationId: Core_FileTypes
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of file MIME types.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FileType'
  /Core/SalesAreas:
    get:
      tags:
        - Core
      summary: Gets all sales areas.
      operationId: Core_SalesAreas
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of all system sales areas.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SalesArea'
  /Core/SalesAreas({id}):
    get:
      tags:
        - Core
      summary: Gets a single sales area by its identifier.
      operationId: Core_SalesArea
      parameters:
        - name: id
          in: path
          required: true
          description: The sales area identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A single sales area matching the specified identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleResultOfSalesArea'
  /Core/SkuStatuses:
    get:
      tags:
        - Core
      summary: Gets all SKU statuses.
      operationId: Core_SkuStatuses
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of system SKU statuses. Called product status
            in admin.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientProductSkuStatus'
  /Core/SkuStatuses({id}):
    get:
      tags:
        - Core
      summary: Gets a single SKU status by its identifier.
      operationId: Core_SkuStatus
      parameters:
        - name: id
          in: path
          required: true
          description: The SKU status identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A single system SKU status matching the specified identifier. Called
            product status in admin.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleResultOfClientProductSkuStatus'
  /Core/VatCodes:
    get:
      tags:
        - Core
      summary: Gets all VAT codes.
      operationId: Core_VatCodes
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of system VAT codes.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VatCode'
  /Core/VatCodes({id}):
    get:
      tags:
        - Core
      summary: Gets a single VAT code by its identifier.
      operationId: Core_VatCode
      parameters:
        - name: id
          in: path
          required: true
          description: The VAT code identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A single system VAT code matching the specified identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleResultOfVatCode'
  /Core/Countries:
    get:
      tags:
        - Core
      summary: Gets all countries.
      operationId: Core_Countries
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of system countries.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Country'
  /Core/Countries({id}):
    get:
      tags:
        - Core
      summary: Gets a single country by its identifier.
      operationId: Core_Country
      parameters:
        - name: id
          in: path
          required: true
          description: The country identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A single system country matching the specified identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleResultOfCountry'
  /Core/GetClientSeed(clientId={clientId},applicationId={applicationId},typeId={typeId}):
    get:
      tags:
        - Core
      summary: Gets the next incremental seed value for a client.
      operationId: Core_ClientSeed
      parameters:
        - name: clientId
          in: path
          required: true
          description: The client identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: applicationId
          in: path
          required: true
          description: The optional application identifier.
          schema:
            type: integer
            format: int32
          x-position: 2
        - name: typeId
          in: path
          required: true
          description: The seed type identifier.
          schema:
            type: integer
            format: int32
          x-position: 3
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: The next seed value as a string.
          content:
            application/json:
              schema:
                type: string
  /Core/DeliveryMethods:
    get:
      tags:
        - Core
      summary: Gets all delivery methods.
      operationId: Core_DeliveryMethods
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of system delivery methods.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeliveryMethod'
  /Core/PaymentMethods:
    get:
      tags:
        - Core
      summary: Gets all payment methods.
      operationId: Core_PaymentMethods
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of system payment methods.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PaymentMethod'
  /Core/ProductInfoTypeGroups:
    get:
      tags:
        - Core
      summary: Gets all product info type groups.
      operationId: Core_ProductInfoTypeGroups
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of system product info type groups.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductInfoTypeGroup'
  /Core/SkuTypes:
    get:
      tags:
        - Core
      summary: Gets all SKU types.
      operationId: Core_SkuTypes
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of system SKU types, called product types in
            admin.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientProductSkuType'
  /Customers/Customers:
    get:
      tags:
        - Customers
      summary: Gets all customers.
      operationId: Customers_Customers
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of customers.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientCustomer'
  /Customers/Customers({id}):
    get:
      tags:
        - Customers
      summary: Gets a single customer by its identifier.
      operationId: Customers_Customer
      parameters:
        - name: id
          in: path
          required: true
          description: The customer identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A single customer matching the specified identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleResultOfClientCustomer'
  /Customers/Companies:
    get:
      tags:
        - Customers
      summary: Gets all companies.
      operationId: Customers_Companies
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of companies.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientCompany'
  /Customers/Companies({id}):
    get:
      tags:
        - Customers
      summary: Gets a single company by its identifier.
      operationId: Customers_Company
      parameters:
        - name: id
          in: path
          required: true
          description: The company identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A single company matching the specified identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleResultOfClientCompany'
  /Customers/Customers({customerId})/Companies:
    get:
      tags:
        - Customers
      summary: Gets all companies associated with a specific customer.
      operationId: Customers_CustomerCompanies
      parameters:
        - name: customerId
          in: path
          required: true
          description: The customer identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of companies linked to the specified
            customer.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientCompany'
  /Orders/Orders:
    get:
      tags:
        - Order
      summary: Gets all orders.
      operationId: Order_Orders
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of orders.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Order'
  /Orders/Quotations:
    get:
      tags:
        - Order
      summary: Gets all quotations.
      operationId: Order_Quotations
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of quotations.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Quotation'
  /Orders/DeliveryNotes:
    get:
      tags:
        - Order
      summary: Gets all delivery notes.
      operationId: Order_DeliveryNotes
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of delivery notes.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeliveryNote'
  /Orders/Invoices:
    get:
      tags:
        - Order
      summary: Gets all invoices.
      operationId: Order_Invoices
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of invoices.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Invoice'
  /Products/ProductSkus:
    get:
      tags:
        - Products
      summary: Gets all product SKUs.
      operationId: Products_ProductSkusAll
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of product SKUs.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientProductSku'
  /Products/Products:
    get:
      tags:
        - Products
      summary: Gets all products.
      operationId: Products_Products
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of products.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Product'
  /Products/ProductSkuPriceLists:
    get:
      tags:
        - Products
      summary: Gets all product SKU price lists.
      operationId: Products_ProductSkuPriceLists
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of product SKU price lists.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientProductSkuPriceList'
  /Products/ProductSkus({partNo}):
    get:
      tags:
        - Products
      summary: Gets a single product SKU by its part number.
      operationId: Products_ProductSkus
      parameters:
        - name: partNo
          in: path
          required: true
          description: The part number identifying the SKU.
          schema:
            type: string
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A single product SKU matching the specified part number.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleResultOfClientProductSku'
  /Products/Products({id}):
    get:
      tags:
        - Products
      summary: Gets a single product by its identifier.
      operationId: Products_Product
      parameters:
        - name: id
          in: path
          required: true
          description: The product identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A single product matching the specified identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleResultOfProduct'
  /Products/ProductSkus/ProductService.GetDeltaProductSkus(offsetInMinutes={offsetInMinutes}):
    get:
      tags:
        - Products
      summary: >-
        Gets product SKUs that have been modified within the specified time
        offset.
      operationId: Products_DeltaProductSkus
      parameters:
        - name: offsetInMinutes
          in: path
          required: true
          description: The number of minutes to look back for changes.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of recently changed product SKUs.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientProductSku'
  /Products/ProductSkus/ProductService.GetDeltaProductSkuOnHands(offsetInMinutes={offsetInMinutes}):
    get:
      tags:
        - Products
      summary: >-
        Gets product SKUs whose on-hand inventory has changed within the
        specified time offset.
      operationId: Products_DeltaProductSkuOnHands
      parameters:
        - name: offsetInMinutes
          in: path
          required: true
          description: The number of minutes to look back for on-hand changes.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of product SKUs with recent on-hand changes.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientProductSku'
  /Products/ProductSkus/ProductService.GetDeltaProductSkuPriceLists(offsetInMinutes={offsetInMinutes}):
    get:
      tags:
        - Products
      summary: >-
        Gets product SKUs whose price lists have changed within the specified
        time offset.
      operationId: Products_DeltaProductSkuPriceLists
      parameters:
        - name: offsetInMinutes
          in: path
          required: true
          description: The number of minutes to look back for price list changes.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of product SKUs with recent price list
            changes.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientProductSku'
  /Products/ProductAccessories:
    get:
      tags:
        - Products
      summary: >-
        Gets all product accessories.

        Maps from the unified ProductRelation model, filtering by relation types
        prefixed with "accessory-".
      operationId: Products_ProductAccessories
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of product accessories.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductAccessory'
  /Products/ProductCrossell:
    get:
      tags:
        - Products
      summary: >-
        Gets all product cross-sell relations.

        Maps from the unified ProductRelation model, filtering by the
        "crosssell" relation type.
      operationId: Products_ProductCrossell
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of product cross-sell relations.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductCrossell'
  /Products/ProductUpsell:
    get:
      tags:
        - Products
      summary: >-
        Gets all product up-sell relations.

        Maps from the unified ProductRelation model, filtering by the "upsell"
        relation type.
      operationId: Products_ProductUpsell
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of product up-sell relations.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductUpsell'
  /Products/ProductRelations:
    get:
      tags:
        - Products
      summary: Gets all product relations (all types).
      operationId: Products_ProductRelations
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of all product relations.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductRelation'
  /Products/SupplierProductSkus:
    get:
      tags:
        - Products
      summary: Gets all supplier product SKUs.
      operationId: Products_SupplierProductSkus
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of supplier product SKUs.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SupplierProductSku'
  /Products/Variants:
    get:
      tags:
        - Products
      summary: Gets all product variants.
      operationId: Products_Variants
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of product variants.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Variant'
  /Products/ProductBestPrices:
    get:
      tags:
        - Products
      summary: Gets all product best prices logs.
      operationId: Products_BestPrices
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of product best prices history logs.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientProductSkuBestPrice'
  /Products/ProductBestPrices(PartNo={partNo},ApplicationId={applicationId}):
    get:
      tags:
        - Products
      summary: Gets product best prices logs filtered by part number and application.
      operationId: Products_BestPrices2
      parameters:
        - name: partNo
          in: path
          required: true
          description: The part number identifying the SKU.
          schema:
            type: string
          x-position: 1
        - name: applicationId
          in: path
          required: true
          description: The application identifier.
          schema:
            type: integer
            format: int32
          x-position: 2
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of product best prices history logs.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientProductSkuBestPrice'
  /Products/Variants/ProductService.GetExportProductVariantFull(skuTypeIdsToInclude={skuTypeIdsToInclude}):
    get:
      tags:
        - Products
      summary: >-
        Gets a full export of product variants, filtered by SKU type IDs to
        include.
      operationId: Products_ExportProductVariantFull
      parameters:
        - name: skuTypeIdsToInclude
          in: path
          required: true
          description: A comma-separated list of SKU type IDs to include.
          schema:
            type: string
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of product variants for export.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Variant'
  /Products/Variants/ProductService.GetExportProductVariantDelta(skuTypeIdToExclude={skuTypeIdToExclude},offsetInMinutes={offsetInMinutes}):
    get:
      tags:
        - Products
      summary: >-
        Gets a delta export of product variants changed within the specified
        time offset, excluding a specific SKU type.
      operationId: Products_ExportProductVariantDelta
      parameters:
        - name: skuTypeIdToExclude
          in: path
          required: true
          description: The SKU type ID to exclude from the results.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: offsetInMinutes
          in: path
          required: true
          description: The number of minutes to look back for changes.
          schema:
            type: integer
            format: int32
          x-position: 2
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of recently changed product variants for
            export.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Variant'
  /Products/Variants/ProductService.GetExportProductVariantDelta(skuTypeIdsToInclude={skuTypeIdsToInclude},offsetInMinutes={offsetInMinutes}):
    get:
      tags:
        - Products
      summary: >-
        Gets a delta export of product variants changed within the specified
        time offset, filtered by SKU type IDs to include.
      operationId: Products_ExportProductVariantDeltaByTypes
      parameters:
        - name: skuTypeIdsToInclude
          in: path
          required: true
          description: A comma-separated list of SKU type IDs to include.
          schema:
            type: string
          x-position: 1
        - name: offsetInMinutes
          in: path
          required: true
          description: The number of minutes to look back for changes.
          schema:
            type: integer
            format: int32
          x-position: 2
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A queryable collection of recently changed product variants for
            export.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Variant'
  /Shopping/GetPaymentAmount(quotationId={quotationId}):
    get:
      tags:
        - Shopping
      summary: >-
        Gets the payment amount for a specific quotation.

        Retrieves the amount from a successful StartPaymentProcess transaction,
        if any.
      operationId: Shopping_PaymentAmount
      parameters:
        - name: quotationId
          in: path
          required: true
          description: The quotation identifier.
          schema:
            type: integer
            format: int32
          x-position: 1
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: >-
            The payment amount as a decimal, or null if no payment transaction
            was found.
          content:
            application/json:
              schema:
                type: number
                format: decimal
                nullable: true
  /Shopping/ApplicationDeliveryMethods:
    get:
      tags:
        - Shopping
      summary: Gets all application delivery methods.
      operationId: Shopping_ApplicationDeliveryMethods
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of application configured delivery methods.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApplicationDeliveryMethod'
  /Shopping/ApplicationPaymentMethods:
    get:
      tags:
        - Shopping
      summary: Gets all application payment methods.
      operationId: Shopping_ApplicationPaymentMethods
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: A queryable collection of application configured payment methods.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApplicationPaymentMethod'
  /Core/$metadata:
    get:
      tags:
        - Metadata
      operationId: Metadata_GetMetadata
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IEdmModel'
  /Application/$metadata:
    get:
      tags:
        - Metadata
      operationId: Metadata_GetMetadata2
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IEdmModel'
  /Customers/$metadata:
    get:
      tags:
        - Metadata
      operationId: Metadata_GetMetadata3
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IEdmModel'
  /Products/$metadata:
    get:
      tags:
        - Metadata
      operationId: Metadata_GetMetadata4
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IEdmModel'
  /Orders/$metadata:
    get:
      tags:
        - Metadata
      operationId: Metadata_GetMetadata5
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IEdmModel'
  /Shopping/$metadata:
    get:
      tags:
        - Metadata
      operationId: Metadata_GetMetadata6
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IEdmModel'
  /Core:
    get:
      tags:
        - Metadata
      operationId: Metadata_GetServiceDocument
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ODataServiceDocument'
  /Application:
    get:
      tags:
        - Metadata
      operationId: Metadata_GetServiceDocument2
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ODataServiceDocument'
  /Customers:
    get:
      tags:
        - Metadata
      operationId: Metadata_GetServiceDocument3
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ODataServiceDocument'
  /Products:
    get:
      tags:
        - Metadata
      operationId: Metadata_GetServiceDocument4
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ODataServiceDocument'
  /Orders:
    get:
      tags:
        - Metadata
      operationId: Metadata_GetServiceDocument5
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ODataServiceDocument'
  /Shopping:
    get:
      tags:
        - Metadata
      operationId: Metadata_GetServiceDocument6
      parameters:
        - name: ApplicationId
          in: header
          required: true
          description: Application ID
          schema:
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ODataServiceDocument'
components:
  schemas:
    ApplicationCulture:
      type: object
      additionalProperties: false
      properties:
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        isPrimary:
          type: boolean
          description: >-
            Indicates whether the application culture is primary, only one
            primary culture is allowed.
        isActive:
          type: boolean
          description: Indicates whether the application culture is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
    SingleResultOfApplicationCulture:
      allOf:
        - $ref: '#/components/schemas/SingleResult'
        - type: object
          additionalProperties: false
          properties:
            queryable:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/ApplicationCulture'
    SingleResult:
      type: object
      x-abstract: true
      additionalProperties: false
      properties:
        queryable:
          type: array
          nullable: true
          items: {}
    ApplicationCountry:
      type: object
      additionalProperties: false
      properties:
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
        countryId:
          type: integer
          description: The country identifier.
          format: int32
        isPrimary:
          type: boolean
          description: >-
            Indicates whether the application country is primary, only one
            primary country is allowed.
        isActive:
          type: boolean
          description: Indicates whether the application country is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
    ApplicationCurrency:
      type: object
      additionalProperties: false
      properties:
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
        currencyId:
          type: integer
          description: The currency identifier.
          format: int32
        isPrimary:
          type: boolean
          description: >-
            Indicates whether the application currency is primary, only one
            primary currency is allowed.
        isActive:
          type: boolean
          description: Indicates whether the application currency is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
    ApplicationPriceList:
      type: object
      additionalProperties: false
      properties:
        applicationId:
          type: integer
          description: The unique identifier of the application.
          format: int32
        priceListId:
          type: integer
          description: The unique identifier of the price list.
          format: int32
        isPrimary:
          type: boolean
          description: >-
            Indicates whether this is the primary price list for the
            application, only one primary price list is allowed per application.
        isActive:
          type: boolean
          description: Indicates whether this price list is active on the application.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        isEditable:
          type: boolean
          description: >-
            Indicates whether this application price list is editable, not used
            anymore.
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        isFavorite:
          type: boolean
          description: >-
            Indicates whether this application price list is marked as a
            favorite, add the price list to the pricing tabs by default in the
            admin tool.
        priceList:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/PriceList'
        priceListClient:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/PriceListClient'
    PriceList:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the price list.
          format: int32
        defaultName:
          type: string
          description: The default name of the price list.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the price list.
          nullable: true
        agreement:
          type: string
          description: The agreement, called Code in the admin tool, and in connect.
          maxLength: 50
          minLength: 0
          nullable: true
        startDate:
          type: string
          description: The start date, not used see start date in PriceListClient.
          format: date-time
          nullable: true
        endDate:
          type: string
          description: The end date, not used see end date in PriceListClient.
          format: date-time
          nullable: true
        isPublic:
          type: boolean
          description: >-
            Indicates whether the price list is public, not used see IsPublic in
            PriceListClient.
        isLimitedToStock:
          type: boolean
          description: >-
            Indicates whether the price list is limited to stock, not used see
            IsLimitedToStock in PriceListClient.
        isBid:
          type: boolean
          description: >-
            Indicates whether the price list is bid, not used see IsBid in
            PriceListClient.
        isStako:
          type: boolean
          description: >-
            Indicates whether the price list is stako, not used see IsStako in
            PriceListClient.
        isActive:
          type: boolean
          description: >-
            Indicates whether the price list is active, commonly always set, see
            IsActive in PriceListClient.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        applicationPriceList:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ApplicationPriceList'
        clientProductSkuPriceList:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuPriceList'
        priceListClient:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/PriceListClient'
    ClientProductSkuPriceList:
      type: object
      additionalProperties: false
      properties:
        partNo:
          type: string
          description: The part number.
          maxLength: 50
          minLength: 0
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        priceListId:
          type: integer
          description: The price list identifier.
          format: int32
        qtyBreak:
          type: integer
          description: The quantity break, default is 1.
          format: int32
        currencyId:
          type: integer
          description: The currency identifier.
          format: int32
        priceSale:
          type: number
          description: >-
            The price sale, calculated based on the fields in this record,
            depending on the price rule.
          format: decimal
        priceSaleLastUpdated:
          type: string
          description: The price sale last updated.
          format: date-time
          nullable: true
        priceSaleLastUpdatedBy:
          type: integer
          description: The price sale last updated by.
          format: int32
          nullable: true
        priceRuleId:
          type: integer
          description: The price rule identifier.
          format: int32
          nullable: true
        priceRuleValue:
          type: number
          description: >-
            The price rule value, depending on the price rule can contain like
            margin or uplift in percent, discount in percent or fixed amount,
            null when fixed price rule.
          format: decimal
          nullable: true
        costPurchase:
          type: number
          description: The cost purchase.
          format: decimal
        costPurchaseLastUpdated:
          type: string
          description: The cost purchase last updated.
          format: date-time
          nullable: true
        costPurchaseLastUpdatedBy:
          type: integer
          description: The cost purchase last updated by.
          format: int32
          nullable: true
        costUnit:
          type: number
          description: The cost unit.
          format: decimal
        costUnitLastUpdated:
          type: string
          description: The cost unit last updated.
          format: date-time
          nullable: true
        costUnitLastUpdatedBy:
          type: integer
          description: The cost unit last updated by.
          format: int32
          nullable: true
        supplementChargePercentage:
          type: number
          description: The supplement charge percentage.
          format: decimal
          nullable: true
        priceStandard:
          type: number
          description: >-
            The price standard, inherited from the parent price list record,
            otherwise null.
          format: decimal
          nullable: true
        priceRecommended:
          type: number
          description: The price recommended.
          format: decimal
          nullable: true
        priceRecommendedLastUpdated:
          type: string
          description: The price recommended last updated.
          format: date-time
          nullable: true
        priceRecommendedLastUpdatedBy:
          type: integer
          description: The price recommended last updated by.
          format: int32
          nullable: true
        pricePrevious:
          type: number
          description: >-
            The price previous, can contain historical best price, if
            functionality is enabled for the client.
          format: decimal
          nullable: true
        pricePreviousLastUpdated:
          type: string
          description: The price previous last updated.
          format: date-time
          nullable: true
        pricePreviousLastUpdatedBy:
          type: integer
          description: The price previous last updated by.
          format: int32
          nullable: true
        priceCatalog:
          type: number
          description: The price catalog.
          format: decimal
          nullable: true
        priceCatalogLastUpdated:
          type: string
          description: The price catalog last updated.
          format: date-time
          nullable: true
        priceCatalogLastUpdatedBy:
          type: integer
          description: The price catalog last updated by.
          format: int32
          nullable: true
        isPriceDiscountable:
          type: boolean
          description: >-
            Indicates whether the client product sku price list is price
            discountable by promotions.
        chosenSupplierId:
          type: integer
          description: The chosen supplier identifier.
          format: int32
          nullable: true
        chosenSupplierPartNo:
          type: string
          description: The chosen supplier part number.
          maxLength: 50
          minLength: 0
          nullable: true
        chosenSupplierPriceListId:
          type: integer
          description: The chosen supplier price list identifier.
          format: int32
          nullable: true
        chosenSupplierQtyBreak:
          type: integer
          description: The chosen supplier quantity break.
          format: int32
          nullable: true
        isChosenSupplierLocked:
          type: boolean
          description: >-
            Indicates whether the client product sku price list is chosen
            supplier locked, not used anymore.
        isActive:
          type: boolean
          description: Indicates whether the client product sku price list is active.
        stoppedDate:
          type: string
          description: The stopped date.
          format: date-time
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        lastChecked:
          type: string
          description: The last checked.
          format: date-time
          nullable: true
        minimumMarginPercentage:
          type: number
          description: The minimum margin percentage.
          format: decimal
          nullable: true
        priceRuleLastUpdated:
          type: string
          description: The price rule last updated.
          format: date-time
          nullable: true
        priceRuleLastUpdatedBy:
          type: integer
          description: The price rule last updated by.
          format: int32
          nullable: true
        pricingId:
          type: integer
          description: The pricing identifier, not used anymore.
          format: int32
          nullable: true
        supplementCharge:
          type: number
          description: The supplement charge.
          format: decimal
          nullable: true
        limitToPriceRecommended:
          type: boolean
          description: Indicates whether limit to price recommended is enabled.
          nullable: true
        isActiveLastUpdated:
          type: string
          description: The is active last updated.
          format: date-time
          nullable: true
        isActiveLastUpdatedBy:
          type: integer
          description: The is active last updated by.
          format: int32
          nullable: true
        sku:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientProductSku'
        info:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuPriceListInfo'
        priceList:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/PriceList'
    ClientProductSku:
      type: object
      additionalProperties: false
      properties:
        partNo:
          type: string
          description: The part number.
          maxLength: 50
          minLength: 0
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        productId:
          type: integer
          description: The product identifier.
          format: int32
        statusId:
          type: integer
          description: >-
            The status identifier, Active (1), Coming (2), Expiring (3), Hidden
            (4), Inactive (5).
          format: int32
        statusLastUpdated:
          type: string
          description: The status last updated.
          format: date-time
          nullable: true
        statusLastUpdatedBy:
          type: integer
          description: The status last updated by.
          format: int32
          nullable: true
        typeId:
          type: integer
          description: The type identifier, a value from the ClientProductSkuType.
          format: int32
        integrationPartNo:
          type: string
          description: >-
            The integration part number, used when ERP has a different part
            number or a shared part number for many products in the Norce.
          maxLength: 50
          minLength: 0
          nullable: true
        erpName:
          type: string
          description: The ERP name.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultComment:
          type: string
          description: The default comment.
          maxLength: 255
          minLength: 0
          nullable: true
        commodityCode:
          type: string
          description: The commodity code.
          maxLength: 50
          minLength: 0
          nullable: true
        eanCode:
          type: string
          description: The EAN code.
          maxLength: 50
          minLength: 0
          nullable: true
        trackingCode:
          type: string
          description: The tracking code.
          maxLength: 50
          minLength: 0
          nullable: true
        grossWeight:
          type: number
          description: >-
            The gross weight, called Actual weight in the admin tool and is used
            by shipping calculations.
          format: decimal
          nullable: true
        netWeight:
          type: number
          description: The net weight, not commonly used, set up parametrics instead.
          format: decimal
          nullable: true
        freightClassId:
          type: integer
          description: The freight class identifier, not used anymore.
          format: int32
          nullable: true
        unitOfMeasurementId:
          type: integer
          description: The unit of measurement identifier.
          format: int32
          nullable: true
        unitOfMeasurementCount:
          type: number
          description: The unit of measurement count.
          format: decimal
        packageId:
          type: integer
          description: The package identifier, not used anymore.
          format: int32
          nullable: true
        trackingCodeTypeId:
          type: integer
          description: The tracking code type identifier, not used anymore.
          format: int32
          nullable: true
        url:
          type: string
          description: The URL.
          maxLength: 255
          minLength: 0
          nullable: true
        imagePath:
          type: string
          description: The image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        isDropShipOnly:
          type: boolean
          description: Indicates whether the client product sku is drop ship only.
          nullable: true
        isPublished:
          type: boolean
          description: >-
            Indicates whether the client product sku is published, not used
            anymore.
        publishedLastUpdated:
          type: string
          description: The published last updated.
          format: date-time
          nullable: true
        publishedLastUpdatedBy:
          type: integer
          description: The published last updated by.
          format: int32
          nullable: true
        isBlocked:
          type: boolean
          description: >-
            Indicates whether the client product sku is blocked, 1 can force
            block a sku from being shown outside the system, but is not used
            anymore.
        blockedLastUpdated:
          type: string
          description: The blocked last updated.
          format: date-time
          nullable: true
        blockedLastUpdatedBy:
          type: integer
          description: The blocked last updated by.
          format: int32
          nullable: true
        populationRuleId:
          type: integer
          description: The population rule identifier, not used anymore.
          format: int32
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        lastChecked:
          type: string
          description: The last checked.
          format: date-time
          nullable: true
        trackingModeTypeId:
          type: integer
          description: The tracking mode type identifier, not used anymore.
          format: int32
          nullable: true
        isStatusLocked:
          type: boolean
          description: >-
            Indicates whether the client product sku is status locked, can be
            set manually in the admin tool.
        statusLockedDate:
          type: string
          description: The status locked date.
          format: date-time
          nullable: true
        statusLockedBy:
          type: integer
          description: The status locked by.
          format: int32
          nullable: true
        recommendedSalesQty:
          type: number
          description: The recommended sales quantity.
          format: decimal
          nullable: true
        logisticWidth:
          type: number
          description: The logistic width, used in logistics calculations.
          format: decimal
          nullable: true
        logisticHeight:
          type: number
          description: The logistic height, used in logistics calculations.
          format: decimal
          nullable: true
        logisticDepth:
          type: number
          description: The logistic depth, used in logistics calculations.
          format: decimal
          nullable: true
        isBuyable:
          type: boolean
          description: >-
            Indicates whether the client product sku is buyable, if 0 the cannot
            be added to baskets.
        buyableLastUpdated:
          type: string
          description: The buyable last updated.
          format: date-time
          nullable: true
        buyableLastUpdatedBy:
          type: integer
          description: The buyable last updated by.
          format: int32
          nullable: true
        discountClass:
          type: string
          description: The discount class, not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        isRecommendedSalesQtyFixed:
          type: boolean
          description: >-
            Indicates whether the client product sku is recommended sales
            quantity fixed.
          nullable: true
        startDate:
          type: string
          description: The start date, indicated when a coming product switches to active.
          format: date-time
          nullable: true
        endDate:
          type: string
          description: >-
            The end date, indicated when an expiring product switches to
            inactive.
          format: date-time
          nullable: true
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuCulture'
        onHands:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuOnHand'
        priceLists:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuPriceList'
        salesAreas:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuSalesArea'
        structureItems:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuStructureItem'
        bestPrices:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuBestPrice'
        product:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Product'
    ClientProductSkuCulture:
      type: object
      additionalProperties: false
      properties:
        partNo:
          type: string
          description: The part number.
          maxLength: 50
          minLength: 0
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        erpName:
          type: string
          description: The culture specific ERP name.
          maxLength: 255
          minLength: 0
          nullable: true
        comment:
          type: string
          description: A comment or note.
          maxLength: 255
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientProductSku:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientProductSku'
    ClientProductSkuOnHand:
      type: object
      additionalProperties: false
      properties:
        partNo:
          type: string
          description: The part number.
          maxLength: 50
          minLength: 0
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        warehouseId:
          type: integer
          description: The warehouse identifier.
          format: int32
        locationId:
          type: integer
          description: The location identifier.
          format: int32
        onHandValue:
          type: number
          description: The on hand value, from the inventory system.
          format: decimal
        onHandLastChecked:
          type: string
          description: The on hand last checked.
          format: date-time
          nullable: true
        onHandLastUpdated:
          type: string
          description: The on hand last updated.
          format: date-time
          nullable: true
        onHandLastUpdatedBy:
          type: integer
          description: The on hand last updated by.
          format: int32
          nullable: true
        incomingValue:
          type: number
          description: The incoming value.
          format: decimal
          nullable: true
        incomingLastChecked:
          type: string
          description: The incoming last checked.
          format: date-time
          nullable: true
        incomingLastUpdated:
          type: string
          description: The incoming last updated.
          format: date-time
          nullable: true
        incomingLastUpdatedBy:
          type: integer
          description: The incoming last updated by.
          format: int32
          nullable: true
        nextDeliveryDate:
          type: string
          description: The next delivery date, to the warehouse (when incoming > 0).
          format: date-time
          nullable: true
        nextDeliveryLastChecked:
          type: string
          description: The next delivery last checked.
          format: date-time
          nullable: true
        nextDeliveryLastUpdated:
          type: string
          description: The next delivery last updated.
          format: date-time
          nullable: true
        nextDeliveryLastUpdatedBy:
          type: integer
          description: The next delivery last updated by.
          format: int32
          nullable: true
        isReturnable:
          type: boolean
          description: Indicates whether the client product sku on hand is returnable.
        leadTimeDayCount:
          type: integer
          description: >-
            The lead time day count, overrides the location or warehouse
            setting.
          format: int32
          nullable: true
        onOrderValue:
          type: number
          description: The on order value, not used anymore.
          format: decimal
          nullable: true
        minimumValue:
          type: number
          description: >-
            The minimum value, optional value, when procuring should be
            considered.
          format: decimal
          nullable: true
        maximumValue:
          type: number
          description: The maximum value, optional value, target amount when procuring.
          format: decimal
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the client product sku on hand is active.
        stoppedDate:
          type: string
          description: The stopped date.
          format: date-time
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        reservationValue:
          type: number
          description: >-
            The reservation value, reserved value based on orders through the
            system, deducts onhand value in the admin tool and commerce service
            API, and is cleared by a new update from the inventory system.
          format: decimal
        isActiveLastUpdated:
          type: string
          description: The is active last updated.
          format: date-time
          nullable: true
        isActiveLastUpdatedBy:
          type: integer
          description: The is active last updated by.
          format: int32
          nullable: true
        clientProductSku:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientProductSku'
        info:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuOnHandInfo'
        warehouse:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Warehouse'
    ClientProductSkuOnHandInfo:
      type: object
      additionalProperties: false
      required:
        - partNo
        - value
      properties:
        id:
          type: integer
          description: The unique identifier of the client product sku on hand info type.
          format: int64
        partNo:
          type: string
          description: The part number.
          maxLength: 50
          minLength: 0
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        warehouseId:
          type: integer
          description: The warehouse identifier.
          format: int32
        locationId:
          type: integer
          description: The location identifier.
          format: int32
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        value:
          type: string
          description: The value.
          maxLength: 255
          minLength: 0
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientProductSkuOnHand:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientProductSkuOnHand'
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ProductInfoType'
    ProductInfoType:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the product info type.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        groupId:
          type: integer
          description: The info type group identifier, OnHandInfo (2), PriceListInfo (3).
          format: int32
        defaultName:
          type: string
          description: The default name of the product info type.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the product info type.
          maxLength: 500
          minLength: 0
          nullable: true
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
        isActive:
          type: boolean
          description: Indicates whether the product info type is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        code:
          type: string
          description: The code of the product info type.
          maxLength: 50
          minLength: 0
          nullable: true
        clientProductSkuOnHandInfo:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuOnHandInfo'
        clientProductSkuPriceListInfo:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuPriceListInfo'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductInfoTypeCulture'
    ClientProductSkuPriceListInfo:
      type: object
      additionalProperties: false
      required:
        - partNo
        - value
      properties:
        id:
          type: integer
          description: >-
            The unique identifier of the client product sku price list info
            type.
          format: int64
        partNo:
          type: string
          description: The part number.
          maxLength: 50
          minLength: 0
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        priceListId:
          type: integer
          description: The price list identifier.
          format: int32
        qtyBreak:
          type: integer
          description: The quantity break.
          format: int32
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        value:
          type: string
          description: The value.
          maxLength: 255
          minLength: 0
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientProductSkuPriceList:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientProductSkuPriceList'
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ProductInfoType'
    ProductInfoTypeCulture:
      type: object
      additionalProperties: false
      properties:
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the product info type.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the product info type.
          maxLength: 500
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ProductInfoType'
    Warehouse:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the warehouse.
          format: int32
        defaultName:
          type: string
          description: The default name of the warehouse.
          maxLength: 50
          minLength: 0
        isActive:
          type: boolean
          description: Indicates whether the warehouse is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientProductSkuOnHand:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuOnHand'
        clientWarehouse:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientWarehouse'
        clientWarehouseLocation:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientWarehouseLocation'
        supplierProductSkuOnHand:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/SupplierProductSkuOnHand'
    ClientWarehouse:
      type: object
      additionalProperties: false
      properties:
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        warehouseId:
          type: integer
          description: The warehouse identifier.
          format: int32
        typeId:
          type: integer
          description: >-
            The type identifier, Warehouse (1), Store (2), Transport (3), Other
            (4).
          format: int32
        code:
          type: string
          description: The code of the client warehouse.
          maxLength: 50
          minLength: 0
          nullable: true
        name:
          type: string
          description: The name of the client warehouse.
          maxLength: 50
          minLength: 0
          nullable: true
        isStandard:
          type: boolean
          description: >-
            Indicates whether the client warehouse is standard, only one
            standard warehouse is allowed per client.
        standardLeadTimeDayCount:
          type: integer
          description: >-
            The standard lead time day count, used for calculating the expected
            delivery time.
          format: int32
          nullable: true
        freightCost:
          type: number
          description: The freight cost, not used anymore.
          format: decimal
          nullable: true
        costBlock:
          type: integer
          description: The cost block, not used anymore.
          format: int32
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        locations:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientWarehouseLocation'
        warehouse:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Warehouse'
    ClientWarehouseLocation:
      type: object
      additionalProperties: false
      properties:
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        warehouseId:
          type: integer
          description: The warehouse identifier.
          format: int32
        locationId:
          type: integer
          description: The location identifier.
          format: int32
        code:
          type: string
          description: The code of the client warehouse location.
          maxLength: 50
          minLength: 0
          nullable: true
        name:
          type: string
          description: The name of the client warehouse location.
          maxLength: 50
          minLength: 0
          nullable: true
        isStandard:
          type: boolean
          description: >-
            Indicates whether the client warehouse location is standard, only
            one standard location is allowed per warehouse.
        isIncludedInStockCalculation:
          type: boolean
          description: >-
            Indicates whether the client warehouse location is included in stock
            calculation.
        standardLeadTimeDayCount:
          type: integer
          description: >-
            The standard lead time day count, used for calculating the expected
            delivery time.
          format: int32
          nullable: true
        freightCost:
          type: number
          description: The freight cost, not used anymore.
          format: decimal
          nullable: true
        upToDateTypeId:
          type: integer
          description: The up to date type identifier, not used anymore.
          format: int32
        costBlock:
          type: integer
          description: The cost block, not used anymore.
          format: int32
          nullable: true
        valueBt:
          type: string
          description: The value bt, not used anymore.
          maxLength: 100
          minLength: 0
          nullable: true
        primaryPriceListId:
          type: integer
          description: >-
            The primary price list identifier, used internally for referencing
            back to the price list of choice from the warehouselocation
            perspective, not relevant anymore.
          format: int32
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        supportsReservation:
          type: boolean
          description: >-
            Indicates whether supports reservation is enabled, not currently in
            use.
        supportsStockQuery:
          type: boolean
          description: >-
            Indicates whether supports stock query is enabled, not currently in
            use.
        clientWarehouse:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientWarehouse'
        location:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/WarehouseLocation'
        warehouse:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Warehouse'
    WarehouseLocation:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the warehouse location.
          format: int32
        defaultName:
          type: string
          description: The default name of the warehouse location.
          maxLength: 50
          minLength: 0
        isActive:
          type: boolean
          description: Indicates whether the warehouse location is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientWarehouseLocation:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientWarehouseLocation'
        supplierProductSkuOnHand:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/SupplierProductSkuOnHand'
    SupplierProductSkuOnHand:
      type: object
      additionalProperties: false
      properties:
        partNo:
          type: string
          description: The supplier part number.
          maxLength: 50
          minLength: 0
          nullable: true
        supplierId:
          type: integer
          description: The supplier identifier.
          format: int32
        warehouseId:
          type: integer
          description: The supplier warehouse identifier.
          format: int32
        locationId:
          type: integer
          description: The supplier location identifier.
          format: int32
        onHandValue:
          type: number
          description: The on hand value.
          format: decimal
        onHandLastChecked:
          type: string
          description: The on hand last checked.
          format: date-time
          nullable: true
        onHandLastUpdated:
          type: string
          description: The on hand last updated.
          format: date-time
          nullable: true
        onHandLastUpdatedBy:
          type: integer
          description: The on hand last updated by.
          format: int32
          nullable: true
        incomingValue:
          type: number
          description: >-
            The incoming value. Optional field that can be used together with
            next delivery date to give a more complete picture of the stock
            situation.
          format: decimal
          nullable: true
        incomingLastChecked:
          type: string
          description: The incoming last checked.
          format: date-time
          nullable: true
        incomingLastUpdated:
          type: string
          description: The incoming last updated.
          format: date-time
          nullable: true
        incomingLastUpdatedBy:
          type: integer
          description: The incoming last updated by.
          format: int32
          nullable: true
        nextDeliveryDate:
          type: string
          description: >-
            The next delivery date. Optional field that can be used together
            with incoming value to give a more complete picture of the stock
            situation.
          format: date-time
          nullable: true
        nextDeliveryLastChecked:
          type: string
          description: The next delivery last checked.
          format: date-time
          nullable: true
        nextDeliveryLastUpdated:
          type: string
          description: The next delivery last updated.
          format: date-time
          nullable: true
        nextDeliveryLastUpdatedBy:
          type: integer
          description: The next delivery last updated by.
          format: int32
          nullable: true
        isReturnable:
          type: boolean
          description: >-
            Indicates whether the supplier product sku on hand is returnable.
            Not commonly used.
          nullable: true
        leadTimeDayCount:
          type: integer
          description: >-
            The lead time day count. Indicates the number of days it takes for
            the end-customer to get goods delivered from this supplier.
          format: int32
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the supplier product sku on hand is active.
        stoppedDate:
          type: string
          description: The stopped date. Not commonly used.
          format: date-time
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        externalStockValue:
          type: number
          description: The external stock value. Not commonly used.
          format: decimal
          nullable: true
        packageValue:
          type: number
          description: The package value. Not commonly used.
          format: decimal
        minimumOrderValue:
          type: number
          description: The minimum order value. Not commonly used.
          format: decimal
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        locations:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/WarehouseLocation'
        supplierProductSku:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/SupplierProductSku'
        warehouse:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Warehouse'
    SupplierProductSku:
      type: object
      additionalProperties: false
      properties:
        partNo:
          type: string
          description: The supplier part number.
          maxLength: 50
          minLength: 0
          nullable: true
        supplierId:
          type: integer
          description: The supplier identifier.
          format: int32
        name:
          type: string
          description: The name of the supplier product sku.
          maxLength: 500
          minLength: 0
          nullable: true
        manufacturerId:
          type: integer
          description: The manufacturer identifier.
          format: int32
          nullable: true
        manufacturerCode:
          type: string
          description: The manufacturer code.
          maxLength: 50
          minLength: 0
          nullable: true
        manufacturerPartNo:
          type: string
          description: The manufacturer part number.
          maxLength: 50
          minLength: 0
          nullable: true
        categoryId:
          type: integer
          description: The category identifier.
          format: int32
          nullable: true
        categoryCode:
          type: string
          description: The category code.
          maxLength: 255
          minLength: 0
          nullable: true
        commodityCode:
          type: string
          description: The commodity code.
          maxLength: 50
          minLength: 0
          nullable: true
        eanCode:
          type: string
          description: The EAN code.
          maxLength: 50
          minLength: 0
          nullable: true
        grossWeight:
          type: number
          description: The gross weight.
          format: decimal
          nullable: true
        netWeight:
          type: number
          description: The net weight.
          format: decimal
          nullable: true
        vatCodeId:
          type: integer
          description: The vat code identifier.
          format: int32
          nullable: true
        unitOfMeasurementId:
          type: integer
          description: The unit of measurement identifier.
          format: int32
        unitOfMeasurementCount:
          type: number
          description: The unit of measurement count.
          format: decimal
        url:
          type: string
          description: The URL. Not commonly used.
          maxLength: 255
          minLength: 0
          nullable: true
        imagePath:
          type: string
          description: The image path. Not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        imagePathLastUpdated:
          type: string
          description: The image path last updated. Not used anymore.
          format: date-time
          nullable: true
        isUsed:
          type: boolean
          description: >-
            Indicates whether the supplier product sku is refurbished. Not
            commonly used.
        logisticWidth:
          type: number
          description: The logistic width.
          format: decimal
          nullable: true
        logisticHeight:
          type: number
          description: The logistic height.
          format: decimal
          nullable: true
        logisticDepth:
          type: number
          description: The logistic depth.
          format: decimal
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        productId:
          type: integer
          description: The product identifier.
          format: int32
          nullable: true
        supplierProductSkuClient:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/SupplierProductSkuClient'
        onHands:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/SupplierProductSkuOnHand'
        priceLists:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/SupplierProductSkuPriceList'
    SupplierProductSkuClient:
      type: object
      additionalProperties: false
      properties:
        partNo:
          type: string
          description: The supplier part number.
          maxLength: 50
          minLength: 0
          nullable: true
        supplierId:
          type: integer
          description: The supplier identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        productId:
          type: integer
          description: The product identifier.
          format: int32
          nullable: true
        manufacturerId:
          type: integer
          description: The manufacturer identifier.
          format: int32
          nullable: true
        categoryId:
          type: integer
          description: The category identifier.
          format: int32
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        product:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Product'
        sku:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/SupplierProductSku'
    Product:
      type: object
      additionalProperties: false
      required:
        - manufacturerPartNo
        - defaultUniqueUrlName
      properties:
        id:
          type: integer
          description: The unique identifier of the product.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        manufacturerId:
          type: integer
          description: The manufacturer identifier.
          format: int32
        manufacturerPartNo:
          type: string
          description: The manufacturer part number.
          maxLength: 50
          minLength: 0
        defaultName:
          type: string
          description: The default name of the product.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultSubHeader:
          type: string
          description: The default sub header.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultSubDescription:
          type: string
          description: The default sub description.
          nullable: true
        defaultDescriptionHeader:
          type: string
          description: The default description header.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultDescription:
          type: string
          description: The default description of the product.
          nullable: true
        defaultImagePath:
          type: string
          description: The default image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultThumbnailImagePath:
          type: string
          description: The default thumbnail image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultCampaignImagePath:
          type: string
          description: The default campaign image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultLargeImagePath:
          type: string
          description: The default large image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultSynonyms:
          type: string
          description: >-
            The default synonyms, commonly comma or blank space separated list
            of words.
          maxLength: 500
          minLength: 0
          nullable: true
        sortOrderValue:
          type: integer
          description: The sort order, not commonly used.
          format: int32
          nullable: true
        assortmentId:
          type: integer
          description: The assortment identifier, not commonly used.
          format: int32
          nullable: true
        assortmentLastUpdated:
          type: string
          description: The assortment last updated, not commonly used.
          format: date-time
          nullable: true
        assortmentLastUpdatedBy:
          type: integer
          description: The assortment last updated by, not commonly used.
          format: int32
          nullable: true
        isVariant:
          type: boolean
          description: Indicates whether the product is variant.
        variantId:
          type: integer
          description: The variant identifier.
          format: int32
          nullable: true
        alias:
          type: string
          description: The alias, not commonly used.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultTitle:
          type: string
          description: The default title, for SEO purposes.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultTags:
          type: string
          description: The default tags, not commonly used.
          nullable: true
        defaultMetaTags:
          type: string
          description: The default meta tags, for SEO purposes.
          nullable: true
        defaultMetaDescription:
          type: string
          description: The default meta description, for SEO purposes.
          nullable: true
        hideInTopList:
          type: boolean
          description: >-
            Indicates whether product is hidden in rankings like popularity
            logic.
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the product is active.
        stoppedDate:
          type: string
          description: >-
            The stopped date, set automatically when the product is disabled or
            deactivated.
          format: date-time
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        insuranceCurrencyId:
          type: integer
          description: The insurance currency identifier, not commonly used.
          format: int32
          nullable: true
        insuranceStartPrice:
          type: number
          description: The insurance start price, not commonly used.
          format: decimal
          nullable: true
        insuranceRunningPercentage:
          type: number
          description: The insurance running percentage, not commonly used.
          format: decimal
          nullable: true
        key:
          type: string
          description: The key.
          format: guid
        manufacturerPartNo2:
          type: string
          description: The manufacturer part no2, not commonly used.
          maxLength: 50
          minLength: 0
          nullable: true
        imageKey:
          type: string
          description: The image key.
          format: guid
          nullable: true
        defaultUniqueUrlName:
          type: string
          description: >-
            The default unique url name, a unique URL friendly name for the
            product, called UniqueName in the admin tool.
          maxLength: 500
          minLength: 0
        stockDisplayBreakPoint:
          type: integer
          description: >-
            The stock display break point, used for determining when to display
            stock information.
          format: int32
          nullable: true
        isDangerousGoods:
          type: boolean
          description: >-
            Indicates whether the product is dangerous goods, used by shipping
            logic.
        code:
          type: string
          description: >-
            The common code for variants. All products with same code are
            considered variants of each other, if left out the product is
            considered standalone.
          maxLength: 50
          minLength: 0
          nullable: true
        isRecurringOrderable:
          type: boolean
          description: >-
            Indicates whether the product is recurring orderable, not commonly
            used.
          nullable: true
        defaultExternalDescription:
          type: string
          description: The default external description, not commonly used.
          nullable: true
        unspscCode:
          type: string
          description: The unspsc code, overrides the value from the primary category.
          maxLength: 50
          minLength: 0
          nullable: true
        translationRequested:
          type: string
          description: Indicates if a 3rd party translation has been requested.
          format: date-time
          nullable: true
        translationRequestedBy:
          type: integer
          description: The translation requested by.
          format: int32
          nullable: true
        defaultImageAltText:
          type: string
          description: The default image alt text.
          nullable: true
        flags:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductFlag'
        skus:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSku'
        categories:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductCategory'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductCulture'
        families:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductFamily'
        files:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductFile'
        parametrics:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductParametric'
        parametricMultiple:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductParametricMultiple'
        productRelations:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductRelation'
        productRelationRelatedProduct:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductRelation'
        supplierSkus:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/SupplierProductSkuClient'
        variant:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Variant'
    ClientProductFlag:
      type: object
      additionalProperties: false
      properties:
        productId:
          type: integer
          description: The product identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        flagId:
          type: integer
          description: The flag identifier.
          format: int32
        isActive:
          type: boolean
          description: Indicates whether the client product flag is active.
        stoppedDate:
          type: string
          description: The stopped date.
          format: date-time
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        flag:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ProductFlag'
        product:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Product'
    ProductFlag:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the product flag.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        groupId:
          type: integer
          description: The group identifier.
          format: int32
        defaultName:
          type: string
          description: The default name of the product flag.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the product flag.
          maxLength: 500
          minLength: 0
          nullable: true
        isManuallyEditable:
          type: boolean
          description: >-
            Indicates whether the product flag is manually editable, if false,
            the flag is read-only in the admin tool.
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the product flag is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        code:
          type: string
          description: The code of the product flag.
          maxLength: 50
          minLength: 0
          nullable: true
        clientProductFlag:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductFlag'
        group:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ProductFlagGroup'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductFlagCulture'
    ProductFlagGroup:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the product flag group.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        code:
          type: string
          description: The code of the product flag group.
          maxLength: 50
          minLength: 0
          nullable: true
        defaultName:
          type: string
          description: The default name of the product flag group.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the product flag group.
          maxLength: 500
          minLength: 0
          nullable: true
        isMultipleChoice:
          type: boolean
          description: >-
            Indicates whether the product flag group is multiple choice, if
            true, multiple flags can be selected from the same group, otherwise
            any flag already set will be cleared automatically when setting a
            new flag in the same group.
        isActive:
          type: boolean
          description: Indicates whether the product flag group is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        isDisplay:
          type: boolean
          description: >-
            Indicates whether the product flag group is marked for being
            visible, not commonly used.
        isFavorite:
          type: boolean
          description: >-
            Indicates whether the product flag group is marked as favorite, used
            in the admin tool.
        productFlag:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductFlag'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductFlagGroupCulture'
    ProductFlagGroupCulture:
      type: object
      additionalProperties: false
      properties:
        groupId:
          type: integer
          description: The flag group identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the product flag group.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the product flag group.
          maxLength: 500
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        group:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ProductFlagGroup'
    ProductFlagCulture:
      type: object
      additionalProperties: false
      properties:
        flagId:
          type: integer
          description: The flag identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the product flag.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the product flag.
          maxLength: 500
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        flag:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ProductFlag'
    ProductCategory:
      type: object
      additionalProperties: false
      properties:
        productId:
          type: integer
          description: The product identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        categoryId:
          type: integer
          description: The category identifier.
          format: int32
        isPrimary:
          type: boolean
          description: >-
            Indicates whether the product category is primary, a product can
            only have one primary category.
        sortOrder:
          type: integer
          description: The sort order between categories.
          format: int32
          nullable: true
        productSortOrder:
          type: integer
          description: The products sort order within the category.
          format: int32
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the product category is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        category:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Category'
        product:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Product'
    Category:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the category.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        code:
          type: string
          description: The code of the category.
          maxLength: 50
          minLength: 0
          nullable: true
        defaultName:
          type: string
          description: The default name of the category.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the category.
          nullable: true
        defaultSynonyms:
          type: string
          description: The default synonyms.
          maxLength: 500
          minLength: 0
          nullable: true
        defaultImagePath:
          type: string
          description: The default image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        unspcCode:
          type: string
          description: The UNSPC code, can be overriden on product level.
          maxLength: 50
          minLength: 0
          nullable: true
        businessArea:
          type: string
          description: The business area.
          maxLength: 50
          minLength: 0
          nullable: true
        defaultCommodityCode:
          type: string
          description: The default commodity code, can be overriden on product level.
          maxLength: 50
          minLength: 0
          nullable: true
        defaultIntegrationPartNo:
          type: string
          description: >-
            The default integration part number, can be overriden on product
            level.
          maxLength: 50
          minLength: 0
          nullable: true
        defaultTrackingCodeTypeId:
          type: integer
          description: The default tracking code type identifier, not used anymore.
          format: int32
          nullable: true
        freightClassId:
          type: integer
          description: The freight class identifier, not used anymore.
          format: int32
          nullable: true
        defaultGrossWeight:
          type: number
          description: >-
            The default gross weight, can be overriden on product level, called
            Actual Weight in the admin tool and in other API's.
          format: decimal
          nullable: true
        defaultNetWeight:
          type: number
          description: >-
            The default net weight, can be overriden on product level, not used
            anymore.
          format: decimal
          nullable: true
        defaultUnitOfMeasurementId:
          type: integer
          description: >-
            The default unit of measurement identifier, can be overriden on
            product level.
          format: int32
          nullable: true
        defaultPackageId:
          type: integer
          description: >-
            The default package identifier, can be overriden on product level,
            not used anymore.
          format: int32
          nullable: true
        defaultIsReturnable:
          type: boolean
          description: >-
            Indicates whether returnable is enabled by default, can be overriden
            on product level, not commonly used.
          nullable: true
        defaultIsDropShipOnly:
          type: boolean
          description: >-
            Indicates whether drop ship only is enabled by default, can be
            overriden on product level.
          nullable: true
        insuranceCurrencyId:
          type: integer
          description: The insurance currency identifier, not used anymore.
          format: int32
          nullable: true
        insuranceStartPrice:
          type: number
          description: The insurance start price, not used anymore.
          format: decimal
          nullable: true
        insuranceRunningPercentage:
          type: number
          description: The insurance running percentage, not used anymore.
          format: decimal
          nullable: true
        populationRuleId:
          type: integer
          description: The population rule identifier, not used anymore.
          format: int32
        hideInTopList:
          type: boolean
          description: >-
            Indicates whether hide in top list is enabled, can be overriden on
            product level, disables popularity ranking on the products in the
            category.
        phoneNumber:
          type: string
          description: The phone number.
          maxLength: 255
          minLength: 0
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the category is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        competitivePricingMinPercentage:
          type: number
          description: The competitive pricing min percentage.
          format: decimal
          nullable: true
        competitivePricingTargetPercentage:
          type: number
          description: The competitive pricing target percentage.
          format: decimal
          nullable: true
        defaultVariantGroupId:
          type: integer
          description: The default variant group identifier, not used anymore.
          format: int32
          nullable: true
        defaultRecommendedSalesQty:
          type: number
          description: >-
            The default recommended sales quantity, can be overriden on product
            level.
          format: decimal
          nullable: true
        imageKey:
          type: string
          description: The image key.
          format: guid
          nullable: true
        defaultFullName:
          type: string
          description: >-
            The default full name, automatically generated from the category
            hierarchy, like: RootName - BranchName - LeafName.
          maxLength: 500
          minLength: 0
          nullable: true
        structureSortOrder:
          type: integer
          description: >-
            The structure sort order, automatically generated sort order based
            on the category hierarchy.
          format: int64
          nullable: true
        defaultStockDisplayBreakPoint:
          type: integer
          description: >-
            The default stock display break point, can be overriden on product
            level.
          format: int32
          nullable: true
        defaultIsRecommendedSalesQtyFixed:
          type: boolean
          description: >-
            Indicates whether recommended sales qty fixed is enabled by default,
            can be overriden on product level.
          nullable: true
        defaultIsRecurringOrderable:
          type: boolean
          description: >-
            Indicates whether recurring orderable is enabled by default, can be
            overriden on product level, not commonly used.
          nullable: true
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CategoryCulture'
        categoryHierarchyCategory:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CategoryHierarchy'
        categoryHierarchyParentCategory:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CategoryHierarchy'
        parametrics:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CategoryParametric'
        salesAreas:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CategorySalesArea'
        categoryStructureItem:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CategoryStructureItem'
        productCategory:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductCategory'
    CategoryCulture:
      type: object
      additionalProperties: false
      properties:
        categoryId:
          type: integer
          description: The category identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the category.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the category.
          nullable: true
        synonyms:
          type: string
          description: The culture specific synonyms of the category.
          maxLength: 500
          minLength: 0
          nullable: true
        imagePath:
          type: string
          description: The image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        fullName:
          type: string
          description: >-
            The culture specific full name of the category, automatically
            generated from the category hierarchy, like: RootName - BranchName -
            LeafName.
          maxLength: 500
          minLength: 0
          nullable: true
        imageKey:
          type: string
          description: The image key.
          format: guid
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        category:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Category'
    CategoryHierarchy:
      type: object
      additionalProperties: false
      properties:
        categoryId:
          type: integer
          description: The category identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        parentCategoryId:
          type: integer
          description: The parent category identifier.
          format: int32
        hierarchy:
          type: integer
          description: The hierarchy.
          format: int32
        category:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Category'
        parentCategory:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Category'
    CategoryParametric:
      type: object
      additionalProperties: false
      properties:
        categoryId:
          type: integer
          description: The category identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        parametricId:
          type: integer
          description: The parametric identifier.
          format: int32
        groupId:
          type: integer
          description: The parametric group identifier.
          format: int32
          nullable: true
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
          nullable: true
        focusSortOrder:
          type: integer
          description: The focus sort order, focus is called filter in the admin tool.
          format: int32
          nullable: true
        isSecondary:
          type: boolean
          description: >-
            Indicates whether the category parametric is secondary, not commonly
            used.
        isRequired:
          type: boolean
          description: >-
            Indicates whether the category parametric is required, overrides the
            parametric default.
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        prioritySortOrder:
          type: integer
          description: The priority sort order.
          format: int32
          nullable: true
        category:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Category'
        group:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ParametricGroup'
        parametric:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Parametric'
    ParametricGroup:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the parametric group.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        defaultName:
          type: string
          description: The default name of the parametric group.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the parametric group.
          maxLength: 500
          minLength: 0
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the parametric group is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        code:
          type: string
          description: The code of the parametric group.
          maxLength: 50
          minLength: 0
          nullable: true
        parametrics:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CategoryParametric'
        parametric:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Parametric'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ParametricGroupCulture'
    Parametric:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the parametric.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        defaultName:
          type: string
          description: The default name of the parametric in the default culture.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the parametric in the default culture.
          maxLength: 500
          minLength: 0
          nullable: true
        defaultUom:
          type: string
          description: The unit of measure in the default culture.
          maxLength: 50
          minLength: 0
          nullable: true
        typeId:
          type: integer
          description: >-
            The type identifier, Text (1), Integer (2), Decimal (3), Boolean
            (4), HTML (5), Date (6).
          format: int32
        hasListValues:
          type: boolean
          description: >-
            Indicates whether the parametric has list values, is of type List
            and has at least one list item.
        hasMultipleValues:
          type: boolean
          description: >-
            Indicates whether the parametric has multiple values, is of type
            Multiple and has at least one multiple item.
        isVariantType:
          type: boolean
          description: >-
            Indicates whether the parametric is used in at least one variant
            group (variant type). A parametric can be used in multiple variant
            groups.
        isRequired:
          type: boolean
          description: >-
            Indicates whether the parametric is required, can be overridden on
            the CategoryParametric setting.
        isHidden:
          type: boolean
          description: >-
            Indicates whether the parametric should be hidden in front end
            applications.
        isActive:
          type: boolean
          description: Indicates whether the parametric is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        code:
          type: string
          description: The code of the parametric.
          maxLength: 50
          minLength: 0
          nullable: true
        codeListKey:
          type: string
          description: The code list key, commonly not used.
          maxLength: 50
          minLength: 0
          nullable: true
        isReadOnly:
          type: boolean
          description: >-
            Indicates whether the parametric is read only, disable edit in the
            admin tool.
        editor:
          type: string
          description: >-
            The editor, HTML or Text, used by the admin tool to allow for
            editing the parametric value.
          maxLength: 16
          minLength: 0
          nullable: true
        isFavorite:
          type: boolean
          description: >-
            Indicates whether the parametric is favorite, adds the parametric to
            the top header of the product page in the admin tool.
        isPublic:
          type: boolean
          description: >-
            Indicates whether the parametric is public, similar to IsHidden, but
            not used anymore, shows same values as IsActive.
        groupId:
          type: integer
          description: The parametric group identifier.
          format: int32
          nullable: true
        defaultIsVariantUnique:
          type: boolean
          description: >-
            Indicates if the parametric should be set on variant level by
            default on products.
        showOnTextTab:
          type: boolean
          description: >-
            Indicates whether show on text tab is enabled, moved the parametric
            to the text tab in the admin tool.
        showInList:
          type: boolean
          description: >-
            Indicates whether show in list is enabled, makes the parametric
            available in listings from api calls in commerce service.
        categoryParametric:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CategoryParametric'
        group:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ParametricGroup'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ParametricCulture'
        parametricList:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ParametricList'
        parametricMultiple:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ParametricMultiple'
        productParametric:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductParametric'
        variantType:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/VariantType'
    ParametricCulture:
      type: object
      additionalProperties: false
      properties:
        parametricId:
          type: integer
          description: The parametric identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the parametric.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the parametric.
          maxLength: 500
          minLength: 0
          nullable: true
        uom:
          type: string
          description: The culture specific unit of measure.
          maxLength: 50
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        parametric:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Parametric'
    ParametricList:
      type: object
      additionalProperties: false
      required:
        - defaultVarcharValue
      properties:
        id:
          type: integer
          description: The unique identifier of the list item.
          format: int32
        parametricId:
          type: integer
          description: The parametric identifier.
          format: int32
        defaultVarcharValue:
          type: string
          description: The default varchar value.
          maxLength: 255
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the parametric list item.
          nullable: true
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the parametric list is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        code:
          type: string
          description: The code of the list item.
          maxLength: 50
          minLength: 0
          nullable: true
        imageKey:
          type: string
          description: The image key.
          format: guid
          nullable: true
        imagePath:
          type: string
          description: The image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        parametric:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Parametric'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ParametricListCulture'
        productParametric:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductParametric'
    ParametricListCulture:
      type: object
      additionalProperties: false
      properties:
        listId:
          type: integer
          description: The list item identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        varcharValue:
          type: string
          description: The culture specific varchar value.
          maxLength: 255
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the parametric list item.
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        list:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ParametricList'
    ProductParametric:
      type: object
      additionalProperties: false
      properties:
        productId:
          type: integer
          description: The product identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        parametricId:
          type: integer
          description: The parametric identifier.
          format: int32
        defaultVarcharValue:
          type: string
          description: The default varchar value, if the parametric is of type text.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultHtmlValue:
          type: string
          description: The default html value, if the parametric is of type html.
          nullable: true
        integerValue:
          type: integer
          description: The integer value, if the parametric is of type integer.
          format: int32
          nullable: true
        decimalValue:
          type: number
          description: The decimal value, if the parametric is of type decimal.
          format: decimal
          nullable: true
        booleanValue:
          type: boolean
          description: >-
            Indicates whether the boolean value is enabled, if the parametric is
            of type boolean.
          nullable: true
        dateValue:
          type: string
          description: The date value, if the parametric is of type date.
          format: date-time
          nullable: true
        listId:
          type: integer
          description: The list identifier, if the parametric is of type list.
          format: int32
          nullable: true
        normalizedValue:
          type: number
          description: The normalized value, if the parametric is of a number type.
          format: decimal
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        isVariantUnique:
          type: boolean
          description: Indicates whether the product parametric is on the variant level.
        list:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ParametricList'
        parametric:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Parametric'
        product:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Product'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductParametricCulture'
        productParametricMultiple:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductParametricMultiple'
    ProductParametricCulture:
      type: object
      additionalProperties: false
      properties:
        productId:
          type: integer
          description: The product identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        parametricId:
          type: integer
          description: The parametric identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        varcharValue:
          type: string
          description: The varchar value, if the parametric is of type text.
          maxLength: 255
          minLength: 0
          nullable: true
        htmlValue:
          type: string
          description: The html value, if the parametric is of type html.
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        productParametric:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ProductParametric'
    ProductParametricMultiple:
      type: object
      additionalProperties: false
      properties:
        productId:
          type: integer
          description: The product identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        parametricId:
          type: integer
          description: The parametric identifier.
          format: int32
        multipleId:
          type: integer
          description: The multiple item identifier.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        multiple:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ParametricMultiple'
        product:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Product'
        productParametric:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ProductParametric'
    ParametricMultiple:
      type: object
      additionalProperties: false
      required:
        - defaultValue
      properties:
        id:
          type: integer
          description: The unique identifier of the parametric multiple.
          format: int32
        parametricId:
          type: integer
          description: The parametric identifier.
          format: int32
        defaultValue:
          type: string
          description: The default value.
          maxLength: 255
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the multiple item.
          nullable: true
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the parametric multiple is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        code:
          type: string
          description: The code of the multiple item.
          maxLength: 50
          minLength: 0
          nullable: true
        imageKey:
          type: string
          description: The image key.
          format: guid
          nullable: true
        imagePath:
          type: string
          description: The image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        parametric:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Parametric'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ParametricMultipleCulture'
        productParametricMultiple:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductParametricMultiple'
    ParametricMultipleCulture:
      type: object
      additionalProperties: false
      properties:
        multipleId:
          type: integer
          description: The multiple item identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        value:
          type: string
          description: The culture specific value.
          maxLength: 255
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the multiple item.
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        multiple:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ParametricMultiple'
    VariantType:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the variant type.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        defaultName:
          type: string
          description: The default name of the variant type.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the variant type.
          maxLength: 500
          minLength: 0
          nullable: true
        parametricId:
          type: integer
          description: The parametric identifier.
          format: int32
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        code:
          type: string
          description: >-
            The code of the variant type. Should be same as the parametric code
            if ParametricId is set.
          maxLength: 50
          minLength: 0
          nullable: true
        parametric:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Parametric'
        variantGroupType:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/VariantGroupType'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/VariantTypeCulture'
    VariantGroupType:
      type: object
      additionalProperties: false
      properties:
        groupId:
          type: integer
          description: The group identifier.
          format: int32
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
        isActive:
          type: boolean
          description: Indicates whether the variant group type is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        group:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VariantGroup'
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VariantType'
    VariantGroup:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the variant group.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        defaultName:
          type: string
          description: The default name of the variant group.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the variant group.
          maxLength: 500
          minLength: 0
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the variant group is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        code:
          type: string
          description: The code of the variant group.
          maxLength: 50
          minLength: 0
          nullable: true
        variant:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Variant'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/VariantGroupCulture'
        groupTypes:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/VariantGroupType'
    Variant:
      type: object
      additionalProperties: false
      required:
        - defaultUniqueUrlName
      properties:
        id:
          type: integer
          description: The unique identifier of the variant.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        defaultName:
          type: string
          description: The default name of the variant.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultImagePath:
          type: string
          description: The default image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultThumbnailImagePath:
          type: string
          description: The default thumbnail image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultCampaignImagePath:
          type: string
          description: The default campaign image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultLargeImagePath:
          type: string
          description: The default large image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        groupId:
          type: integer
          description: The VariantGroup identifier.
          format: int32
          nullable: true
        alias:
          type: string
          description: The alias. Not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultTitle:
          type: string
          description: The default title. For SEO purposes.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultTags:
          type: string
          description: The default tags, not commonly used anymore.
          nullable: true
        defaultMetaTags:
          type: string
          description: The default meta tags, for SEO purposes.
          nullable: true
        defaultMetaDescription:
          type: string
          description: The default meta description, for SEO purposes.
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        imageKey:
          type: string
          description: The image key.
          format: guid
          nullable: true
        code:
          type: string
          description: The code of the variant. Grouping variants together.
          maxLength: 50
          minLength: 0
          nullable: true
        defaultUniqueUrlName:
          type: string
          description: The default unique url name.
          maxLength: 500
          minLength: 0
        key:
          type: string
          description: The key. Not used anymore.
          format: guid
        defaultImageAltText:
          type: string
          description: The default image alt text.
          nullable: true
        variantGroup:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VariantGroup'
        products:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Product'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/VariantCulture'
    VariantCulture:
      type: object
      additionalProperties: false
      properties:
        variantId:
          type: integer
          description: The variant identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The name of the variant in the specified culture.
          maxLength: 255
          minLength: 0
          nullable: true
        imagePath:
          type: string
          description: The image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        thumbnailImagePath:
          type: string
          description: The thumbnail image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        campaignImagePath:
          type: string
          description: The campaign image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        largeImagePath:
          type: string
          description: The large image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        title:
          type: string
          description: The title. For SEO purposes.
          maxLength: 255
          minLength: 0
          nullable: true
        tags:
          type: string
          description: The tags, not commonly used anymore.
          nullable: true
        metaTags:
          type: string
          description: The meta tags, for SEO purposes.
          nullable: true
        metaDescription:
          type: string
          description: The meta description, for SEO purposes.
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        uniqueUrlName:
          type: string
          description: >-
            The unique url name. An SEO friendly name that can be used in URLs.
            Should be unique across variants and products. Called UniqueName in
            commerce services, UniqueName in admin.
          maxLength: 500
          minLength: 0
          nullable: true
        isUniqueUrlNameManuallyMaintained:
          type: boolean
          description: >-
            Indicates whether the UniqueUrlName is handled by Norce (false) or
            by the user/integrations (true).
        imageKey:
          type: string
          description: The image key.
          format: guid
          nullable: true
        nameLastUpdated:
          type: string
          description: When the name field was last updated.
          format: date-time
          nullable: true
        nameLastUpdatedBy:
          type: integer
          description: The identifier of the user who last updated the name.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        imageAltText:
          type: string
          description: Culture specific image alt text.
          nullable: true
        variant:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Variant'
    VariantGroupCulture:
      type: object
      additionalProperties: false
      properties:
        groupId:
          type: integer
          description: The group identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The name of the variant group in the specified culture.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The description of the variant group in the specified culture.
          maxLength: 500
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        group:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VariantGroup'
    VariantTypeCulture:
      type: object
      additionalProperties: false
      properties:
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The name of the variant type in the specified culture.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The description of the variant type in the specified culture.
          maxLength: 500
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VariantType'
    ParametricGroupCulture:
      type: object
      additionalProperties: false
      properties:
        groupId:
          type: integer
          description: The parametric group identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the parametric group.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the parametric group.
          maxLength: 500
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        group:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ParametricGroup'
    CategorySalesArea:
      type: object
      additionalProperties: false
      properties:
        categoryId:
          type: integer
          description: The category identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        salesAreaId:
          type: integer
          description: The sales area identifier.
          format: int32
        vatCodeId:
          type: integer
          description: The vat code identifier.
          format: int32
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        category:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Category'
    CategoryStructureItem:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The unique identifier of the category structure item.
          format: int32
        structureId:
          type: integer
          description: The structure identifier.
          format: int32
        defaultName:
          type: string
          description: The default name of the category structure item.
          maxLength: 50
          minLength: 0
          nullable: true
        useCategoryName:
          type: boolean
          description: Indicates whether category name is used.
        categoryId:
          type: integer
          description: The category identifier.
          format: int32
          nullable: true
        manufacturerId:
          type: integer
          description: The manufacturer identifier.
          format: int32
          nullable: true
        targetPath:
          type: string
          description: The target path.
          maxLength: 255
          minLength: 0
          nullable: true
        structureLevel:
          type: integer
          description: The structure level.
          format: int32
        parentItemId:
          type: integer
          description: The parent item identifier.
          format: int32
          nullable: true
        isParent:
          type: boolean
          description: Indicates whether the category structure item is parent.
        isDisplayOnly:
          type: boolean
          description: Indicates whether the category structure item is display only.
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        key:
          type: string
          description: The key.
          format: guid
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        category:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Category'
        structure:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CategoryStructure'
    CategoryStructure:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the category structure.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        defaultName:
          type: string
          description: The default name of the category structure.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the category structure.
          maxLength: 500
          minLength: 0
          nullable: true
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
          nullable: true
        isPrimary:
          type: boolean
          description: Indicates whether the category structure is primary.
        isActive:
          type: boolean
          description: Indicates whether the category structure is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        items:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CategoryStructureItem'
    ProductCulture:
      type: object
      additionalProperties: false
      properties:
        productId:
          type: integer
          description: The product identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the product.
          maxLength: 255
          minLength: 0
          nullable: true
        nameLastUpdated:
          type: string
          description: The name last updated.
          format: date-time
          nullable: true
        nameLastUpdatedBy:
          type: integer
          description: The name last updated by.
          format: int32
          nullable: true
        subHeader:
          type: string
          description: The culture specific sub header of the product.
          maxLength: 255
          minLength: 0
          nullable: true
        subHeaderLastUpdated:
          type: string
          description: The sub header last updated.
          format: date-time
          nullable: true
        subHeaderLastUpdatedBy:
          type: integer
          description: The sub header last updated by.
          format: int32
          nullable: true
        subDescription:
          type: string
          description: The culture specific sub description of the product.
          nullable: true
        subDescriptionLastUpdated:
          type: string
          description: The sub description last updated.
          format: date-time
          nullable: true
        subDescriptionLastUpdatedBy:
          type: integer
          description: The sub description last updated by.
          format: int32
          nullable: true
        descriptionHeader:
          type: string
          description: The culture specific description header of the product.
          maxLength: 255
          minLength: 0
          nullable: true
        descriptionHeaderLastUpdated:
          type: string
          description: The description header last updated.
          format: date-time
          nullable: true
        descriptionHeaderLastUpdatedBy:
          type: integer
          description: The description header last updated by.
          format: int32
          nullable: true
        description:
          type: string
          description: The culture specific description of the product.
          nullable: true
        descriptionLastUpdated:
          type: string
          description: The description last updated.
          format: date-time
          nullable: true
        descriptionLastUpdatedBy:
          type: integer
          description: The description last updated by.
          format: int32
          nullable: true
        imagePath:
          type: string
          description: The image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        thumbnailImagePath:
          type: string
          description: The thumbnail image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        campaignImagePath:
          type: string
          description: The campaign image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        largeImagePath:
          type: string
          description: The large image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        imageLastUpdated:
          type: string
          description: The image last updated.
          format: date-time
          nullable: true
        imageLastUpdatedBy:
          type: integer
          description: The image last updated by.
          format: int32
          nullable: true
        synonyms:
          type: string
          description: The synonyms, commonly comma or blank space separated list of words.
          maxLength: 500
          minLength: 0
          nullable: true
        synonymsLastUpdated:
          type: string
          description: The synonyms last updated.
          format: date-time
          nullable: true
        synonymsLastUpdatedBy:
          type: integer
          description: The synonyms last updated by.
          format: int32
          nullable: true
        title:
          type: string
          description: The title of the product, for SEO purposes.
          maxLength: 255
          minLength: 0
          nullable: true
        tags:
          type: string
          description: The tags of the product, not used anymore.
          nullable: true
        metaTags:
          type: string
          description: The meta tags, for SEO purposes.
          nullable: true
        metaDescription:
          type: string
          description: The meta description, for SEO purposes.
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        uniqueUrlName:
          type: string
          description: >-
            The unique url name, a unique URL friendly name for the product,
            called UniqueName in the admin tool.
          maxLength: 500
          minLength: 0
          nullable: true
        isUniqueUrlNameManuallyMaintained:
          type: boolean
          description: >-
            Indicates whether the product culture's unique url name is manually
            maintained.
        imageKey:
          type: string
          description: The image key.
          format: guid
          nullable: true
        externalDescription:
          type: string
          description: The external description, not commonly used.
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        imageAltText:
          type: string
          description: The image alt text.
          nullable: true
        product:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Product'
    ProductFamily:
      type: object
      additionalProperties: false
      properties:
        productId:
          type: integer
          description: The product identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        familyId:
          type: integer
          description: The family identifier.
          format: int32
        isPrimary:
          type: boolean
          description: Indicates whether the product family is primary.
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the product family is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        family:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Family'
        product:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Product'
    Family:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the productfamily.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        code:
          type: string
          description: The code of the product family.
          maxLength: 50
          minLength: 0
          nullable: true
        defaultName:
          type: string
          description: The default name of the product family.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the product family.
          nullable: true
        defaultImagePath:
          type: string
          description: The default image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultThumbnailImagePath:
          type: string
          description: The default thumbnail image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultCampaignImagePath:
          type: string
          description: The default campaign image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultLargeImagePath:
          type: string
          description: The default large image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the product family is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        imageKey:
          type: string
          description: The image key.
          format: guid
          nullable: true
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/FamilyCulture'
        productFamily:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductFamily'
    FamilyCulture:
      type: object
      additionalProperties: false
      properties:
        familyId:
          type: integer
          description: The product family identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the product family.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the product family.
          nullable: true
        imagePath:
          type: string
          description: The image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        thumbnailImagePath:
          type: string
          description: The thumbnail image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        campaignImagePath:
          type: string
          description: The campaign image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        largeImagePath:
          type: string
          description: The large image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        imageKey:
          type: string
          description: The image key.
          format: guid
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        family:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Family'
    ProductFile:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The unique identifier of the asset on the product.
          format: int32
        productId:
          type: integer
          description: The product identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        fileId:
          type: integer
          description: The file type identifier.
          format: int32
        defaultName:
          type: string
          description: The default name of the product file or image.
          maxLength: 50
          minLength: 0
          nullable: true
        defaultDescription:
          type: string
          description: The default description of the product file or image.
          nullable: true
        defaultPath:
          type: string
          description: The default path, not used anymore.
          nullable: true
        defaultThumbnailPath:
          type: string
          description: The default thumbnail path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultSize:
          type: string
          description: The default size, not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the product file is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        fileKey:
          type: string
          description: >-
            The file key identifier, used for finding the asset from the
            storage.
          format: guid
          nullable: true
        isVariantUnique:
          type: boolean
          description: Indicates whether the product file is variant unique.
        code:
          type: string
          description: The code of the product file.
          maxLength: 255
          minLength: 0
          nullable: true
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
          nullable: true
        defaultAltText:
          type: string
          description: The default alt text, only used if the asset is an image.
          nullable: true
        product:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Product'
    ProductRelation:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The unique identifier of the product relation.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        productId:
          type: integer
          description: The identifier of the product having the relation.
          format: int32
        relatedProductId:
          type: integer
          description: The identifier of the related product.
          format: int32
        typeId:
          type: integer
          description: The product relation type identifier.
          format: int32
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
          nullable: true
        populationRuleId:
          type: integer
          description: >-
            The population rule identifier, if the relation is automatically
            created.
          format: int32
          nullable: true
        isProductVariantUnique:
          type: boolean
          description: >-
            Indicates whether the product with the relation is a specific
            variant.
        isRelatedProductVariantUnique:
          type: boolean
          description: Indicates whether the related product is a specific variant.
        defaultName:
          type: string
          description: >-
            The default name of the related product, overrides the related
            product's name, not commonly used.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultSubHeader:
          type: string
          description: >-
            The default sub header of the related product, overrides the related
            product's sub header, not commonly used.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultSubDescription:
          type: string
          description: >-
            The default sub description of the related product, overrides the
            related product's sub description, not commonly used.
          nullable: true
        defaultDescriptionHeader:
          type: string
          description: >-
            The default description header of the related product, overrides the
            related product's description header, not commonly used.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultDescription:
          type: string
          description: >-
            The default description of the related product, overrides the
            related product's description, not commonly used.
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the product relation is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        product:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Product'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductRelationCulture'
        relatedProduct:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Product'
    ProductRelationCulture:
      type: object
      additionalProperties: false
      properties:
        relationId:
          type: integer
          description: The relation identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        name:
          type: string
          description: >-
            The culture specific name of the product relation, not commonly
            used.
          maxLength: 255
          minLength: 0
          nullable: true
        subHeader:
          type: string
          description: >-
            The culture specific sub header of the product relation, not
            commonly used.
          maxLength: 255
          minLength: 0
          nullable: true
        subDescription:
          type: string
          description: >-
            The culture specific sub description of the product relation, not
            commonly used.
          nullable: true
        descriptionHeader:
          type: string
          description: >-
            The culture specific description header of the product relation, not
            commonly used.
          maxLength: 255
          minLength: 0
          nullable: true
        description:
          type: string
          description: >-
            The culture specific description of the product relation, not
            commonly used.
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        relation:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ProductRelation'
    SupplierProductSkuPriceList:
      type: object
      additionalProperties: false
      properties:
        partNo:
          type: string
          description: The supplier part number.
          maxLength: 50
          minLength: 0
          nullable: true
        supplierId:
          type: integer
          description: The internal identifier of the supplier.
          format: int32
        supplierPriceListId:
          type: integer
          description: The supplier price list identifier.
          format: int32
        qtyBreak:
          type: integer
          description: The quantity break.
          format: int32
        currencyId:
          type: integer
          description: The currency identifier.
          format: int32
        costPurchase:
          type: number
          description: The cost purchase.
          format: decimal
          nullable: true
        costPurchaseLastChecked:
          type: string
          description: The cost purchase last checked.
          format: date-time
          nullable: true
        costPurchaseLastUpdated:
          type: string
          description: The cost purchase last updated.
          format: date-time
          nullable: true
        costPurchaseLastUpdatedBy:
          type: integer
          description: The cost purchase last updated by.
          format: int32
          nullable: true
        costPurchaseValidTo:
          type: string
          description: The cost purchase valid to. Not commonly used.
          format: date-time
          nullable: true
        priceRecommended:
          type: number
          description: >-
            The price recommended. Can optionally be copied to the client price
            list.
          format: decimal
          nullable: true
        priceRecommendedLastUpdated:
          type: string
          description: The price recommended last updated.
          format: date-time
          nullable: true
        priceRecommendedLastUpdatedBy:
          type: integer
          description: The price recommended last updated by.
          format: int32
          nullable: true
        priceMax:
          type: number
          description: The price max. Not used anymore.
          format: decimal
          nullable: true
        priceMaxLastUpdated:
          type: string
          description: The price max last updated. Not used anymore.
          format: date-time
          nullable: true
        priceMaxLastUpdatedBy:
          type: integer
          description: The price max last updated by. Not used anymore.
          format: int32
          nullable: true
        priceDealer:
          type: number
          description: The price dealer. Not used anymore.
          format: decimal
          nullable: true
        priceDealerLastUpdated:
          type: string
          description: The price dealer last updated. Not used anymore.
          format: date-time
          nullable: true
        priceDealerLastUpdatedBy:
          type: integer
          description: The price dealer last updated by. Not used anymore.
          format: int32
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the supplier product sku price list is active.
        isActiveLastUpdated:
          type: string
          description: The is active last updated.
          format: date-time
          nullable: true
        stoppedDate:
          type: string
          description: The stopped date.
          format: date-time
          nullable: true
        isPromotion:
          type: boolean
          description: >-
            Indicates whether the supplier product sku price list is promotion.
            Not commonly used.
          nullable: true
        isFocus:
          type: boolean
          description: >-
            Indicates whether the supplier product sku price list is focus. Not
            commonly used.
          nullable: true
        priceRanking:
          type: integer
          description: The price ranking. Not used anymore.
          format: int32
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        freightCost:
          type: number
          description: The freight cost. Not commonly used.
          format: decimal
          nullable: true
        costFee:
          type: number
          description: The cost fee. Not commonly used.
          format: decimal
          nullable: true
        costFeeLastUpdated:
          type: string
          description: The cost fee last updated. Not commonly used.
          format: date-time
          nullable: true
        costFeeLastUpdatedBy:
          type: integer
          description: The cost fee last updated by. Not commonly used.
          format: int32
          nullable: true
        discountPct:
          type: number
          description: The discount pct. Not commonly used.
          format: decimal
          nullable: true
        discountPctLastUpdated:
          type: string
          description: The discount pct last updated. Not commonly used.
          format: date-time
          nullable: true
        discountPctLastUpdatedBy:
          type: integer
          description: The discount pct last updated by. Not commonly used.
          format: int32
          nullable: true
        priceCatalog:
          type: number
          description: The price catalog. Not commonly used.
          format: decimal
          nullable: true
        priceCatalogLastUpdated:
          type: string
          description: The price catalog last updated. Not commonly used.
          format: date-time
          nullable: true
        priceCatalogLastUpdatedBy:
          type: integer
          description: The price catalog last updated by. Not commonly used.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        priceList:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/SupplierPriceList'
        supplierProductSku:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/SupplierProductSku'
    SupplierPriceList:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the supplier price list.
          format: int32
        supplierId:
          type: integer
          description: The supplier identifier.
          format: int32
        manufacturerId:
          type: integer
          description: >-
            The manufacturer identifier. If the supplier is a manufacturer as
            well, not used anymore.
          format: int32
          nullable: true
        manufacturerCode:
          type: string
          description: >-
            The manufacturer code. If the supplier is a manufacturer as well,
            not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        defaultName:
          type: string
          description: The default name of the supplier price list.
          maxLength: 50
          minLength: 0
        code:
          type: string
          description: The code of the supplier price list.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The description of the supplier price list.
          maxLength: 100
          minLength: 0
          nullable: true
        endCustomer:
          type: string
          description: >-
            The end customer. A free text field that can be used to specify an
            end customer for the supplier price list. Can be used when the price
            list is a supplier specific agreement. But not commonly used.
          maxLength: 100
          minLength: 0
          nullable: true
        startDate:
          type: string
          description: The start date. Not used anymore.
          format: date-time
          nullable: true
        endDate:
          type: string
          description: The end date. Not used anymore.
          format: date-time
          nullable: true
        transferMethodId:
          type: integer
          description: The transfer method identifier. Not used anymore.
          format: int32
          nullable: true
        transferMethodValue:
          type: string
          description: The transfer method value. Not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        lastImported:
          type: string
          description: The last imported. Not used anymore.
          format: date-time
          nullable: true
        nextExpectedDate:
          type: string
          description: The next expected date. Not used anymore.
          format: date-time
          nullable: true
        isPrimary:
          type: boolean
          description: >-
            Indicates whether the supplier price list is primary. A supplier can
            have multiple price lists, but only one primary price list. The
            primary price list is the one that is used for the supplier when no
            specific price list is specified. Not commonly used.
        parentSupplierPriceListId:
          type: integer
          description: The parent supplier price list identifier. Not used anymore.
          format: int32
          nullable: true
        contact:
          type: string
          description: The contact. Not commonly used.
          maxLength: 50
          minLength: 0
          nullable: true
        comment:
          type: string
          description: A comment or note. Not commonly used.
          maxLength: 50
          minLength: 0
          nullable: true
        isSpecialTerms:
          type: boolean
          description: >-
            Indicates whether the supplier price list is special terms. Not
            commonly used.
          nullable: true
        isManuallyMaintained:
          type: boolean
          description: >-
            Indicates whether the supplier price list is manually maintained.
            Not used anymore.
        igniteSourceId:
          type: integer
          description: The ignite source identifier. Not used anymore.
          format: int32
          nullable: true
        igniteSourceLastImported:
          type: string
          description: The ignite source last imported. Not used anymore.
          format: date-time
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        currencyId:
          type: integer
          description: The currency identifier.
          format: int32
          nullable: true
        traderaStockCodeSeed:
          type: string
          description: The tradera stock code seed. Not used anymore.
          nullable: true
        traderaExternalStockCodeSeed:
          type: string
          description: The tradera external stock code seed. Not used anymore.
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        supplierProductSkuPriceList:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/SupplierProductSkuPriceList'
    ClientProductSkuSalesArea:
      type: object
      additionalProperties: false
      properties:
        partNo:
          type: string
          description: The part number.
          maxLength: 50
          minLength: 0
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        salesAreaId:
          type: integer
          description: The sales area identifier.
          format: int32
        vatCodeId:
          type: integer
          description: The vat code identifier.
          format: int32
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientProductSku:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientProductSku'
    ClientProductSkuStructureItem:
      type: object
      additionalProperties: false
      properties:
        structurePartNo:
          type: string
          description: The structure part number, the parent part number.
          maxLength: 50
          minLength: 0
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        partNo:
          type: string
          description: The part number, the child part number.
          maxLength: 50
          minLength: 0
          nullable: true
        qty:
          type: number
          description: The quantity of the child item in the structure.
          format: decimal
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        groupId:
          type: integer
          description: >-
            The group identifier, used to group configuration items, not
            currently in use.
          format: int32
          nullable: true
        itemSku:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientProductSku'
        info:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuStructureItemInfo'
        priceLists:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuStructureItemPriceList'
    ClientProductSkuStructureItemInfo:
      type: object
      additionalProperties: false
      required:
        - value
      properties:
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        structurePartNo:
          type: string
          description: The structure part number, the parent part number.
          maxLength: 50
          minLength: 0
          nullable: true
        partNo:
          type: string
          description: The part number, the child part number.
          maxLength: 50
          minLength: 0
          nullable: true
        code:
          type: string
          description: The code of the client product sku structure item info.
          maxLength: 50
          minLength: 0
          nullable: true
        value:
          type: string
          description: The value.
          maxLength: 255
          minLength: 0
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
        clientProductSkuStructureItem:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientProductSkuStructureItem'
    ClientProductSkuStructureItemPriceList:
      type: object
      additionalProperties: false
      properties:
        structurePartNo:
          type: string
          description: The structure part number, the parent part number.
          maxLength: 50
          minLength: 0
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        partNo:
          type: string
          description: The part number, the child part number.
          maxLength: 50
          minLength: 0
          nullable: true
        priceListId:
          type: integer
          description: The price list identifier.
          format: int32
        qtyBreak:
          type: integer
          description: The quantity break.
          format: int32
        itemPriceListId:
          type: integer
          description: >-
            The item price list identifier, should be same as the price list
            identifier.
          format: int32
        currencyId:
          type: integer
          description: The currency identifier.
          format: int32
        priceSale:
          type: number
          description: The price sale, the calculated item sale price.
          format: decimal
          nullable: true
        priceRuleId:
          type: integer
          description: The price rule identifier.
          format: int32
          nullable: true
        priceRuleValue:
          type: number
          description: The price rule value.
          format: decimal
          nullable: true
        costPurchase:
          type: number
          description: The cost purchase, from the item's own price list record.
          format: decimal
          nullable: true
        costUnit:
          type: number
          description: The cost unit, from the item's own price list record.
          format: decimal
          nullable: true
        supplementChargePercentage:
          type: number
          description: The supplement charge percentage.
          format: decimal
          nullable: true
        priceStandard:
          type: number
          description: The price standard, from the item's own price list record.
          format: decimal
          nullable: true
        priceRecommended:
          type: number
          description: The price recommended, from the item's own price list record.
          format: decimal
          nullable: true
        minimumMarginPercentage:
          type: number
          description: The minimum margin percentage.
          format: decimal
          nullable: true
        isActive:
          type: boolean
          description: >-
            Indicates whether the client product sku structure item price list
            is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        supplementCharge:
          type: number
          description: The supplement charge.
          format: decimal
          nullable: true
        limitToPriceRecommended:
          type: boolean
          description: Indicates whether limit to price recommended is enabled.
          nullable: true
        clientProductSkuStructureItem:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientProductSkuStructureItem'
    ClientProductSkuBestPrice:
      type: object
      additionalProperties: false
      required:
        - partNo
      properties:
        id:
          type: integer
          description: The unique identifier of the client product sku best price.
          format: int32
        partNo:
          type: string
          description: The part number.
          maxLength: 50
          minLength: 0
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
        qtyBreak:
          type: integer
          description: The quantity break.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        priceListId:
          type: integer
          description: The price list identifier.
          format: int32
        currencyId:
          type: integer
          description: The currency identifier.
          format: int32
        priceSale:
          type: number
          description: The price sale.
          format: decimal
        timeStamp:
          type: string
          description: The time stamp.
          format: date-time
        clientProductSku:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientProductSku'
    PriceListClient:
      type: object
      additionalProperties: false
      properties:
        priceListId:
          type: integer
          description: The price list identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        name:
          type: string
          description: The name of the price list client.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The description of the price list client.
          nullable: true
        imagePath:
          type: string
          description: The image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        agreement:
          type: string
          description: The agreement, called Code in the admin tool, and in connect.
          maxLength: 50
          minLength: 0
          nullable: true
        startDate:
          type: string
          description: The start date and time.
          format: date-time
          nullable: true
        endDate:
          type: string
          description: The end date and time.
          format: date-time
          nullable: true
        currencyId:
          type: integer
          description: The currency identifier.
          format: int32
        defaultPriceRuleId:
          type: integer
          description: >-
            The default price rule. Cost plus for purchase cost (1), fixed price
            (2), Margin for purchase cost (3), use recommended price (4), cost
            plus for unit cost (5), margin for unit cost (6), use standard price
            with discount in percent (7), competitive price based on purchase
            cost (8), competitive price based on unit cost (9), use standard
            price with discount in nominal value (10), and use catalog price
            (12), lastly structure calculation rule (11) is not allowed as
            default price rule.
          format: int32
          nullable: true
        defaultPriceRuleValue:
          type: number
          description: >-
            The default price rule value. Unit depends on the default price
            rule, for cost plus is represents an uplift in percent, for margin
            based rules it represents the margin in percent, for fixed price it
            represents the price (commonly 0), for use recommended price and use
            catalog price it represents the discount percentage, for competitive
            price based on purchase cost or unit cost it represents the target
            margin in percent, for use standard price with discount in percent
            it represents the discount percentage, and for use standard price
            with discount in nominal value it represents the nominal value.
          format: decimal
          nullable: true
        defaultSupplementChargePercentage:
          type: number
          description: >-
            The default supplement charge percentage. An additional charge added
            to the cost before the price rule calculation is applied. Only used
            when cost is a part of the price rule calculation, for example cost
            plus or margin based price rules, but also when minimum product
            margin is set.
          format: decimal
        defaultKickbackPercentage:
          type: number
          description: The default kickback percentage, not used anymore.
          format: decimal
          nullable: true
        defaultMinimumProductMarginPercentage:
          type: number
          description: >-
            The default minimum product margin percentage, the calculated price
            is compared to the minimum margin sale price and if the calculated
            price is lower than the minimum margin sale price, the minimum
            margin sale price is used.
          format: decimal
          nullable: true
        parentPriceListId:
          type: integer
          description: The parent price list identifier.
          format: int32
          nullable: true
        populationRuleId:
          type: integer
          description: The population rule identifier, Include (2), Exclude (4).
          format: int32
        chosenWarehouseId:
          type: integer
          description: >-
            The chosen warehouse identifier, marked as standard in the admin
            tool, gets the reservations from orders on this price list.
          format: int32
          nullable: true
        chosenLocationId:
          type: integer
          description: >-
            The chosen location identifier, marked as standard in the admin
            tool, gets the reservations from orders on this price list.
          format: int32
          nullable: true
        isErpUpdateable:
          type: boolean
          description: >-
            Indicates whether the price list client is erp updateable, not used
            anymore.
        isErpIntegrated:
          type: boolean
          description: >-
            Indicates whether the price list client is erp integrated, not used
            anymore.
        isPrimary:
          type: boolean
          description: >-
            Indicates whether the price list client is primary, can only be one
            primary price list per application.
        isPublic:
          type: boolean
          description: >-
            Indicates whether the price list client is public on the
            application.
          nullable: true
        isLimitedToStock:
          type: boolean
          description: >-
            Indicates whether the price list client is limited to stock, not
            used anymore.
          nullable: true
        isBid:
          type: boolean
          description: Indicates whether the price list client is bid, not used anymore.
          nullable: true
        isStako:
          type: boolean
          description: Indicates whether the price list client is stako, not used anymore.
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the price list client is active.
        stoppedDate:
          type: string
          description: The stopped date.
          format: date-time
          nullable: true
        stoppedBy:
          type: integer
          description: The stopped by.
          format: int32
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        imageKey:
          type: string
          description: The image key, not used anymore.
          format: guid
          nullable: true
        typeId:
          type: integer
          description: The price list type identifier.
          format: int32
        imageExtension:
          type: string
          description: The image extension, not used anymore.
          maxLength: 16
          minLength: 0
          nullable: true
        defaultSupplementCharge:
          type: number
          description: >-
            The default supplement charge. An additional charge added to the
            cost before the price rule calculation is applied. Only used when
            cost is a part of the price rule calculation, for example cost plus
            or margin based price rules, but also when minimum product margin is
            set. Only used if DefaultSupplementChargePercentage is not set.
          format: decimal
          nullable: true
        defaultLimitToPriceRecommended:
          type: boolean
          description: >-
            Indicates whether limit to price recommended is enabled by default.
            Restricts the price from being higher thant the price recommended by
            the system, commonly used in consumer retail scenarios.
          nullable: true
        isVirtual:
          type: boolean
          description: Indicates whether the price list client is virtual.
        salesAreaId:
          type: integer
          description: The sales area identifier.
          format: int32
          nullable: true
        inheritStructureCalculationRule:
          type: integer
          description: >-
            The inherit structure calculation rule, an option for deciding how
            structure calculation is inherited to this price list from its
            parent. Default the system will divide a discount proportionally
            between the different child items in the structure. The only other
            option is to apply the discount to the standard price for each item.
          format: int32
        applicationPriceList:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ApplicationPriceList'
        priceList:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/PriceList'
    ApplicationSalesArea:
      type: object
      additionalProperties: false
      properties:
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
        salesAreaId:
          type: integer
          description: The sales area identifier.
          format: int32
        isPrimary:
          type: boolean
          description: >-
            Indicates whether the application sales area is primary, only one
            primary sales area is allowed per application.
        isActive:
          type: boolean
          description: Indicates whether the application sales area is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
    ApplicationRole:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the application role.
          format: int32
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        defaultName:
          type: string
          description: The default name of the application role.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the application role.
          maxLength: 500
          minLength: 0
          nullable: true
        replacesApplicationRoleId:
          type: integer
          description: The replaces application role identifier.
          format: int32
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the application role is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        isDefault:
          type: boolean
          description: Indicates whether the application role is default.
        code:
          type: string
          description: The code of the application role.
          maxLength: 50
          minLength: 0
          nullable: true
        applicationAccount:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ApplicationAccount'
        applicationAccountApplicationRole:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ApplicationAccountApplicationRole'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ApplicationRoleCulture'
    ApplicationAccount:
      type: object
      additionalProperties: false
      required:
        - loginName
        - password
      properties:
        id:
          type: integer
          description: The unique identifier of the application account.
          format: int32
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
        key:
          type: string
          description: The key.
          format: guid
        loginName:
          type: string
          description: The login name.
          maxLength: 255
          minLength: 0
        password:
          type: string
          description: The password.
          format: byte
          maxLength: 4000
          minLength: 1
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        contactId:
          type: integer
          description: The contact identifier.
          format: int32
          nullable: true
        customerId:
          type: integer
          description: The customer identifier.
          format: int32
          nullable: true
        statusId:
          type: integer
          description: The status identifier.
          format: int32
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        roleId:
          type: integer
          description: The role identifier.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        roles:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ApplicationAccountApplicationRole'
        customer:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientCustomer'
        role:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ApplicationRole'
    ApplicationAccountApplicationRole:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The unique identifier of the application account application role.
          format: int32
        accountId:
          type: integer
          description: The account identifier.
          format: int32
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
          nullable: true
        applicationRoleId:
          type: integer
          description: The application role identifier.
          format: int32
        isActive:
          type: boolean
          description: >-
            Indicates whether the application account application role is
            active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        account:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ApplicationAccount'
        applicationRole:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ApplicationRole'
    ClientCustomer:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The unique identifier of the client customer.
          format: int32
        key:
          type: string
          description: The unique key of the client customer.
          format: guid
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        customerCodePrefix:
          type: string
          description: The customer code prefix.
          maxLength: 10
          minLength: 0
          nullable: true
        customerCode:
          type: string
          description: The customer code.
          maxLength: 50
          minLength: 0
          nullable: true
        typeId:
          type: integer
          description: The type identifier, Person (1).
          format: int32
        emailAddress:
          type: string
          description: The email address.
          maxLength: 255
          minLength: 0
          nullable: true
        socialSecurityNumber:
          type: string
          description: The social security number.
          maxLength: 50
          minLength: 0
          nullable: true
        title:
          type: string
          description: The title (e.g. Mr, Ms).
          maxLength: 10
          minLength: 0
          nullable: true
        firstName:
          type: string
          description: The first name.
          maxLength: 100
          minLength: 0
          nullable: true
        middleName:
          type: string
          description: The middle name.
          maxLength: 100
          minLength: 0
          nullable: true
        lastName:
          type: string
          description: The last name.
          maxLength: 100
          minLength: 0
          nullable: true
        suffix:
          type: string
          description: The name suffix.
          maxLength: 10
          minLength: 0
          nullable: true
        phoneNumber:
          type: string
          description: The phone number.
          maxLength: 50
          minLength: 0
          nullable: true
        cellPhoneNumber:
          type: string
          description: The cell phone number.
          maxLength: 50
          minLength: 0
          nullable: true
        referId:
          type: integer
          description: The refer identifier, not used anymore.
          format: int32
          nullable: true
        referUrl:
          type: string
          description: The refer URL, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        useBillingAddressAsShippingAddress:
          type: boolean
          description: >-
            Indicates whether the billing address is used as the shipping
            address.
        oldCustomerNoPrefix:
          type: string
          description: The old customer number prefix.
          maxLength: 10
          minLength: 0
          nullable: true
        oldCustomerNo:
          type: string
          description: The old customer number, used for historical reference.
          maxLength: 50
          minLength: 0
          nullable: true
        replacementCustomerId:
          type: integer
          description: The replacement customer identifier, used for historical reference.
          format: int32
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the client customer is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        lastOrderDate:
          type: string
          description: The date of the last order placed by this customer.
          format: date-time
          nullable: true
        normalizedSocialSecurityNumber:
          type: string
          description: The normalized social security number.
          maxLength: 50
          minLength: 0
          nullable: true
        applicationId:
          type: integer
          description: >-
            The application identifier, used when customers and companies are
            application specific.
          format: int32
          nullable: true
        isForgotten:
          type: boolean
          description: Indicates whether the client customer is forgotten.
        forgottenBy:
          type: integer
          description: The identifier of the user who marked the customer as forgotten.
          format: int32
          nullable: true
        forgottenDate:
          type: string
          description: The date and time the customer was marked as forgotten.
          format: date-time
          nullable: true
        stoppedDate:
          type: string
          description: The date and time the customer was stopped.
          format: date-time
          nullable: true
        stoppedBy:
          type: integer
          description: The identifier of the user who stopped the customer.
          format: int32
          nullable: true
        crmId:
          type: string
          description: The CRM identifier.
          maxLength: 50
          minLength: 0
          nullable: true
        account:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ApplicationAccount'
        addresses:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCustomerAddress'
        companies:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCustomerCompany'
        flags:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCustomerFlag'
        infos:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCustomerInfo'
        orders:
          type: array
          items:
            $ref: '#/components/schemas/Order'
    ClientCustomerAddress:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The unique identifier of the client customer address.
          format: int32
        customerId:
          type: integer
          description: The customer identifier.
          format: int32
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        careOf:
          type: string
          description: The care of.
          maxLength: 100
          minLength: 0
          nullable: true
        addressLine1:
          type: string
          description: The first line of the address.
          maxLength: 255
          minLength: 0
          nullable: true
        addressLine2:
          type: string
          description: The second line of the address.
          maxLength: 255
          minLength: 0
          nullable: true
        zipCode:
          type: string
          description: The zip code.
          maxLength: 50
          minLength: 0
          nullable: true
        city:
          type: string
          description: The city.
          maxLength: 50
          minLength: 0
          nullable: true
        region:
          type: string
          description: The region.
          maxLength: 50
          minLength: 0
          nullable: true
        countryId:
          type: integer
          description: The country identifier.
          format: int32
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        statusId:
          type: integer
          description: The status identifier, not used anymore.
          format: int32
          nullable: true
        statusUpdated:
          type: string
          description: The status updated.
          format: date-time
          nullable: true
        statusUpdatedBy:
          type: integer
          description: The status updated by.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        shippingPhoneNumber:
          type: string
          description: The shipping phone number.
          maxLength: 50
          minLength: 0
          nullable: true
        code:
          type: string
          description: The code of the client customer address.
          maxLength: 50
          minLength: 0
          nullable: true
        isPrimary:
          type: boolean
          description: Indicates whether the client customer address is primary.
        customer:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientCustomer'
    ClientCustomerCompany:
      type: object
      additionalProperties: false
      properties:
        customerId:
          type: integer
          description: The customer identifier.
          format: int32
        companyId:
          type: integer
          description: The company identifier.
          format: int32
        roleId:
          type: integer
          description: The role identifier, not used anymore.
          format: int32
          nullable: true
        customerCodePrefix:
          type: string
          description: The customer code prefix.
          maxLength: 10
          minLength: 0
          nullable: true
        customerCode:
          type: string
          description: The code for the customer in the company.
          maxLength: 50
          minLength: 0
          nullable: true
        department:
          type: string
          description: The department.
          maxLength: 255
          minLength: 0
          nullable: true
        organizationTitle:
          type: string
          description: The organization title.
          maxLength: 50
          minLength: 0
          nullable: true
        isPrimary:
          type: boolean
          description: Indicates whether the company is primary for the customer.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        company:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientCompany'
        customer:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientCustomer'
    ClientCompany:
      type: object
      additionalProperties: false
      required:
        - name
      properties:
        id:
          type: integer
          description: The unique identifier of the client company.
          format: int32
        key:
          type: string
          description: The key.
          format: guid
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        companyCodePrefix:
          type: string
          description: The company code prefix.
          maxLength: 10
          minLength: 0
          nullable: true
        companyCode:
          type: string
          description: The company code.
          maxLength: 50
          minLength: 0
          nullable: true
        typeId:
          type: integer
          description: The type identifier, Company (1).
          format: int32
        logoPath:
          type: string
          description: The logo path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        organizationNo:
          type: string
          description: The organization number.
          maxLength: 50
          minLength: 0
          nullable: true
        name:
          type: string
          description: The name of the client company.
          maxLength: 100
          minLength: 0
        emailAddress:
          type: string
          description: The email address.
          maxLength: 255
          minLength: 0
          nullable: true
        phoneNumber:
          type: string
          description: The phone number.
          maxLength: 50
          minLength: 0
          nullable: true
        faxNumber:
          type: string
          description: The fax number, not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        parentCompanyId:
          type: integer
          description: The parent company identifier.
          format: int32
          nullable: true
        referId:
          type: integer
          description: The refer identifier, not used anymore.
          format: int32
          nullable: true
        referUrl:
          type: string
          description: The refer url, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        useBillingAddressAsShippingAddress:
          type: boolean
          description: Indicates whether billing address as shipping address is used.
        oldCompanyCodePrefix:
          type: string
          description: The old company code prefix.
          maxLength: 10
          minLength: 0
          nullable: true
        oldCompanyCode:
          type: string
          description: The old company code, used for historical reference.
          maxLength: 50
          minLength: 0
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the client company is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        logoKey:
          type: string
          description: The logo key.
          format: guid
          nullable: true
        normalizedOrganizationNo:
          type: string
          description: The normalized organization number.
          maxLength: 50
          minLength: 0
          nullable: true
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
          nullable: true
        vatNo:
          type: string
          description: The vat number.
          maxLength: 50
          minLength: 0
          nullable: true
        addresses:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCompanyAddress'
        deliveryMethods:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCompanyDeliveryMethod'
        discounts:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCompanyDiscount'
        flags:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCompanyFlag'
        infos:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCompanyInfo'
        paymentMethods:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCompanyPaymentMethod'
        priceLists:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCompanyPriceList'
        customers:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCustomerCompany'
        inverseParentCompany:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCompany'
        parentCompany:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientCompany'
    ClientCompanyAddress:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The unique identifier of the client company address.
          format: int32
        companyId:
          type: integer
          description: The company identifier.
          format: int32
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        careOf:
          type: string
          description: The care of.
          maxLength: 100
          minLength: 0
          nullable: true
        addressLine1:
          type: string
          description: The first line of the address.
          maxLength: 255
          minLength: 0
          nullable: true
        addressLine2:
          type: string
          description: The second line of the address.
          maxLength: 255
          minLength: 0
          nullable: true
        zipCode:
          type: string
          description: The zip code.
          maxLength: 50
          minLength: 0
          nullable: true
        city:
          type: string
          description: The city.
          maxLength: 50
          minLength: 0
          nullable: true
        region:
          type: string
          description: The region.
          maxLength: 100
          minLength: 0
          nullable: true
        countryId:
          type: integer
          description: The country identifier.
          format: int32
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        statusId:
          type: integer
          description: The status identifier, not used anymore.
          format: int32
          nullable: true
        statusUpdated:
          type: string
          description: The status updated.
          format: date-time
          nullable: true
        statusUpdatedBy:
          type: integer
          description: The status updated by.
          format: int32
          nullable: true
        gln:
          type: string
          description: The GLN.
          maxLength: 50
          minLength: 0
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        shippingPhoneNumber:
          type: string
          description: The shipping phone number.
          maxLength: 50
          minLength: 0
          nullable: true
        code:
          type: string
          description: The code of the client company address.
          maxLength: 50
          minLength: 0
          nullable: true
        isPrimary:
          type: boolean
          description: Indicates whether the client company address is primary.
        company:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientCompany'
    ClientCompanyDeliveryMethod:
      type: object
      additionalProperties: false
      properties:
        companyId:
          type: integer
          description: The company identifier.
          format: int32
        code:
          type: string
          description: >-
            The overriden code of the delivery method for the company, not used
            anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the client company delivery method is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        company:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientCompany'
    ClientCompanyDiscount:
      type: object
      additionalProperties: false
      properties:
        companyId:
          type: integer
          description: The company identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        typeId:
          type: integer
          description: The type identifier, Category (1), Product Flag (3).
          format: int32
        valueCode:
          type: string
          description: The value code, either category code or product flag code.
          maxLength: 50
          minLength: 0
          nullable: true
        discountPct:
          type: number
          description: The discount in pct.
          format: decimal
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        priceListTypeIdSeed:
          type: string
          description: >-
            The price list type id seed, comma separated list of price list
            types.
          maxLength: 50
          minLength: 0
          nullable: true
        company:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientCompany'
    ClientCompanyFlag:
      type: object
      additionalProperties: false
      properties:
        companyId:
          type: integer
          description: The company identifier.
          format: int32
        flagId:
          type: integer
          description: The flag identifier.
          format: int32
        isActive:
          type: boolean
          description: Indicates whether the client company flag is active.
        stoppedDate:
          type: string
          description: The stopped date.
          format: date-time
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        company:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientCompany'
        flag:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CustomerFlag'
    CustomerFlag:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the customer flag.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        groupId:
          type: integer
          description: The group identifier.
          format: int32
        defaultName:
          type: string
          description: The default name of the customer flag.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the customer flag.
          maxLength: 500
          minLength: 0
          nullable: true
        availableOnCustomer:
          type: boolean
          description: Indicates whether available on customer is enabled (CustomerFlag).
        availableOnCompany:
          type: boolean
          description: Indicates whether available on company is enabled (CompanyFlag).
        isActive:
          type: boolean
          description: Indicates whether the customer flag is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        isDefault:
          type: boolean
          description: Indicates whether the customer flag is default, not used anymore.
        externalReference:
          type: string
          description: >-
            The external reference, called 'Code' in other APIs and in the admin
            tool.
          maxLength: 50
          minLength: 0
          nullable: true
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
          nullable: true
        clientCompanyFlag:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCompanyFlag'
        clientCustomerFlag:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCustomerFlag'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CustomerFlagCulture'
        group:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CustomerFlagGroup'
    ClientCustomerFlag:
      type: object
      additionalProperties: false
      properties:
        customerId:
          type: integer
          description: The customer identifier.
          format: int32
        flagId:
          type: integer
          description: The flag identifier.
          format: int32
        isActive:
          type: boolean
          description: Indicates whether the client customer flag is active.
        stoppedDate:
          type: string
          description: The stopped date.
          format: date-time
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        customer:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientCustomer'
        flag:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CustomerFlag'
    CustomerFlagCulture:
      type: object
      additionalProperties: false
      properties:
        flagId:
          type: integer
          description: The flag identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the customer flag.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the customer flag.
          maxLength: 500
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        flag:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CustomerFlag'
    CustomerFlagGroup:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The unique identifier of the customer flag group.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        defaultName:
          type: string
          description: The default name of the customer flag group.
          maxLength: 50
          minLength: 0
          nullable: true
        defaultDescription:
          type: string
          description: The default description of the customer flag group.
          maxLength: 500
          minLength: 0
          nullable: true
        isMultipleChoice:
          type: boolean
          description: >-
            Indicates whether the customer flag group is multiple choice, if
            true, multiple flags can be selected from the same group, otherwise
            any flag already set will be cleared automatically when setting a
            new flag in the same group.
        isActive:
          type: boolean
          description: Indicates whether the customer flag group is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        customerFlag:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CustomerFlag'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CustomerFlagGroupCulture'
    CustomerFlagGroupCulture:
      type: object
      additionalProperties: false
      properties:
        groupId:
          type: integer
          description: The customer flaggroup identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the customer flag group.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the customer flag group.
          maxLength: 500
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        group:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CustomerFlagGroup'
    ClientCompanyInfo:
      type: object
      additionalProperties: false
      required:
        - value
      properties:
        id:
          type: integer
          description: The unique identifier of the client company info type.
          format: int32
        companyId:
          type: integer
          description: The company identifier.
          format: int32
        typeId:
          type: integer
          description: The type identifier of the client company info.
          format: int32
        value:
          type: string
          description: The value of the client company info.
          minLength: 1
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        company:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientCompany'
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CustomerInfoType'
    CustomerInfoType:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the customer info type.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        groupId:
          type: integer
          description: >-
            The group identifier, Customer Info (1), Division Info (4), Company
            Info (6), Supplier Info (7).
          format: int32
        defaultName:
          type: string
          description: The default name of the customer info type.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the customer info type.
          maxLength: 500
          minLength: 0
          nullable: true
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
        isActive:
          type: boolean
          description: Indicates whether the customer info type is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        code:
          type: string
          description: The code of the customer info type.
          maxLength: 50
          minLength: 0
          nullable: true
        clientCompanyInfo:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCompanyInfo'
        clientCustomerInfo:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientCustomerInfo'
        clientDivisionInfo:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientDivisionInfo'
        clientSupplierInfo:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientSupplierInfo'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CustomerInfoTypeCulture'
    ClientCustomerInfo:
      type: object
      additionalProperties: false
      required:
        - value
      properties:
        id:
          type: integer
          description: The unique identifier of the customer info.
          format: int32
        customerId:
          type: integer
          description: The customer identifier.
          format: int32
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        value:
          type: string
          description: The value.
          minLength: 1
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        customer:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientCustomer'
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CustomerInfoType'
    ClientDivisionInfo:
      type: object
      additionalProperties: false
      required:
        - value
      properties:
        id:
          type: integer
          description: The unique identifier of the client division info type.
          format: int32
        divisionId:
          type: integer
          description: The division identifier.
          format: int32
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        value:
          type: string
          description: The value.
          minLength: 1
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        division:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientDivision'
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CustomerInfoType'
    ClientDivision:
      type: object
      additionalProperties: false
      required:
        - defaultName
        - defaultUniqueUrlName
      properties:
        id:
          type: integer
          description: The unique identifier of the division (store).
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        divisionCode:
          type: string
          description: The division (store) code.
          maxLength: 50
          minLength: 0
          nullable: true
        defaultName:
          type: string
          description: The default name of the division (store).
          maxLength: 50
          minLength: 0
        defaultGroupName:
          type: string
          description: The default group name of the division (store).
          maxLength: 50
          minLength: 0
          nullable: true
        defaultSubGroupName:
          type: string
          description: The default sub group name of the division (store).
          maxLength: 50
          minLength: 0
          nullable: true
        defaultDescription:
          type: string
          description: The default description of the division (store).
          nullable: true
        defaultImagePath:
          type: string
          description: The default image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        isPublic:
          type: boolean
          description: Indicates whether the division (store) is public.
        isActive:
          type: boolean
          description: Indicates whether the division (store) is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        key:
          type: string
          description: The key.
          format: guid
        imageKey:
          type: string
          description: The image key.
          format: guid
          nullable: true
        defaultUniqueUrlName:
          type: string
          description: The default unique url name.
          maxLength: 100
          minLength: 0
        latitude:
          type: number
          description: The latitude.
          format: double
          nullable: true
        longitude:
          type: number
          description: The longitude.
          format: double
          nullable: true
        emailAddress:
          type: string
          description: The email address.
          maxLength: 255
          minLength: 0
          nullable: true
        phoneNumber:
          type: string
          description: The phone number.
          maxLength: 50
          minLength: 0
          nullable: true
        faxNumber:
          type: string
          description: The fax number, not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        addressLine1:
          type: string
          description: The first line of the address.
          maxLength: 255
          minLength: 0
          nullable: true
        addressLine2:
          type: string
          description: The second line of the address.
          maxLength: 255
          minLength: 0
          nullable: true
        zipCode:
          type: string
          description: The zip code.
          maxLength: 50
          minLength: 0
          nullable: true
        city:
          type: string
          description: The city.
          maxLength: 50
          minLength: 0
          nullable: true
        region:
          type: string
          description: The region.
          maxLength: 100
          minLength: 0
          nullable: true
        countryId:
          type: integer
          description: The country identifier.
          format: int32
          nullable: true
        openHoursWeekday:
          type: string
          description: The open hours weekday.
          maxLength: 255
          minLength: 0
          nullable: true
        openHoursSaturday:
          type: string
          description: The open hours saturday.
          maxLength: 255
          minLength: 0
          nullable: true
        openHoursSunday:
          type: string
          description: The open hours sunday.
          maxLength: 255
          minLength: 0
          nullable: true
        applications:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientDivisionApplication'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientDivisionCulture'
        infos:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientDivisionInfo'
        priceLists:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientDivisionPriceList'
        warehouses:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientDivisionWarehouse'
    ClientDivisionApplication:
      type: object
      additionalProperties: false
      properties:
        divisionId:
          type: integer
          description: The division (store) identifier.
          format: int32
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        division:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientDivision'
    ClientDivisionCulture:
      type: object
      additionalProperties: false
      properties:
        divisionId:
          type: integer
          description: The division (store) identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the division (store).
          maxLength: 50
          minLength: 0
          nullable: true
        groupName:
          type: string
          description: The culture specific group name of the division (store).
          maxLength: 50
          minLength: 0
          nullable: true
        subGroupName:
          type: string
          description: The culture specific sub group name of the division (store).
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the division (store).
          nullable: true
        imagePath:
          type: string
          description: The image path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        uniqueUrlName:
          type: string
          description: The unique url name.
          maxLength: 100
          minLength: 0
          nullable: true
        isUniqueUrlNameManuallyMaintained:
          type: boolean
          description: >-
            Indicates whether the division (store) culture is unique url name
            manually maintained.
        imageKey:
          type: string
          description: The image key.
          format: guid
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        division:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientDivision'
    ClientDivisionPriceList:
      type: object
      additionalProperties: false
      properties:
        divisionId:
          type: integer
          description: The division (store) identifier.
          format: int32
        priceListId:
          type: integer
          description: The price list identifier.
          format: int32
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        division:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientDivision'
    ClientDivisionWarehouse:
      type: object
      additionalProperties: false
      properties:
        divisionId:
          type: integer
          description: The division (store) identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        warehouseId:
          type: integer
          description: The warehouse identifier.
          format: int32
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        locations:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientDivisionWarehouseLocation'
        division:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientDivision'
    ClientDivisionWarehouseLocation:
      type: object
      additionalProperties: false
      properties:
        divisionId:
          type: integer
          description: The division (store) identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        warehouseId:
          type: integer
          description: The warehouse identifier.
          format: int32
        locationId:
          type: integer
          description: The location identifier.
          format: int32
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        clientDivisionWarehouse:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientDivisionWarehouse'
    ClientSupplierInfo:
      type: object
      additionalProperties: false
      required:
        - value
      properties:
        id:
          type: integer
          description: The unique identifier of the client supplier info type.
          format: int32
        supplierId:
          type: integer
          description: The supplier identifier.
          format: int32
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        value:
          type: string
          description: The value.
          minLength: 1
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        clientSupplier:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientSupplier'
        supplier:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Supplier'
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CustomerInfoType'
    ClientSupplier:
      type: object
      additionalProperties: false
      properties:
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        supplierId:
          type: integer
          description: The supplier identifier.
          format: int32
        supplierCodePrefix:
          type: string
          description: The supplier code prefix, not used anymore.
          maxLength: 10
          minLength: 0
          nullable: true
        supplierCode:
          type: string
          description: The supplier code.
          maxLength: 50
          minLength: 0
          nullable: true
        name:
          type: string
          description: The name of the client supplier.
          maxLength: 100
          minLength: 0
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the client supplier is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        infos:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientSupplierInfo'
        warehouses:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientSupplierWarehouse'
        warehouseLocations:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientSupplierWarehouseLocation'
        supplier:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Supplier'
    ClientSupplierWarehouse:
      type: object
      additionalProperties: false
      properties:
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        supplierId:
          type: integer
          description: The supplier identifier.
          format: int32
        warehouseId:
          type: integer
          description: The warehouse identifier.
          format: int32
        name:
          type: string
          description: The name of the client supplier warehouse.
          maxLength: 50
          minLength: 0
          nullable: true
        standardLeadTimeDayCount:
          type: integer
          description: The standard lead time day count.
          format: int32
          nullable: true
        minimumOrderValue:
          type: number
          description: The minimum order value, not used anymore.
          format: decimal
          nullable: true
        minimumOrderValueCost:
          type: number
          description: The minimum order value cost, not used anymore.
          format: decimal
          nullable: true
        freightCost:
          type: number
          description: The freight cost, not used anymore.
          format: decimal
          nullable: true
        costBlock:
          type: integer
          description: The cost block, not used anymore.
          format: int32
          nullable: true
        isConsignment:
          type: boolean
          description: >-
            Indicates whether the client supplier warehouse is consignment, not
            currently in use.
          nullable: true
        includeInStockCalculation:
          type: boolean
          description: >-
            Indicates whether in stock calculation is included, not used
            anymore.
        transferMethodId:
          type: integer
          description: The transfer method identifier, not used anymore.
          format: int32
          nullable: true
        transferMethodValue:
          type: string
          description: The transfer method value, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientSupplier:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientSupplier'
    ClientSupplierWarehouseLocation:
      type: object
      additionalProperties: false
      properties:
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        supplierId:
          type: integer
          description: The supplier identifier.
          format: int32
        warehouseId:
          type: integer
          description: The warehouse identifier.
          format: int32
        locationId:
          type: integer
          description: The location identifier.
          format: int32
        name:
          type: string
          description: The name of the client supplier warehouse location.
          maxLength: 50
          minLength: 0
          nullable: true
        standardLeadTimeDayCount:
          type: integer
          description: The standard lead time day count.
          format: int32
          nullable: true
        minimumOrderValue:
          type: number
          description: The minimum order value, not used anymore.
          format: decimal
          nullable: true
        minimumOrderValueCost:
          type: number
          description: The minimum order value cost, not used anymore.
          format: decimal
          nullable: true
        freightCost:
          type: number
          description: The freight cost, not used anymore.
          format: decimal
          nullable: true
        costBlock:
          type: integer
          description: The cost block, not used anymore.
          format: int32
          nullable: true
        isConsignment:
          type: boolean
          description: >-
            Indicates whether the client supplier warehouse location is
            consignment, not currently in use.
          nullable: true
        includeInStockCalculation:
          type: boolean
          description: >-
            Indicates whether in stock calculation is included, not used
            anymore.
          nullable: true
        transferMethodId:
          type: integer
          description: The transfer method identifier, not used anymore.
          format: int32
          nullable: true
        transferMethodValue:
          type: string
          description: The transfer method value, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        supportsReservation:
          type: boolean
          description: >-
            Indicates whether supports reservation is enabled, not currently in
            use.
        supportsStockQuery:
          type: boolean
          description: >-
            Indicates whether supports stock query is enabled, not currently in
            use.
        clientSupplier:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientSupplier'
    Supplier:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The unique identifier of the supplier.
          format: int32
        corporationId:
          type: integer
          description: The corporation identifier.
          format: int32
        isActive:
          type: boolean
          description: Indicates whether the supplier is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        key:
          type: string
          description: A unique identifier for the supplier, not commonly used.
          format: guid
        secretKey:
          type: string
          description: The secret key. Not used anymore.
          format: guid
        clientSupplier:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientSupplier'
        clientSupplierInfo:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientSupplierInfo'
        corporation:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Corporation'
    Corporation:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the corporation.
          format: int32
        key:
          type: string
          description: The key.
          format: guid
        organizationNo:
          type: string
          description: The organization number.
          maxLength: 50
          minLength: 0
          nullable: true
        defaultName:
          type: string
          description: The default name of the corporation.
          maxLength: 100
          minLength: 0
        isActive:
          type: boolean
          description: Indicates whether the corporation is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        manufacturer:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Manufacturer'
        supplier:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Supplier'
    Manufacturer:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The unique identifier of the manufacturer.
          format: int32
        corporationId:
          type: integer
          description: The corporation identifier.
          format: int32
        isActive:
          type: boolean
          description: Indicates whether the manufacturer is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        key:
          type: string
          description: The key.
          format: guid
        clientManufacturers:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientManufacturer'
        corporation:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Corporation'
    ClientManufacturer:
      type: object
      additionalProperties: false
      required:
        - uniqueUrlName
      properties:
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        manufacturerId:
          type: integer
          description: The manufacturer identifier.
          format: int32
        manufacturerCode:
          type: string
          description: The manufacturer code.
          maxLength: 50
          minLength: 0
          nullable: true
        name:
          type: string
          description: The name of the client manufacturer.
          maxLength: 100
          minLength: 0
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the client manufacturer is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        uniqueUrlName:
          type: string
          description: The unique url name.
          maxLength: 255
          minLength: 0
        isUniqueUrlNameManuallyMaintained:
          type: boolean
          description: >-
            Indicates whether the client manufacturer is unique url name
            manually maintained.
        manufacturer:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Manufacturer'
        info:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ManufacturerInfo'
    ManufacturerInfo:
      type: object
      additionalProperties: false
      properties:
        manufacturerId:
          type: integer
          description: The manufacturer identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        prefix:
          type: string
          description: The prefix, not commonly used.
          maxLength: 50
          minLength: 0
          nullable: true
        website:
          type: string
          description: The website.
          maxLength: 255
          minLength: 0
          nullable: true
        logoPath:
          type: string
          description: The logo path.
          maxLength: 255
          minLength: 0
          nullable: true
        assortmentId:
          type: integer
          description: The assortment identifier, not used anymore.
          format: int32
          nullable: true
        populationRuleId:
          type: integer
          description: The population rule identifier, not used anymore.
          format: int32
        defaultSupportUrl:
          type: string
          description: The default support url, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultSupportEmailAddress:
          type: string
          description: The default support email address, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultSupportPhoneNumber:
          type: string
          description: The default support phone number, not used anymore.
          maxLength: 500
          minLength: 0
          nullable: true
        defaultSupportAvailableHours:
          type: string
          description: The default support available hours, not used anymore.
          nullable: true
        defaultSupportPolicy:
          type: string
          description: The default support policy, not used anymore.
          nullable: true
        defaultSupportDescription:
          type: string
          description: The default support description, not used anymore.
          nullable: true
        defaultInternalSupportUrl:
          type: string
          description: The default internal support url, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultInternalSupportEmailAddress:
          type: string
          description: The default internal support email address, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultInternalSupportPhoneNumber:
          type: string
          description: The default internal support phone number, not used anymore.
          maxLength: 500
          minLength: 0
          nullable: true
        defaultInternalSupportAvailableHours:
          type: string
          description: The default internal support available hours, not used anymore.
          nullable: true
        defaultInternalSupportPolicy:
          type: string
          description: The default internal support policy, not used anymore.
          nullable: true
        defaultInternalSupportDescription:
          type: string
          description: The default internal support description, not used anymore.
          nullable: true
        alias:
          type: string
          description: The alias.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultTitle:
          type: string
          description: The default title, not commonly used.
          maxLength: 255
          minLength: 0
          nullable: true
        defaultTags:
          type: string
          description: The default tags, not commonly used.
          nullable: true
        defaultMetaTags:
          type: string
          description: The default meta tags, not commonly used.
          nullable: true
        defaultMetaDescription:
          type: string
          description: The default meta description, not commonly used.
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        logoKey:
          type: string
          description: The logo key.
          format: guid
          nullable: true
        clientManufacturer:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientManufacturer'
    CustomerInfoTypeCulture:
      type: object
      additionalProperties: false
      properties:
        typeId:
          type: integer
          description: The info type identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the customer info type.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the customer info type.
          maxLength: 500
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CustomerInfoType'
    ClientCompanyPaymentMethod:
      type: object
      additionalProperties: false
      properties:
        companyId:
          type: integer
          description: The company identifier.
          format: int32
        code:
          type: string
          description: The code of the client company payment method.
          maxLength: 50
          minLength: 0
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the client company payment method is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        invoiceCaptureCode:
          type: string
          description: The invoice capture code.
          maxLength: 100
          minLength: 0
          nullable: true
        company:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientCompany'
    ClientCompanyPriceList:
      type: object
      additionalProperties: false
      properties:
        companyId:
          type: integer
          description: The company identifier.
          format: int32
        priceListId:
          type: integer
          description: The price list identifier.
          format: int32
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        isExclusive:
          type: boolean
          description: Indicates whether the client company price list is exclusive.
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        company:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientCompany'
    Order:
      type: object
      additionalProperties: false
      required:
        - orderNo
      properties:
        buyerCustomer:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientCustomer'
        id:
          type: integer
          description: The unique identifier of the order.
          format: int64
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
        quotationId:
          type: integer
          description: The quotation identifier.
          format: int32
          nullable: true
        orderNo:
          type: string
          description: >-
            The order number, commonly same as quotation id unless overriden
            from the ERP confirmation response.
          maxLength: 50
          minLength: 0
        orderDate:
          type: string
          description: The date the order was placed.
          format: date-time
        buyerCompanyCode:
          type: string
          description: The buyer company code.
          maxLength: 50
          minLength: 0
          nullable: true
        buyerCompanyId:
          type: integer
          description: The buyer company identifier.
          format: int32
          nullable: true
        buyerCustomerCode:
          type: string
          description: The buyer customer code.
          maxLength: 50
          minLength: 0
          nullable: true
        buyerCustomerId:
          type: integer
          description: The buyer customer identifier.
          format: int32
          nullable: true
        payerCompanyCode:
          type: string
          description: The payer company code.
          maxLength: 50
          minLength: 0
          nullable: true
        payerCompanyId:
          type: integer
          description: The payer company identifier.
          format: int32
          nullable: true
        payerCustomerCode:
          type: string
          description: The payer customer code.
          maxLength: 50
          minLength: 0
          nullable: true
        payerCustomerId:
          type: integer
          description: The payer customer identifier.
          format: int32
          nullable: true
        resellerCompanyCode:
          type: string
          description: The reseller company code, not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        resellerCompanyId:
          type: integer
          description: The reseller company identifier, not used anymore.
          format: int32
          nullable: true
        resellerCustomerCode:
          type: string
          description: The reseller customer code, not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        resellerCustomerId:
          type: integer
          description: The reseller customer identifier, not used anymore.
          format: int32
          nullable: true
        groupCode:
          type: string
          description: The group code, not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        statusId:
          type: integer
          description: >-
            The status identifier, common values are Created (0), Allocation
            (1), Confirmed (2), Delivered (4), Invoiced (5), Cancelled (6),
            Partly delivered (8).
          format: int32
        salesRepContactId:
          type: integer
          description: The sales representative contact identifier, not used anymore.
          format: int32
          nullable: true
        source:
          type: string
          description: >-
            The source of the order, 'WEB' is reserved for orders coming through
            Norce shopping and checkout processes.
          maxLength: 255
          minLength: 0
          nullable: true
        deliveryTerms:
          type: string
          description: The delivery terms, not used anymore.
          maxLength: 10
          minLength: 0
          nullable: true
        deliveryMode:
          type: string
          description: The delivery mode, code from the DeliveryMethod setting.
          maxLength: 50
          minLength: 0
          nullable: true
        deliveryDate:
          type: string
          description: The delivery date.
          format: date-time
          nullable: true
        isPartDelivery:
          type: boolean
          description: >-
            Indicates whether the order is partly delivered, can be true if
            goods ordered is partly delivered by a DeliveryNote.
        paymentTerms:
          type: string
          description: The payment terms, code from the PaymentMethod setting.
          maxLength: 100
          minLength: 0
          nullable: true
        currencyId:
          type: integer
          description: The currency identifier.
          format: int32
        vatRate:
          type: number
          description: The VAT rate, not used anymore.
          format: decimal
        cashDiscount:
          type: number
          description: The cash discount amount, not used anymore.
          format: decimal
        lineDiscount:
          type: number
          description: The line discount amount, not used anymore.
          format: decimal
        freightCost:
          type: number
          description: >-
            The freight cost excluding VAT, the same as the lineamount on the
            freight order item.
          format: decimal
        orderFee:
          type: number
          description: The order fee, not used anymore.
          format: decimal
        deliveryAttention:
          type: string
          description: The delivery attention line, often name of the delivery recipient.
          maxLength: 100
          minLength: 0
          nullable: true
        deliveryCareOf:
          type: string
          description: The delivery care of line.
          maxLength: 100
          minLength: 0
          nullable: true
        deliveryAddressLine1:
          type: string
          description: The first line of the delivery address.
          maxLength: 255
          minLength: 0
          nullable: true
        deliveryAddressLine2:
          type: string
          description: The second line of the delivery address.
          maxLength: 255
          minLength: 0
          nullable: true
        deliveryZipCode:
          type: string
          description: The delivery zip code.
          maxLength: 50
          minLength: 0
          nullable: true
        deliveryCity:
          type: string
          description: The delivery city.
          maxLength: 50
          minLength: 0
          nullable: true
        deliveryRegion:
          type: string
          description: The delivery region.
          maxLength: 100
          minLength: 0
          nullable: true
        deliveryCountryId:
          type: integer
          description: The delivery country identifier.
          format: int32
          nullable: true
        ledgerAccount:
          type: string
          description: The ledger account, not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        department:
          type: string
          description: The department, not used anymore.
          maxLength: 10
          minLength: 0
          nullable: true
        centre:
          type: string
          description: The centre, not used anymore.
          maxLength: 10
          minLength: 0
          nullable: true
        externalPurchaseNo:
          type: string
          description: >-
            The external purchase number, not used anymore, usually has the
            quotation id.
          maxLength: 50
          minLength: 0
          nullable: true
        salesCode:
          type: string
          description: The sales code, not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        deliveryMark:
          type: string
          description: >-
            The delivery mark, copied from the CustomerOrderReference in the
            Quotation.
          maxLength: 255
          minLength: 0
          nullable: true
        invoiceMark:
          type: string
          description: >-
            The invoice mark, copied from the CustomerInvoiceReference in the
            Quotation.
          maxLength: 255
          minLength: 0
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        payerCustomerInfoId:
          type: integer
          description: >-
            The payer customer info identifier, lookup key for CustomerInfo,
            where customer data is stored for guest customers, not having a
            ClientCustomer record.
          format: int64
          nullable: true
        estimatedDeliveryTime:
          type: string
          description: The estimated delivery time, not used anymore.
          format: date-time
          nullable: true
        deliveryTime:
          type: string
          description: The actual delivery time, not used anymore.
          format: date-time
          nullable: true
        buyerCustomerInfoId:
          type: integer
          description: >-
            The buyer customer info identifier, lookup key for CustomerInfo,
            where customer data is stored for guest customers, not having a
            ClientCustomer record.
          format: int64
          nullable: true
        shipToCustomerInfoId:
          type: integer
          description: >-
            The ship-to customer info identifier, lookup key for CustomerInfo,
            where customer data is stored for guest customers, not having a
            ClientCustomer record.
          format: int64
          nullable: true
        externalRef:
          type: string
          description: The external reference, not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        paymentMethodId:
          type: integer
          description: The payment method identifier.
          format: int32
          nullable: true
        deliveryMethodId:
          type: integer
          description: The delivery method identifier.
          format: int32
          nullable: true
        orderTypeId:
          type: integer
          description: >-
            The order type identifier, Customer Order (1), Purchase Order (2),
            Recurring Order (3), Recurring Order Template (4), External Order
            (5).
          format: int32
          nullable: true
        isForgotten:
          type: boolean
          description: Indicates whether the order is forgotten, not used anymore.
        forgottenBy:
          type: integer
          description: >-
            The identifier of the user who marked the order as forgotten, not
            used anymore.
          format: int32
          nullable: true
        forgottenDate:
          type: string
          description: >-
            The date and time the order was marked as forgotten, not used
            anymore.
          format: date-time
          nullable: true
        dropPointCustomerInfoId:
          type: integer
          description: >-
            The drop point customer info identifier, lookup key for
            CustomerInfo.
          format: int64
          nullable: true
        dropPointCode:
          type: string
          description: The drop point code.
          maxLength: 50
          minLength: 0
          nullable: true
        year:
          type: integer
          description: The year.
          format: int32
          nullable: true
        week:
          type: integer
          description: The week number.
          format: int32
          nullable: true
        tmsReference:
          type: string
          description: >-
            The TMS reference, a reference identifier from the Transport system,
            not commonly used.
          maxLength: 255
          minLength: 0
          nullable: true
        buyer:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CustomerInfo'
        deliveryNote:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/DeliveryNote'
        dropPoint:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CustomerInfo'
        invoice:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Invoice'
        infos:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/OrderInfo'
        items:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/OrderItem'
        payer:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CustomerInfo'
        quotation:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Quotation'
        shipTo:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CustomerInfo'
    CustomerInfo:
      type: object
      additionalProperties: false
      required:
        - rowid
      properties:
        id:
          type: integer
          description: The unique identifier of the customer info.
          format: int64
        firstName:
          type: string
          description: The first name.
          maxLength: 100
          minLength: 0
          nullable: true
        lastName:
          type: string
          description: The last name.
          maxLength: 100
          minLength: 0
          nullable: true
        emailAddress:
          type: string
          description: The email address.
          maxLength: 255
          minLength: 0
          nullable: true
        phoneNumber:
          type: string
          description: The phone number.
          maxLength: 100
          minLength: 0
          nullable: true
        cellPhoneNumber:
          type: string
          description: The cell phone number.
          maxLength: 100
          minLength: 0
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        rowid:
          type: string
          description: The rowid, used for concurrency control.
          format: byte
          minLength: 1
        companyName:
          type: string
          description: The company name.
          maxLength: 100
          minLength: 0
          nullable: true
        careOf:
          type: string
          description: The care of.
          maxLength: 100
          minLength: 0
          nullable: true
        addressLine1:
          type: string
          description: The first line of the address.
          maxLength: 255
          minLength: 0
          nullable: true
        addressLine2:
          type: string
          description: The second line of the address.
          maxLength: 255
          minLength: 0
          nullable: true
        zipCode:
          type: string
          description: The zip code.
          maxLength: 50
          minLength: 0
          nullable: true
        city:
          type: string
          description: The city.
          maxLength: 50
          minLength: 0
          nullable: true
        region:
          type: string
          description: The region.
          maxLength: 100
          minLength: 0
          nullable: true
        countryId:
          type: integer
          description: The country identifier.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        shippingPhoneNumber:
          type: string
          description: The shipping phone number.
          maxLength: 100
          minLength: 0
          nullable: true
        gln:
          type: string
          description: The GLN.
          maxLength: 50
          minLength: 0
          nullable: true
        orderBuyerCustomerInfo:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Order'
        orderDropPointCustomerInfo:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Order'
        orderPayerCustomerInfo:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Order'
        orderShipToCustomerInfo:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Order'
    DeliveryNote:
      type: object
      additionalProperties: false
      required:
        - noteNo
      properties:
        id:
          type: integer
          description: The unique identifier of the delivery note.
          format: int64
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        noteNo:
          type: string
          description: The note number from the ERP or WMS.
          maxLength: 50
          minLength: 0
        supplierId:
          type: integer
          description: The supplier identifier, not commonly used.
          format: int32
          nullable: true
        typeId:
          type: integer
          description: The type identifier, Order Delivery (1).
          format: int32
        referenceOrderId:
          type: integer
          description: The reference order identifier, link to the Order.
          format: int64
        buyerCompanyId:
          type: integer
          description: >-
            The buyer company identifier, not used anymore, check Order for
            customer information.
          format: int32
          nullable: true
        buyerCompanyCode:
          type: string
          description: >-
            The buyer company code, not used anymore, check Order for customer
            information.
          maxLength: 50
          minLength: 0
          nullable: true
        buyerCustomerId:
          type: integer
          description: >-
            The buyer customer identifier, not used anymore, check Order for
            customer information.
          format: int32
          nullable: true
        buyerCustomerCode:
          type: string
          description: >-
            The buyer customer code, not used anymore, check Order for customer
            information.
          maxLength: 50
          minLength: 0
          nullable: true
        payerCompanyId:
          type: integer
          description: >-
            The payer company identifier, not used anymore, check Order for
            customer information.
          format: int32
          nullable: true
        payerCompanyCode:
          type: string
          description: >-
            The payer company code, not used anymore, check Order for customer
            information.
          maxLength: 50
          minLength: 0
          nullable: true
        payerCustomerId:
          type: integer
          description: >-
            The payer customer identifier, not used anymore, check Order for
            customer information.
          format: int32
          nullable: true
        payerCustomerCode:
          type: string
          description: >-
            The payer customer code, not used anymore, check Order for customer
            information.
          maxLength: 50
          minLength: 0
          nullable: true
        resellerCompanyId:
          type: integer
          description: >-
            The reseller company identifier, not used anymore, check Order for
            customer information.
          format: int32
          nullable: true
        resellerCompanyCode:
          type: string
          description: >-
            The reseller company code, not used anymore, check Order for
            customer information.
          maxLength: 50
          minLength: 0
          nullable: true
        resellerCustomerId:
          type: integer
          description: >-
            The reseller customer identifier, not used anymore, check Order for
            customer information.
          format: int32
          nullable: true
        resellerCustomerCode:
          type: string
          description: >-
            The reseller customer code, not used anymore, check Order for
            customer information.
          maxLength: 50
          minLength: 0
          nullable: true
        groupCode:
          type: string
          description: The group code, not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        deliveryName:
          type: string
          description: The delivery name, commonly the customer name.
          maxLength: 100
          minLength: 0
          nullable: true
        deliveryAttention:
          type: string
          description: The delivery attention.
          maxLength: 100
          minLength: 0
          nullable: true
        deliveryCareOf:
          type: string
          description: The delivery care of.
          maxLength: 100
          minLength: 0
          nullable: true
        deliveryAddressLine1:
          type: string
          description: The delivery address line1.
          maxLength: 255
          minLength: 0
          nullable: true
        deliveryAddressLine2:
          type: string
          description: The delivery address line2.
          maxLength: 255
          minLength: 0
          nullable: true
        deliveryZipCode:
          type: string
          description: The delivery zip code.
          maxLength: 50
          minLength: 0
          nullable: true
        deliveryCity:
          type: string
          description: The delivery city.
          maxLength: 50
          minLength: 0
          nullable: true
        deliveryRegion:
          type: string
          description: The delivery region.
          maxLength: 100
          minLength: 0
          nullable: true
        deliveryCountryId:
          type: integer
          description: The delivery country identifier.
          format: int32
          nullable: true
        deliveryDate:
          type: string
          description: The delivery date.
          format: date-time
          nullable: true
        quantity:
          type: number
          description: The quantity.
          format: decimal
          nullable: true
        volume:
          type: number
          description: The volume.
          format: decimal
          nullable: true
        weight:
          type: number
          description: The weight.
          format: decimal
          nullable: true
        isPrinted:
          type: boolean
          description: Indicates whether the delivery note is printed, not used anymore.
        deliveryTerms:
          type: string
          description: The delivery terms.
          maxLength: 10
          minLength: 0
          nullable: true
        deliveryMode:
          type: string
          description: The delivery mode.
          maxLength: 50
          minLength: 0
          nullable: true
        source:
          type: string
          description: The source.
          maxLength: 255
          minLength: 0
          nullable: true
        deliveryMark:
          type: string
          description: The delivery mark.
          maxLength: 255
          minLength: 0
          nullable: true
        noteText:
          type: string
          description: The note text.
          maxLength: 255
          minLength: 0
          nullable: true
        department:
          type: string
          description: The department.
          maxLength: 10
          minLength: 0
          nullable: true
        centre:
          type: string
          description: The centre.
          maxLength: 10
          minLength: 0
          nullable: true
        shippingNo:
          type: string
          description: The shipping number.
          maxLength: 50
          minLength: 0
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        deliveryAddressId:
          type: integer
          description: The delivery address identifier.
          format: int64
          nullable: true
        divisionCode:
          type: string
          description: The division code.
          maxLength: 50
          minLength: 0
          nullable: true
        statusId:
          type: integer
          description: The status identifier, Delivered (4), Partly Delivered (8).
          format: int32
        isForgotten:
          type: boolean
          description: Indicates whether the delivery note is forgotten.
        forgottenBy:
          type: integer
          description: The forgotten by.
          format: int32
          nullable: true
        forgottenDate:
          type: string
          description: The forgotten date.
          format: date-time
          nullable: true
        deliveryAddress:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Address'
        items:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/DeliveryNoteItem'
        packages:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/DeliveryNotePackage'
        referenceOrder:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Order'
    Address:
      type: object
      additionalProperties: false
      required:
        - rowid
      properties:
        id:
          type: integer
          description: The unique identifier of the address.
          format: int64
        typeId:
          type: integer
          description: The type identifier.
          format: int32
          nullable: true
        name:
          type: string
          description: The name of the address.
          maxLength: 100
          minLength: 0
          nullable: true
        attention:
          type: string
          description: The attention.
          maxLength: 100
          minLength: 0
          nullable: true
        careOf:
          type: string
          description: The care of.
          maxLength: 100
          minLength: 0
          nullable: true
        line1:
          type: string
          description: The first line of the address.
          maxLength: 255
          minLength: 0
          nullable: true
        line2:
          type: string
          description: The second line of the address.
          maxLength: 255
          minLength: 0
          nullable: true
        zipCode:
          type: string
          description: The zip code.
          maxLength: 50
          minLength: 0
          nullable: true
        city:
          type: string
          description: The city.
          maxLength: 50
          minLength: 0
          nullable: true
        region:
          type: string
          description: The region.
          maxLength: 50
          minLength: 0
          nullable: true
        countryId:
          type: integer
          description: The country identifier.
          format: int32
          nullable: true
        emailAddress:
          type: string
          description: The email address.
          maxLength: 255
          minLength: 0
          nullable: true
        phoneNumber:
          type: string
          description: The phone number.
          maxLength: 50
          minLength: 0
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        rowid:
          type: string
          description: The rowid, used for concurrency checks.
          format: byte
          minLength: 1
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        shippingPhoneNumber:
          type: string
          description: The shipping phone number.
          maxLength: 50
          minLength: 0
          nullable: true
        gln:
          type: string
          description: The GLN.
          maxLength: 50
          minLength: 0
          nullable: true
        deliveryNote:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/DeliveryNote'
        invoice:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Invoice'
    Invoice:
      type: object
      additionalProperties: false
      required:
        - invoiceNo
      properties:
        id:
          type: integer
          description: The unique identifier of the invoice.
          format: int64
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        invoiceNo:
          type: string
          description: The invoice number, from the ERP system.
          maxLength: 50
          minLength: 0
        typeId:
          type: integer
          description: The type identifier, sales order invoice (1).
          format: int32
        referenceOrderId:
          type: integer
          description: The reference order identifier, links to the Sales Order.
          format: int64
        referenceNoPsp:
          type: string
          description: The reference number, PSP reference.
          maxLength: 50
          minLength: 0
          nullable: true
        buyerCompanyId:
          type: integer
          description: The buyer company identifier.
          format: int32
          nullable: true
        buyerCustomerId:
          type: integer
          description: The buyer customer identifier.
          format: int32
          nullable: true
        payerCompanyId:
          type: integer
          description: The payer company identifier.
          format: int32
          nullable: true
        payerCustomerId:
          type: integer
          description: The payer customer identifier.
          format: int32
          nullable: true
        resellerCompanyId:
          type: integer
          description: The reseller company identifier, not commonly used.
          format: int32
          nullable: true
        resellerCustomerId:
          type: integer
          description: The reseller customer identifier, not commonly used.
          format: int32
          nullable: true
        groupCode:
          type: string
          description: The group code, not commonly used.
          maxLength: 50
          minLength: 0
          nullable: true
        deliveryDate:
          type: string
          description: The delivery date.
          format: date-time
          nullable: true
        invoiceDate:
          type: string
          description: The invoice date.
          format: date-time
        invoiceDueDate:
          type: string
          description: The invoice due date.
          format: date-time
          nullable: true
        salesRepContactId:
          type: integer
          description: The sales rep contact identifier, not used anymore.
          format: int32
          nullable: true
        source:
          type: string
          description: >-
            The source of the order the invoice is referencing, 'WEB' is
            reserved for orders coming through Norce shopping and checkout
            processes.
          maxLength: 255
          minLength: 0
          nullable: true
        quantity:
          type: number
          description: The quantity, total quantity of items in the invoice.
          format: decimal
        volume:
          type: number
          description: The volume.
          format: decimal
          nullable: true
        weight:
          type: number
          description: The weight.
          format: decimal
          nullable: true
        currencyId:
          type: integer
          description: The currency identifier.
          format: int32
        currencyRate:
          type: number
          description: >-
            The currency rate, used for converting the invoice amount to the
            base currency.
          format: decimal
        cashDiscount:
          type: number
          description: The cash discount.
          format: decimal
          nullable: true
        cashDiscountDate:
          type: string
          description: The cash discount date.
          format: date-time
          nullable: true
        sumLineDiscount:
          type: number
          description: The sum line discount.
          format: decimal
          nullable: true
        freightCost:
          type: number
          description: The freight cost.
          format: decimal
          nullable: true
        invoiceFee:
          type: number
          description: The invoice fee.
          format: decimal
          nullable: true
        costValue:
          type: number
          description: The cost value.
          format: decimal
          nullable: true
        salesBalance:
          type: number
          description: The sales balance.
          format: decimal
          nullable: true
        invoiceAmount:
          type: number
          description: The invoice amount, total amount of the invoice, including VAT.
          format: decimal
          nullable: true
        invoiceRoundOff:
          type: number
          description: The invoice round off.
          format: decimal
          nullable: true
        vatDutiable1:
          type: number
          description: The first VAT dutiable amount.
          format: decimal
          nullable: true
        vatDutiable2:
          type: number
          description: The second VAT dutiable amount.
          format: decimal
          nullable: true
        vatDutiable3:
          type: number
          description: The third VAT dutiable amount.
          format: decimal
          nullable: true
        vat1:
          type: number
          description: The first VAT dutiable rate.
          format: decimal
          nullable: true
        vat2:
          type: number
          description: The second VAT dutiable rate.
          format: decimal
          nullable: true
        vat3:
          type: number
          description: The third VAT dutiable rate.
          format: decimal
          nullable: true
        vatRoundOff:
          type: number
          description: The vat round off.
          format: decimal
          nullable: true
        vat:
          type: number
          description: The VAT amount.
          format: decimal
          nullable: true
        invoiceName:
          type: string
          description: The invoice name, commonly customer name.
          maxLength: 255
          minLength: 0
          nullable: true
        invoiceAttention:
          type: string
          description: The invoice attention.
          maxLength: 100
          minLength: 0
          nullable: true
        invoiceCareOf:
          type: string
          description: The invoice care of.
          maxLength: 100
          minLength: 0
          nullable: true
        invoiceAddressLine1:
          type: string
          description: The invoice address line1.
          maxLength: 255
          minLength: 0
          nullable: true
        invoiceAddressLine2:
          type: string
          description: The invoice address line2.
          maxLength: 255
          minLength: 0
          nullable: true
        invoiceZipCode:
          type: string
          description: The invoice zip code.
          maxLength: 50
          minLength: 0
          nullable: true
        invoiceCity:
          type: string
          description: The invoice city.
          maxLength: 50
          minLength: 0
          nullable: true
        invoiceRegion:
          type: string
          description: The invoice region.
          maxLength: 100
          minLength: 0
          nullable: true
        invoiceCountryId:
          type: integer
          description: The invoice country identifier.
          format: int32
          nullable: true
        ledgerVoucher:
          type: string
          description: The ledger voucher, not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        department:
          type: string
          description: The department, not commonly used.
          maxLength: 10
          minLength: 0
          nullable: true
        centre:
          type: string
          description: The centre, not commonly used.
          maxLength: 10
          minLength: 0
          nullable: true
        noteText:
          type: string
          description: The note text.
          maxLength: 255
          minLength: 0
          nullable: true
        lastInvoiceForOrder:
          type: boolean
          description: >-
            Indicates whether this is the last invoice for the order, and if the
            payment capture logic can close the transaction at the PSP.
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        invoiceAddressId:
          type: integer
          description: The invoice address identifier.
          format: int64
          nullable: true
        paymentMethodId:
          type: integer
          description: The payment method identifier.
          format: int32
          nullable: true
        deliveryMethodId:
          type: integer
          description: The delivery method identifier.
          format: int32
          nullable: true
        isDebit:
          type: boolean
          description: >-
            Indicates whether the invoice is debit, false when the invoice is
            credit and should trigger a payment credit integration.
          nullable: true
        creditedInvoiceId:
          type: integer
          description: The credited invoice identifier.
          format: int64
          nullable: true
        comment:
          type: string
          description: A comment or note.
          maxLength: 250
          minLength: 0
          nullable: true
        isForgotten:
          type: boolean
          description: Indicates whether the invoice is forgotten, not commonly used.
        forgottenBy:
          type: integer
          description: The forgotten by, not commonly used.
          format: int32
          nullable: true
        forgottenDate:
          type: string
          description: The forgotten date, not commonly used.
          format: date-time
          nullable: true
        aggregatedInvoiceCode:
          type: string
          description: The aggregated invoice code, grouping multiple invoices together.
          maxLength: 100
          minLength: 0
          nullable: true
        paymentMethodCode:
          type: string
          description: The payment method code.
          maxLength: 50
          minLength: 0
          nullable: true
        paymentMethodName:
          type: string
          description: The payment method name.
          maxLength: 50
          minLength: 0
          nullable: true
        invoiceGln:
          type: string
          description: The invoice GLN.
          maxLength: 50
          minLength: 0
          nullable: true
        creditedInvoice:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Invoice'
        inverseCreditedInvoice:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Invoice'
        address:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Address'
        items:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/InvoiceItem'
        referenceOrder:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Order'
    InvoiceItem:
      type: object
      additionalProperties: false
      required:
        - partNo
      properties:
        id:
          type: integer
          description: The unique identifier of the invoice item.
          format: int64
        invoiceId:
          type: integer
          description: The invoice identifier.
          format: int64
        lineNumber:
          type: number
          description: The line number.
          format: decimal
          nullable: true
        statusId:
          type: integer
          description: The status identifier, commonly Invoiced (5).
          format: int32
          nullable: true
        partNo:
          type: string
          description: The part number.
          maxLength: 50
          minLength: 0
        externalPartNo:
          type: string
          description: The external part number, not commonly used.
          maxLength: 50
          minLength: 0
          nullable: true
        productName:
          type: string
          description: The product name.
          maxLength: 255
          minLength: 0
          nullable: true
        stockUnitOfMeasurementCount:
          type: number
          description: The stock unit of measurement count.
          format: decimal
        priceUnitOfMeasurementCount:
          type: number
          description: The price unit of measurement count.
          format: decimal
        warehouseId:
          type: integer
          description: The warehouse identifier, not used anymore.
          format: int32
          nullable: true
        locationId:
          type: integer
          description: The location identifier, not used anymore.
          format: int32
          nullable: true
        quantity:
          type: integer
          description: The quantity as an integer, use Quantity2 for decimal values.
          format: int32
        currencyId:
          type: integer
          description: The currency identifier.
          format: int32
        vatRate:
          type: number
          description: The VAT rate, in percent.
          format: decimal
        costUnit:
          type: number
          description: The cost unit.
          format: decimal
          nullable: true
        priceSale:
          type: number
          description: The price sale, excluding VAT.
          format: decimal
          nullable: true
        discountPercentage:
          type: number
          description: The discount percentage.
          format: decimal
        discountAmount:
          type: number
          description: The discount amount, excluding VAT.
          format: decimal
        lineAmount:
          type: number
          description: The line amount, excluding VAT.
          format: decimal
        deliveryMode:
          type: string
          description: The delivery mode.
          maxLength: 50
          minLength: 0
          nullable: true
        isPartDelivery:
          type: boolean
          description: >-
            Indicates whether the invoice item is part delivery, not commonly
            used.
        deliveryDate:
          type: string
          description: The delivery date.
          format: date-time
          nullable: true
        salesRepContactId:
          type: integer
          description: The sales rep contact identifier, not commonly used.
          format: int32
          nullable: true
        ledgerAccount:
          type: string
          description: The ledger account, not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        department:
          type: string
          description: The department, not commonly used.
          maxLength: 10
          minLength: 0
          nullable: true
        centre:
          type: string
          description: The centre, not commonly used.
          maxLength: 10
          minLength: 0
          nullable: true
        transId:
          type: integer
          description: The trans identifier, not used anymore.
          format: int64
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        orderItemId:
          type: integer
          description: The order item identifier, links the invoice item to an order item.
          format: int64
          nullable: true
        purchaseOrderItemId:
          type: integer
          description: >-
            The purchase order item identifier, links the invoice item to a
            purchase order item, not used anymore.
          format: int64
          nullable: true
        lineNumberString:
          type: string
          description: The line number as string.
          maxLength: 50
          minLength: 0
          nullable: true
        priceUnit:
          type: number
          description: >-
            The price unit, excluding VAT, its the price sale / Unit of
            measurement count, commonly same as PriceSale.
          format: decimal
          nullable: true
        quantity2:
          type: number
          description: The quantity in decimal value.
          format: decimal
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        invoice:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Invoice'
        orderItem:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/OrderItem'
    OrderItem:
      type: object
      additionalProperties: false
      required:
        - partNo
      properties:
        id:
          type: integer
          description: The unique identifier of the order item.
          format: int64
        orderId:
          type: integer
          description: The order identifier.
          format: int64
        lineNumber:
          type: number
          description: The line number.
          format: decimal
        parentLineNumber:
          type: number
          description: >-
            The parent line number, is the line has a relationship to another
            line, like a bundle or an accessory grouped together in the purchase
            (warrantied, services, etc.).
          format: decimal
          nullable: true
        statusId:
          type: integer
          description: >-
            The status identifier, common values are Created (0), Allocation
            (1), Confirmed (2), Delivered (4), Invoiced (5), Cancelled (6),
            Partly delivered (8).
          format: int32
        partNo:
          type: string
          description: The product part number.
          maxLength: 50
          minLength: 0
        externalPartNo:
          type: string
          description: The optional external part number, not commonly used.
          maxLength: 50
          minLength: 0
          nullable: true
        productName:
          type: string
          description: The product name.
          maxLength: 255
          minLength: 0
          nullable: true
        stockUnitOfMeasurementCount:
          type: number
          description: >-
            The stock unit of measurement count, should be same as unit of
            measurement count on the ProductSku, commonly 1.000.
          format: decimal
        priceUnitOfMeasurementCount:
          type: number
          description: >-
            The price unit of measurement count, should be same as unit of
            measurement count on the ProductSku, commonly 1.000.
          format: decimal
        warehouseId:
          type: integer
          description: The warehouse identifier, not used anymore.
          format: int32
          nullable: true
        locationId:
          type: integer
          description: The location identifier, not used anymore.
          format: int32
          nullable: true
        qtyOrdered:
          type: number
          description: The quantity ordered.
          format: decimal
        currencyId:
          type: integer
          description: The currency identifier.
          format: int32
        vatRate:
          type: number
          description: The VAT rate, in percent for example 25.0000 for 25%.
          format: decimal
        costUnit:
          type: number
          description: The unit cost, excluding VAT when order was created.
          format: decimal
        priceSale:
          type: number
          description: >-
            The price sale, unit price excluding VAT when order was created,
            including any discounts.
          format: decimal
        discountPercentage:
          type: number
          description: >-
            The discount percentage, from promotions only, campaign price lists
            are not included.
          format: decimal
        discountAmount:
          type: number
          description: >-
            The discount amount excluding VAT, from promotions only, campaign
            price lists are not included.
          format: decimal
        lineAmount:
          type: number
          description: The line amount, subtotal excluding VAT (PriceSale * QtyOrdered).
          format: decimal
        deliveryMode:
          type: string
          description: The delivery mode, not commonly used.
          maxLength: 50
          minLength: 0
          nullable: true
        isPartDelivery:
          type: boolean
          description: >-
            Indicates whether the order item is part delivery, can be true if
            quantity ordered is partly delivered by a DeliveryNote.
        expectedDeliveryDate:
          type: string
          description: The expected delivery date, not used anymore.
          format: date-time
          nullable: true
        confirmedDeliveryDate:
          type: string
          description: The confirmed delivery date, not used anymore.
          format: date-time
          nullable: true
        salesRepContactId:
          type: integer
          description: The sales rep contact identifier, not used anymore.
          format: int32
          nullable: true
        ledgerAccount:
          type: string
          description: The ledger account, not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        department:
          type: string
          description: The department, not used anymore.
          maxLength: 10
          minLength: 0
          nullable: true
        centre:
          type: string
          description: The centre, not used anymore.
          maxLength: 10
          minLength: 0
          nullable: true
        transId:
          type: integer
          description: The trans identifier, not used anymore.
          format: int64
        externalStatusText:
          type: string
          description: The external status text, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        lineNumberString:
          type: string
          description: The line number in a string format.
          maxLength: 50
          minLength: 0
          nullable: true
        priceRecommended:
          type: number
          description: >-
            The recommended price, when order was created, commonly used as
            reference to undiscounted price when campaign price lists are
            applied to SalePrice, if null check PriceStandard instead.
          format: decimal
          nullable: true
        priceCatalog:
          type: number
          description: The price catalog, when order was created.
          format: decimal
          nullable: true
        priceStandard:
          type: number
          description: >-
            The Sale price from the parent price list if parent exists, when
            order was created, can be used as reference to undiscounted price
            when campaign price lists are applied to SalePrice, if
            PriceRecommended is null.
          format: decimal
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        deliveryNoteItem:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/DeliveryNoteItem'
        invoiceItem:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/InvoiceItem'
        order:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Order'
        infos:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/OrderItemInfo'
    DeliveryNoteItem:
      type: object
      additionalProperties: false
      required:
        - partNo
      properties:
        id:
          type: integer
          description: The unique identifier of the delivery note item.
          format: int64
        deliveryNoteId:
          type: integer
          description: The delivery note identifier.
          format: int64
        lineNumber:
          type: number
          description: The line number.
          format: decimal
          nullable: true
        partNo:
          type: string
          description: The part number.
          maxLength: 50
          minLength: 0
        externalPartNo:
          type: string
          description: The external part number, not commonly used.
          maxLength: 50
          minLength: 0
          nullable: true
        productName:
          type: string
          description: The product name.
          maxLength: 255
          minLength: 0
          nullable: true
        stockUnitOfMeasurementCount:
          type: number
          description: The stock unit of measurement count.
          format: decimal
        priceUnitOfMeasurementCount:
          type: number
          description: The price unit of measurement count.
          format: decimal
        qtyOrdered:
          type: number
          description: >-
            The quantity ordered, should be same as on Sales Order, if not, that
            Sales Order has probably been modified in the ERP.
          format: decimal
        quantity:
          type: number
          description: The quantity in the delivery.
          format: decimal
        qtyBackOrdered:
          type: number
          description: >-
            The quantity back ordered, goods not delivered yet on the sales
            order.
          format: decimal
        isPartDelivery:
          type: boolean
          description: >-
            Indicates whether the delivery item has only partially fulfilled the
            order.
        salesRepContactId:
          type: integer
          description: The sales rep contact identifier, not used anymore.
          format: int32
          nullable: true
        vatRate:
          type: number
          description: The VAT rate, commonly not used, check invoice or the order.
          format: decimal
        valueMst:
          type: number
          description: The value mst, not commonly used.
          format: decimal
        noteText:
          type: string
          description: The note text.
          maxLength: 255
          minLength: 0
          nullable: true
        department:
          type: string
          description: The department, not commonly used.
          maxLength: 10
          minLength: 0
          nullable: true
        centre:
          type: string
          description: The centre, not commonly used.
          maxLength: 10
          minLength: 0
          nullable: true
        transId:
          type: integer
          description: The trans identifier, not used anymore.
          format: int32
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        orderItemId:
          type: integer
          description: The order item identifier, link to the OrderItem.
          format: int64
          nullable: true
        purchaseOrderItemId:
          type: integer
          description: The purchase order item identifier, not used anymore.
          format: int64
          nullable: true
        lineNumberString:
          type: string
          description: The line number string.
          maxLength: 50
          minLength: 0
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        deliveryNote:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/DeliveryNote'
        orderItem:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/OrderItem'
    OrderItemInfo:
      type: object
      additionalProperties: false
      required:
        - value
      properties:
        orderItemId:
          type: integer
          description: The order item identifier.
          format: int64
        typeId:
          type: integer
          description: The info type identifier.
          format: int32
        value:
          type: string
          description: The value.
          minLength: 1
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        orderItem:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/OrderItem'
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/OrderInfoType'
    OrderInfoType:
      type: object
      additionalProperties: false
      required:
        - code
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the order info type.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
        code:
          type: string
          description: The code of the order info type.
          maxLength: 50
          minLength: 0
        defaultName:
          type: string
          description: The default name of the order info type.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the order info type.
          maxLength: 500
          minLength: 0
          nullable: true
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the order info type is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        groupId:
          type: integer
          description: The group identifier, Order (1), OrderItem (2).
          format: int32
        orderInfo:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/OrderInfo'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/OrderInfoTypeCulture'
        orderItemInfo:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/OrderItemInfo'
    OrderInfo:
      type: object
      additionalProperties: false
      required:
        - value
      properties:
        orderId:
          type: integer
          description: The order identifier.
          format: int64
        typeId:
          type: integer
          description: The order info type identifier.
          format: int32
        value:
          type: string
          description: The value.
          minLength: 1
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        order:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Order'
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/OrderInfoType'
    OrderInfoTypeCulture:
      type: object
      additionalProperties: false
      properties:
        typeId:
          type: integer
          description: The info type identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the order info type.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the order info type.
          maxLength: 500
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/OrderInfoType'
    DeliveryNotePackage:
      type: object
      additionalProperties: false
      required:
        - shippingNo
      properties:
        id:
          type: integer
          description: The unique identifier of the delivery note package.
          format: int64
        deliveryNoteId:
          type: integer
          description: The delivery note identifier.
          format: int64
        shippingNo:
          type: string
          description: The shipping number.
          maxLength: 255
          minLength: 0
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        statusId:
          type: integer
          description: The status identifier, commonly Delivered (4).
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        deliveryNote:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/DeliveryNote'
    Quotation:
      type: object
      additionalProperties: false
      required:
        - rowId
      properties:
        id:
          type: integer
          description: The unique identifier of the quotation.
          format: int32
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
        salesContactId:
          type: integer
          description: The sales contact identifier, not used anymore.
          format: int32
          nullable: true
        buyerAccountKey:
          type: string
          description: The buyer account key.
          format: guid
        buyerAccountId:
          type: integer
          description: The buyer account identifier.
          format: int32
          nullable: true
        payerAccountId:
          type: integer
          description: The payer account identifier.
          format: int32
          nullable: true
        payerAccountKey:
          type: string
          description: The payer account key.
          format: guid
          nullable: true
        statusId:
          type: integer
          description: >-
            The status identifier. Basket (3), Deleted (4), Accepted (5), Ready
            for payment (7), Payment Accepted (8), Saved (9), Order (10),
            Recurring order (21), Opened for post purchase upsell (22).
          format: int32
        isPrimary:
          type: boolean
          description: Indicates whether the quotation is primary, not used anymore.
        name:
          type: string
          description: The name of the quotation, used for saved baskets.
          maxLength: 50
          minLength: 0
          nullable: true
        validTo:
          type: string
          description: The end date, not commonly used. Use info type instead.
          format: date-time
          nullable: true
        isDeletable:
          type: boolean
          description: Indicates whether the quotation is deletable.
        comment:
          type: string
          description: A comment or note.
          maxLength: 250
          minLength: 0
          nullable: true
        rejectionReasonId:
          type: integer
          description: The rejection reason identifier, not commonly used.
          format: int32
          nullable: true
        modified:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        browsed:
          type: string
          description: The browsed date and time, not used anymore.
          format: date-time
          nullable: true
        paymentMethodId:
          type: integer
          description: The payment method identifier.
          format: int32
          nullable: true
        deliveryMethodId:
          type: integer
          description: The delivery method identifier.
          format: int32
          nullable: true
        ipAddress:
          type: string
          description: The ip address.
          maxLength: 50
          minLength: 0
          nullable: true
        payerFirstName:
          type: string
          description: The payer first name.
          maxLength: 100
          minLength: 0
          nullable: true
        payerMiddleName:
          type: string
          description: The payer middle name.
          maxLength: 100
          minLength: 0
          nullable: true
        payerLastName:
          type: string
          description: The payer last name.
          maxLength: 100
          minLength: 0
          nullable: true
        payerCellPhoneNumber:
          type: string
          description: The payer cell phone number.
          maxLength: 50
          minLength: 0
          nullable: true
        payerEmail:
          type: string
          description: The payer email.
          maxLength: 255
          minLength: 0
          nullable: true
        currencyId:
          type: integer
          description: The currency identifier.
          format: int32
        resellerCustomerId:
          type: integer
          description: The reseller customer identifier, not commonly used.
          format: int32
          nullable: true
        isLocked:
          type: boolean
          description: >-
            Indicates whether the quotation is locked. When a quotation is in a
            locked state, it cannot be modified. This is typically used to
            prevent changes to a quotation that is under review or has been
            accepted.
          nullable: true
        discountCode:
          type: string
          description: >-
            The discount code, from the applied promotions, several codes are
            separated by a comma.
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the quotation is active.
          nullable: true
        parentQuotationId:
          type: integer
          description: >-
            The parent quotation identifier, not commonly used. Used for linking
            to an original quotation.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        buyerCompanyId:
          type: integer
          description: The buyer company identifier.
          format: int32
          nullable: true
        payerCompanyId:
          type: integer
          description: The payer company identifier.
          format: int32
          nullable: true
        hasPaymentTransaction:
          type: boolean
          description: Indicates whether the quotation has payment transaction.
          nullable: true
        buyerFirstName:
          type: string
          description: The buyer first name.
          maxLength: 100
          minLength: 0
          nullable: true
        buyerMiddleName:
          type: string
          description: The buyer middle name.
          maxLength: 100
          minLength: 0
          nullable: true
        buyerLastName:
          type: string
          description: The buyer last name.
          maxLength: 100
          minLength: 0
          nullable: true
        buyerCellPhoneNumber:
          type: string
          description: The buyer cell phone number.
          maxLength: 50
          minLength: 0
          nullable: true
        buyerEmail:
          type: string
          description: The buyer email.
          maxLength: 255
          minLength: 0
          nullable: true
        customerOrderReference:
          type: string
          description: >-
            The customer order reference. Usually used as a note on the delivery
            slip, copied to DeliveryMark on the Order here in Query and is
            called OrderReference in the Basket model in commerce services.
          maxLength: 50
          minLength: 0
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
          nullable: true
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
          nullable: true
        referId:
          type: integer
          description: The refer identifier, not commonly used.
          format: int32
          nullable: true
        referUrl:
          type: string
          description: The refer url, not commonly used.
          maxLength: 255
          minLength: 0
          nullable: true
        payerSocialSecurityNumber:
          type: string
          description: The payer social security number, not commonly used.
          maxLength: 50
          minLength: 0
          nullable: true
        buyerCustomerId:
          type: integer
          description: The buyer customer identifier.
          format: int32
          nullable: true
        payerCustomerId:
          type: integer
          description: The payer customer identifier.
          format: int32
          nullable: true
        shipToCustomerId:
          type: integer
          description: The ship to customer identifier.
          format: int32
          nullable: true
        rowId:
          type: string
          description: The row identifier, concurrency token, for internal use.
          format: byte
          minLength: 1
        deleteDate:
          type: string
          description: The delete date, marked for deletion at specified date.
          format: date-time
          nullable: true
        pickupCode:
          type: string
          description: The pickup code.
          maxLength: 50
          minLength: 0
          nullable: true
        attestedBy:
          type: integer
          description: The attested by, not commonly used.
          format: int32
          nullable: true
        modifiedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        typeId:
          type: integer
          description: The type identifier, normal basket (1), Saved (2), Template (3).
          format: int32
          nullable: true
        doHold:
          type: boolean
          description: >-
            Indicates whether do hold is enabled, signal for manual check in
            ERP, not commonly used.
        deliveryMethodCode:
          type: string
          description: The delivery method code.
          maxLength: 255
          minLength: 0
          nullable: true
        freightPrice:
          type: number
          description: The freight price.
          format: decimal
          nullable: true
        customerInvoiceReference:
          type: string
          description: >-
            The customer invoice reference. Usually used as a note on the
            invoice, copied to InvoiceMark on the Order here in Query and is
            called InvoiceReference in the Basket model in commerce services.
          maxLength: 50
          minLength: 0
          nullable: true
        year:
          type: integer
          description: Created year.
          format: int32
          nullable: true
        week:
          type: integer
          description: Created week.
          format: int32
          nullable: true
        salesAreaId:
          type: integer
          description: The sales area identifier.
          format: int32
          nullable: true
        payerPhoneNumber:
          type: string
          description: The payer phone number.
          maxLength: 50
          minLength: 0
          nullable: true
        buyerPhoneNumber:
          type: string
          description: The buyer phone number.
          maxLength: 50
          minLength: 0
          nullable: true
        order:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Order'
        addresses:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QuotationCustomerAddress'
        infos:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QuotationInfo'
        items:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QuotationItem'
    QuotationCustomerAddress:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The unique identifier.
          format: int32
        quotationId:
          type: integer
          description: The quotation identifier.
          format: int32
        clientCustomerAddressId:
          type: integer
          description: >-
            The client customer address identifier, if its saved on the
            customer.
          format: int32
          nullable: true
        clientCompanyAddressId:
          type: integer
          description: The client company address identifier, if its saved on the company.
          format: int32
          nullable: true
        customerId:
          type: integer
          description: The customer identifier.
          format: int32
          nullable: true
        companyId:
          type: integer
          description: The company identifier.
          format: int32
          nullable: true
        typeId:
          type: integer
          description: >-
            The type identifier, Billing address (1), Shipping address (2),
            Visit address (3), drop point address (4).
          format: int32
        careOf:
          type: string
          description: The care of.
          maxLength: 100
          minLength: 0
          nullable: true
        addressLine1:
          type: string
          description: The first line.
          maxLength: 255
          minLength: 0
          nullable: true
        addressLine2:
          type: string
          description: The second line.
          maxLength: 255
          minLength: 0
          nullable: true
        zipCode:
          type: string
          description: The zip code.
          maxLength: 50
          minLength: 0
          nullable: true
        city:
          type: string
          description: The city.
          maxLength: 50
          minLength: 0
          nullable: true
        region:
          type: string
          description: The region.
          maxLength: 50
          minLength: 0
          nullable: true
        countryId:
          type: integer
          description: The country identifier.
          format: int32
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        companyName:
          type: string
          description: The company name.
          maxLength: 100
          minLength: 0
          nullable: true
        firstName:
          type: string
          description: The first name.
          maxLength: 100
          minLength: 0
          nullable: true
        lastName:
          type: string
          description: The last name.
          maxLength: 100
          minLength: 0
          nullable: true
        cellPhoneNumber:
          type: string
          description: The cell phone number.
          maxLength: 50
          minLength: 0
          nullable: true
        email:
          type: string
          description: The email.
          maxLength: 255
          minLength: 0
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        shippingPhoneNumber:
          type: string
          description: The shipping phone number.
          maxLength: 50
          minLength: 0
          nullable: true
        gln:
          type: string
          description: The GLN.
          maxLength: 50
          minLength: 0
          nullable: true
        quotation:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Quotation'
    QuotationInfo:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The unique identifier of the quotation info.
          format: int64
        quotationId:
          type: integer
          description: The quotation identifier.
          format: int32
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        value:
          type: string
          description: The value.
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        quotation:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Quotation'
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ShoppingInfoType'
    ShoppingInfoType:
      type: object
      additionalProperties: false
      required:
        - defaultName
        - dataType
      properties:
        id:
          type: integer
          description: The unique identifier of the shopping info type.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        groupId:
          type: integer
          description: The group identifier.
          format: int32
        defaultName:
          type: string
          description: The default name of the shopping info type.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the shopping info type.
          maxLength: 500
          minLength: 0
          nullable: true
        dataType:
          type: string
          description: >-
            The data type. Contextual information for interpreting the value of
            the shopping info. For example, it could be 'string', 'decimal',
            'date', etc.
          maxLength: 50
          minLength: 0
        defaultValue:
          type: string
          description: The default value.
          nullable: true
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
        isActive:
          type: boolean
          description: Indicates whether the shopping info type is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        code:
          type: string
          description: The code of the shopping info type.
          maxLength: 50
          minLength: 0
          nullable: true
        quotationInfo:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QuotationInfo'
        quotationItemInfo:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QuotationItemInfo'
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ShoppingInfoTypeCulture'
    QuotationItemInfo:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The unique identifier of the quotation item info.
          format: int64
        quotationItemId:
          type: integer
          description: The quotation item identifier.
          format: int32
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        value:
          type: string
          description: The value.
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        quotationItem:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/QuotationItem'
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ShoppingInfoType'
    QuotationItem:
      type: object
      additionalProperties: false
      required:
        - partNo
        - rowId
      properties:
        id:
          type: integer
          description: The unique identifier of the quotation item.
          format: int32
        quotationId:
          type: integer
          description: The quotation identifier.
          format: int32
        lineNumber:
          type: integer
          description: The line number. Should be unique within the same quotation.
          format: int32
        customerLineCode:
          type: string
          description: >-
            The customer line code. Optional. It can be used to store the line
            code from customer system for reference.
          maxLength: 50
          minLength: 0
          nullable: true
        statusId:
          type: integer
          description: The status identifier.
          format: int32
        partNo:
          type: string
          description: The part number.
          maxLength: 50
          minLength: 0
        productNameWhenCreated:
          type: string
          description: The product name when created.
          maxLength: 255
          minLength: 0
          nullable: true
        bundlePartno:
          type: string
          description: >-
            The bundle partno. If the quotation item is part of a bundle, this
            field indicates the partno of the bundle. Not commonly used.
          maxLength: 50
          minLength: 0
          nullable: true
        bundleTypeId:
          type: integer
          description: The bundle type identifier.
          format: int32
          nullable: true
        qty:
          type: integer
          description: The quantity of the quotation item.
          format: int32
        onHandWhenCreated:
          type: integer
          description: The on hand value when created.
          format: int32
          nullable: true
        priceSale:
          type: number
          description: The unit price.
          format: decimal
          nullable: true
        priceSaleWhenCreated:
          type: number
          description: The unit price when created.
          format: decimal
          nullable: true
        priceListId:
          type: integer
          description: The price list identifier.
          format: int32
        patternId:
          type: integer
          description: The pattern identifier.
          format: int32
          nullable: true
        vatCode:
          type: integer
          description: The vat code.
          format: int32
          nullable: true
        vatValue:
          type: number
          description: The vat amount.
          format: decimal
          nullable: true
        promotionIdSeed:
          type: string
          description: >-
            The promotion id seed. Comma separated list of promotion ids. Used
            for tracking which promotions have been applied to the quotation
            item.
          maxLength: 50
          minLength: 0
          nullable: true
        campaignId:
          type: integer
          description: The campaign identifier. Not used anymore.
          format: int32
          nullable: true
        searchString:
          type: string
          description: The search string. Not used anymore.
          maxLength: 50
          minLength: 0
          nullable: true
        categoryItemId:
          type: integer
          description: The category item identifier. Not used anymore.
          format: int32
          nullable: true
        parentPartnoId:
          type: string
          description: >-
            The parent partno identifier. Used when item is a child to a bundle
            or grouped together with other items.
          maxLength: 50
          minLength: 0
          nullable: true
        parentLineNumber:
          type: integer
          description: >-
            The parent line number. Used when item is a child to a bundle or
            grouped together with other items.
          format: int32
          nullable: true
        comment:
          type: string
          description: A comment or note.
          maxLength: 255
          minLength: 0
          nullable: true
        externalData:
          type: string
          description: The external data. Not commonly used, info types is used instead.
          nullable: true
        refererId:
          type: integer
          description: >-
            The referer identifier. Not commonly used, info types is used
            instead.
          format: int32
          nullable: true
        refererUrl:
          type: string
          description: The referer url.  Not commonly used, info types is used instead.
          maxLength: 255
          minLength: 0
          nullable: true
        priceReseller:
          type: number
          description: The price reseller.  Not commonly used, info types is used instead.
          format: decimal
          nullable: true
        isLocked:
          type: boolean
          description: >-
            Indicates whether the quotation item is locked. When a quotation
            item is in a locked state, it cannot be modified.
          nullable: true
        totalPriceSaleExVat:
          type: number
          description: >-
            The total price sale excluding vat. Subtotal of the sale price *
            quantity.
          format: decimal
          nullable: true
        totalPriceSaleIncVat:
          type: number
          description: >-
            The total price sale including vat. Subtotal of the sale price
            (including vat) * quantity.
          format: decimal
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        expectedDeliveryDate:
          type: string
          description: >-
            The expected delivery date. Not commonly used, info types is used
            instead.
          format: date-time
          nullable: true
        requirementPromotionIdSeed:
          type: string
          description: >-
            Comma separated list of promotions that has this item in its
            requirement.
          maxLength: 255
          minLength: 0
          nullable: true
        isPriceManual:
          type: boolean
          description: Indicates whether the quotation item is a manual price.
          nullable: true
        qty2:
          type: number
          description: >-
            The qty2. The quantity, but supports decimal value. Not commonly
            used. Not commonly supported by external payment systems.
          format: decimal
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        priceListLocked:
          type: boolean
          description: >-
            Indicates whether price list is locked on the item. Best price
            selection is not applied.
        rowId:
          type: string
          description: The row identifier. Used internally for Concurrency checks.
          format: byte
          minLength: 1
        quotation:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Quotation'
        infos:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QuotationItemInfo'
    ShoppingInfoTypeCulture:
      type: object
      additionalProperties: false
      properties:
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the shopping info type.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the shopping info type.
          maxLength: 500
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ShoppingInfoType'
    ApplicationRoleCulture:
      type: object
      additionalProperties: false
      properties:
        applicationRoleId:
          type: integer
          description: The application role identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the application role.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the application role.
          maxLength: 500
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        applicationRole:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ApplicationRole'
    SupplierCategoryMapping:
      type: object
      additionalProperties: false
      properties:
        categorySupplierId:
          type: integer
          format: int32
        code:
          type: string
        categoryId:
          type: integer
          format: int32
          nullable: true
        categoryName:
          type: string
          nullable: true
        productCount:
          type: integer
          format: int32
          nullable: true
        isMapped:
          type: boolean
        clientId:
          type: integer
          format: int32
        supplierId:
          type: integer
          format: int32
        isActive:
          type: boolean
    ClientCulture:
      type: object
      additionalProperties: false
      properties:
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        isPrimary:
          type: boolean
          description: Indicates whether the client culture is primary for the client.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        collation:
          type: string
          description: The collation.
          maxLength: 128
          minLength: 0
          nullable: true
    CurrencyClient:
      type: object
      additionalProperties: false
      properties:
        currencyId:
          type: integer
          description: The currency identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        exchangeRate:
          type: number
          description: The exchange rate, conversion rate between the currency and EUR.
          format: decimal
          nullable: true
        isPrimary:
          type: boolean
          description: Indicates whether the currency client is primary.
        thresholdPercent:
          type: number
          description: >-
            The threshold percent, used for determining when to trigger certain
            actions based on the currency value, currently not used.
          format: decimal
          nullable: true
        schedule:
          type: string
          description: >-
            The schedule, defining the timing or frequency of currency updates,
            currently not used.
          maxLength: 1000
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
    SupplierManufacturerMapping:
      type: object
      additionalProperties: false
      properties:
        clientId:
          type: integer
          format: int32
        supplierId:
          type: integer
          format: int32
        manufacturerSupplierId:
          type: integer
          format: int32
        code:
          type: string
        productCount:
          type: integer
          format: int32
        isActive:
          type: boolean
    SingleResultOfClientManufacturer:
      allOf:
        - $ref: '#/components/schemas/SingleResult'
        - type: object
          additionalProperties: false
          properties:
            queryable:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/ClientManufacturer'
    SingleResultOfClientSupplier:
      allOf:
        - $ref: '#/components/schemas/SingleResult'
        - type: object
          additionalProperties: false
          properties:
            queryable:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/ClientSupplier'
    FileInfo:
      type: object
      additionalProperties: false
      properties:
        fileId:
          type: integer
          description: The file type identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        code:
          type: string
          description: The code of the file type.
          maxLength: 50
          minLength: 0
          nullable: true
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
    ClientSalesArea:
      type: object
      additionalProperties: false
      properties:
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        salesAreaId:
          type: integer
          description: The sales area identifier.
          format: int32
        isPrimary:
          type: boolean
          description: >-
            Indicates whether the client sales area is primary, default for the
            client, only one can be primary for the client.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        code:
          type: string
          description: The code of the client sales area.
          maxLength: 50
          minLength: 0
          nullable: true
        clientSalesAreaVatCode:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientSalesAreaVatCode'
    ClientSalesAreaVatCode:
      type: object
      additionalProperties: false
      properties:
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        salesAreaId:
          type: integer
          description: The sales area identifier.
          format: int32
        vatCodeId:
          type: integer
          description: The vat code identifier.
          format: int32
        isPrimary:
          type: boolean
          description: >-
            Indicates whether the client sales area vat code is primary, and is
            used as default when not overridden on category or product level.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientSalesArea:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientSalesArea'
    ProductRelationType:
      type: object
      additionalProperties: false
      required:
        - code
        - defaultName
      properties:
        id:
          type: integer
          description: The unique identifier of the product relation type.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        code:
          type: string
          description: The code of the product relation type.
          maxLength: 50
          minLength: 0
        defaultName:
          type: string
          description: The default name of the product relation type.
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          description: The default description of the product relation type.
          maxLength: 500
          minLength: 0
          nullable: true
        isBidirectional:
          type: boolean
          description: Indicates whether the product relation type is bidirectional.
        isActive:
          type: boolean
          description: Indicates whether the product relation type is active.
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductRelationTypeCulture'
    ProductRelationTypeCulture:
      type: object
      additionalProperties: false
      properties:
        typeId:
          type: integer
          description: The relation type identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the product relation type.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the product relation type.
          maxLength: 500
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ProductRelationType'
    ClientProductSkuTypeClient:
      type: object
      additionalProperties: false
      properties:
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        name:
          type: string
          description: The name of the client product sku type for the client.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The description of the client product sku type for the client.
          maxLength: 500
          minLength: 0
          nullable: true
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
          nullable: true
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuTypeCulture'
    ClientProductSkuTypeCulture:
      type: object
      additionalProperties: false
      properties:
        clientId:
          type: integer
          description: The client identifier.
          format: int32
        typeId:
          type: integer
          description: The type identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the client product sku type.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the client product sku type.
          maxLength: 500
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        clientProductSkuTypeClient:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientProductSkuTypeClient'
    Application:
      type: object
      additionalProperties: false
      required:
        - name
      properties:
        id:
          type: integer
          format: int32
        key:
          type: string
          format: guid
        name:
          type: string
          maxLength: 50
          minLength: 0
        description:
          type: string
          maxLength: 500
          minLength: 0
          nullable: true
        url:
          type: string
          maxLength: 255
          minLength: 0
          nullable: true
        cmsUrl:
          type: string
          maxLength: 255
          minLength: 0
          nullable: true
        salesUrl:
          type: string
          maxLength: 255
          minLength: 0
          nullable: true
        senderEmailAddress:
          type: string
          maxLength: 255
          minLength: 0
          nullable: true
        hostClientId:
          type: integer
          format: int32
        isActive:
          type: boolean
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        urlMatch:
          type: string
          maxLength: 4000
          minLength: 0
          nullable: true
        parentId:
          type: integer
          format: int32
          nullable: true
        imageKey:
          type: string
          maxLength: 50
          minLength: 0
          nullable: true
        productUrl:
          type: string
          maxLength: 255
          minLength: 0
          nullable: true
        client:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Client'
    Client:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          format: int32
        key:
          type: string
          format: guid
        hostId:
          type: integer
          format: int32
        corporationId:
          type: integer
          format: int32
        isActive:
          type: boolean
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        secretKey:
          type: string
          format: guid
        applicationEnvironment:
          type: string
          maxLength: 50
          minLength: 0
          nullable: true
        slug:
          type: string
          maxLength: 50
          minLength: 0
          nullable: true
        merchant:
          type: string
          maxLength: 50
          minLength: 0
          nullable: true
        applications:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Application'
        clientHost:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientHost'
    ClientHost:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          format: int32
        key:
          type: string
          format: guid
        clientId:
          type: integer
          format: int32
        isActive:
          type: boolean
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        clients:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Client'
    SingleResultOfApplication:
      allOf:
        - $ref: '#/components/schemas/SingleResult'
        - type: object
          additionalProperties: false
          properties:
            queryable:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/Application'
    Currency:
      type: object
      additionalProperties: false
      required:
        - code
        - defaultName
      properties:
        id:
          type: integer
          format: int32
        code:
          type: string
          maxLength: 3
          minLength: 0
        defaultName:
          type: string
          maxLength: 50
          minLength: 0
        exchangeRate:
          type: number
          format: decimal
        defaultPrefix:
          type: string
          maxLength: 10
          minLength: 0
          nullable: true
        defaultSuffix:
          type: string
          maxLength: 10
          minLength: 0
          nullable: true
        isActive:
          type: boolean
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
    SingleResultOfCurrency:
      allOf:
        - $ref: '#/components/schemas/SingleResult'
        - type: object
          additionalProperties: false
          properties:
            queryable:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/Currency'
    File:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          format: int32
        defaultName:
          type: string
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          maxLength: 500
          minLength: 0
          nullable: true
        typeId:
          type: integer
          format: int32
        defaultPixelWidth:
          type: integer
          format: int32
          nullable: true
        defaultPixelHeight:
          type: integer
          format: int32
          nullable: true
        defaultMaxSize:
          type: integer
          format: int32
          nullable: true
        defaultThumbnailPixelWidth:
          type: integer
          format: int32
          nullable: true
        defaultThumbnailPixelHeight:
          type: integer
          format: int32
          nullable: true
        defaultThumbnailMaxSize:
          type: integer
          format: int32
          nullable: true
        isHidden:
          type: boolean
        isActive:
          type: boolean
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/FileType'
    FileType:
      type: object
      additionalProperties: false
      required:
        - extension
        - mimeType
      properties:
        id:
          type: integer
          format: int32
        extension:
          type: string
          maxLength: 50
          minLength: 0
        mimeType:
          type: string
          maxLength: 100
          minLength: 0
        isActive:
          type: boolean
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        files:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/File'
    SalesArea:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          format: int32
        defaultName:
          type: string
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          maxLength: 500
          minLength: 0
          nullable: true
        defaultCurrencyId:
          type: integer
          format: int32
        defaultVatCodeId:
          type: integer
          format: int32
        isActive:
          type: boolean
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        defaultVatCode:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VatCode'
    VatCode:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          format: int32
        defaultName:
          type: string
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          maxLength: 500
          minLength: 0
          nullable: true
        value:
          type: number
          format: decimal
        isActive:
          type: boolean
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        salesArea:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/SalesArea'
    SingleResultOfSalesArea:
      allOf:
        - $ref: '#/components/schemas/SingleResult'
        - type: object
          additionalProperties: false
          properties:
            queryable:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/SalesArea'
    ClientProductSkuStatus:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          format: int32
        defaultName:
          type: string
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          maxLength: 500
          minLength: 0
          nullable: true
        isActive:
          type: boolean
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
    SingleResultOfClientProductSkuStatus:
      allOf:
        - $ref: '#/components/schemas/SingleResult'
        - type: object
          additionalProperties: false
          properties:
            queryable:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/ClientProductSkuStatus'
    SingleResultOfVatCode:
      allOf:
        - $ref: '#/components/schemas/SingleResult'
        - type: object
          additionalProperties: false
          properties:
            queryable:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/VatCode'
    Country:
      type: object
      additionalProperties: false
      required:
        - code
        - defaultName
      properties:
        id:
          type: integer
          format: int32
        code:
          type: string
          maxLength: 3
          minLength: 0
        defaultName:
          type: string
          maxLength: 50
          minLength: 0
        phoneAreaCode:
          type: integer
          format: int32
          nullable: true
        isActive:
          type: boolean
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CountryCulture'
    CountryCulture:
      type: object
      additionalProperties: false
      required:
        - name
      properties:
        countryId:
          type: integer
          format: int32
        cultureCode:
          type: string
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          maxLength: 50
          minLength: 0
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        country:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Country'
    SingleResultOfCountry:
      allOf:
        - $ref: '#/components/schemas/SingleResult'
        - type: object
          additionalProperties: false
          properties:
            queryable:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/Country'
    DeliveryMethod:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          format: int32
        deliveryServiceId:
          type: integer
          format: int32
        deliveryMethodTypeId:
          type: integer
          format: int32
        defaultName:
          type: string
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          nullable: true
        defaultLogoPath:
          type: string
          maxLength: 255
          minLength: 0
          nullable: true
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        defaultLogoKey:
          type: string
          format: guid
          nullable: true
        deliveryMethodType:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/DeliveryMethodType'
        deliveryService:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/DeliveryService'
    DeliveryMethodType:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          format: int32
        defaultName:
          type: string
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          nullable: true
        defaultLogoPath:
          type: string
          maxLength: 255
          minLength: 0
          nullable: true
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        defaultLogoKey:
          type: string
          format: guid
          nullable: true
        deliveryMethod:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/DeliveryMethod'
    DeliveryService:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          format: int32
        defaultName:
          type: string
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          nullable: true
        defaultLogoPath:
          type: string
          maxLength: 255
          minLength: 0
          nullable: true
        trackingUrl:
          type: string
          maxLength: 500
          minLength: 0
          nullable: true
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        defaultLogoKey:
          type: string
          format: guid
          nullable: true
        deliveryMethod:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/DeliveryMethod'
    PaymentMethod:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          format: int32
        paymentMethodTypeId:
          type: integer
          format: int32
        defaultName:
          type: string
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          nullable: true
        logoPath:
          type: string
          maxLength: 500
          minLength: 0
          nullable: true
        sortOrder:
          type: integer
          format: int32
        isPartialPayment:
          type: boolean
        isActive:
          type: boolean
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        logoKey:
          type: string
          format: guid
          nullable: true
    ProductInfoTypeGroup:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          format: int32
        defaultName:
          type: string
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          maxLength: 500
          minLength: 0
          nullable: true
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
    ClientProductSkuType:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          format: int32
        defaultName:
          type: string
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          maxLength: 500
          minLength: 0
          nullable: true
        groupId:
          type: integer
          format: int32
        defaultSortOrder:
          type: integer
          format: int32
        isActive:
          type: boolean
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        isPublic:
          type: boolean
        group:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ClientProductSkuTypeGroup'
    ClientProductSkuTypeGroup:
      type: object
      additionalProperties: false
      required:
        - defaultName
      properties:
        id:
          type: integer
          format: int32
        defaultName:
          type: string
          maxLength: 50
          minLength: 0
        defaultDescription:
          type: string
          maxLength: 500
          minLength: 0
          nullable: true
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        clientProductSkuType:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClientProductSkuType'
    SingleResultOfClientCustomer:
      allOf:
        - $ref: '#/components/schemas/SingleResult'
        - type: object
          additionalProperties: false
          properties:
            queryable:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/ClientCustomer'
    SingleResultOfClientCompany:
      allOf:
        - $ref: '#/components/schemas/SingleResult'
        - type: object
          additionalProperties: false
          properties:
            queryable:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/ClientCompany'
    SingleResultOfClientProductSku:
      allOf:
        - $ref: '#/components/schemas/SingleResult'
        - type: object
          additionalProperties: false
          properties:
            queryable:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/ClientProductSku'
    SingleResultOfProduct:
      allOf:
        - $ref: '#/components/schemas/SingleResult'
        - type: object
          additionalProperties: false
          properties:
            queryable:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/Product'
    ProductAccessory:
      type: object
      additionalProperties: false
      properties:
        productId:
          type: integer
          format: int32
        clientId:
          type: integer
          format: int32
        accessoryProductId:
          type: integer
          format: int32
        typeId:
          type: integer
          format: int32
        sortOrder:
          type: integer
          format: int32
          nullable: true
        populationRuleId:
          type: integer
          format: int32
          nullable: true
        isActive:
          type: boolean
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        isProductVariantUnique:
          type: boolean
        isAccessoryProductVariantUnique:
          type: boolean
        cultures:
          type: array
          items:
            $ref: '#/components/schemas/ProductAccessoryCulture'
    ProductAccessoryCulture:
      type: object
      additionalProperties: false
      properties:
        productId:
          type: integer
          format: int32
        clientId:
          type: integer
          format: int32
        accessoryProductId:
          type: integer
          format: int32
        cultureCode:
          type: string
        name:
          type: string
          nullable: true
        subHeader:
          type: string
          nullable: true
        subDescription:
          type: string
          nullable: true
        descriptionHeader:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
    ProductCrossell:
      type: object
      additionalProperties: false
      properties:
        productId:
          type: integer
          format: int32
        clientId:
          type: integer
          format: int32
        crossellProductId:
          type: integer
          format: int32
        sortOrder:
          type: integer
          format: int32
          nullable: true
        populationRuleId:
          type: integer
          format: int32
          nullable: true
        isActive:
          type: boolean
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        isProductVariantUnique:
          type: boolean
        isCrossellProductVariantUnique:
          type: boolean
    ProductUpsell:
      type: object
      additionalProperties: false
      properties:
        productId:
          type: integer
          format: int32
        clientId:
          type: integer
          format: int32
        upsellProductId:
          type: integer
          format: int32
        defaultDescription:
          type: string
          nullable: true
        sortOrder:
          type: integer
          format: int32
          nullable: true
        populationRuleId:
          type: integer
          format: int32
          nullable: true
        isActive:
          type: boolean
        created:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
        isProductVariantUnique:
          type: boolean
        isUpsellProductVariantUnique:
          type: boolean
        cultures:
          type: array
          items:
            $ref: '#/components/schemas/ProductUpsellCulture'
    ProductUpsellCulture:
      type: object
      additionalProperties: false
      properties:
        productId:
          type: integer
          format: int32
        clientId:
          type: integer
          format: int32
        upsellProductId:
          type: integer
          format: int32
        cultureCode:
          type: string
        description:
          type: string
          nullable: true
        updated:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          format: int32
          nullable: true
    ApplicationDeliveryMethod:
      type: object
      additionalProperties: false
      properties:
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
        deliveryMethodId:
          type: integer
          description: The delivery method identifier.
          format: int32
        code:
          type: string
          description: The code of the application delivery method.
          maxLength: 50
          minLength: 0
          nullable: true
        onlyCompanies:
          type: boolean
          description: >-
            Indicates whether only companies is enabled for the method, no
            support for B2C.
        onlyNotCompanies:
          type: boolean
          description: >-
            Indicates whether companies are disabled for the method, no support
            for B2B.
        hasLocations:
          type: boolean
          description: >-
            Indicates whether the application delivery method has location
            requirements.
        hasCustomerFlags:
          type: boolean
          description: >-
            Indicates whether the application delivery method has customer flag
            requirements.
        hasPaymentMethods:
          type: boolean
          description: >-
            Indicates whether the application delivery method has payment method
            requirements.
        hasDeliveryNotification:
          type: boolean
          description: >-
            Indicates whether the application delivery method has delivery
            notification. Not commonly used.
        availableAsDropShip:
          type: boolean
          description: Indicates whether available as drop ship is enabled.
        allowDangerousGoods:
          type: boolean
          description: Indicates whether dangerous goods is allowed.
        currencyId:
          type: integer
          description: The currency identifier.
          format: int32
          nullable: true
        maxOrderProductValue:
          type: number
          description: The max order product value.
          format: decimal
          nullable: true
        maxWeight:
          type: number
          description: The max weight.
          format: decimal
          nullable: true
        maxWidth:
          type: number
          description: The max width.
          format: decimal
          nullable: true
        maxHeight:
          type: number
          description: The max height.
          format: decimal
          nullable: true
        maxDepth:
          type: number
          description: The max depth.
          format: decimal
          nullable: true
        maxGirth:
          type: number
          description: The max girth.
          format: decimal
          nullable: true
        maxVolume:
          type: number
          description: The max volume.
          format: decimal
          nullable: true
        maxUnits:
          type: number
          description: The max units.
          format: decimal
          nullable: true
        minTemp:
          type: number
          description: The min temp.
          format: decimal
          nullable: true
        maxTemp:
          type: number
          description: The max temp.
          format: decimal
          nullable: true
        useVolumeWeight:
          type: boolean
          description: Indicates whether volume weight is used.
        useLargestWeight:
          type: boolean
          description: Indicates whether largest weight is used.
        volumeWeightFactor:
          type: number
          description: The volume weight factor.
          format: decimal
          nullable: true
        isStackable:
          type: boolean
          description: Indicates whether the application delivery method is stackable.
        isActive:
          type: boolean
          description: Indicates whether the application delivery method is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        maxVolumeWeight:
          type: number
          description: The max volume weight.
          format: decimal
          nullable: true
        hasSkuTypes:
          type: boolean
          description: >-
            Indicates whether the application delivery method has sku types as
            requirements.
        areSkuTypesForced:
          type: boolean
          description: Indicates whether sku types are forced.
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
          nullable: true
        minOrderProductValue:
          type: number
          description: The min order product value.
          format: decimal
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/DeliveryMethodCulture'
    DeliveryMethodCulture:
      type: object
      additionalProperties: false
      properties:
        deliveryMethodId:
          type: integer
          description: The delivery method identifier.
          format: int32
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the delivery method.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the delivery method.
          nullable: true
        logoPath:
          type: string
          description: The logo path, not used anymore.
          maxLength: 255
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        logoKey:
          type: string
          description: The logo key, not commonly used.
          format: guid
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        applicationDeliveryMethod:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ApplicationDeliveryMethod'
    ApplicationPaymentMethod:
      type: object
      additionalProperties: false
      properties:
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
        paymentServiceId:
          type: integer
          description: The payment service identifier.
          format: int32
        paymentMethodId:
          type: integer
          description: The payment method identifier.
          format: int32
        onlyCompanies:
          type: boolean
          description: >-
            Indicates whether only companies is enabled for the method, no
            support for B2C.
        onlyNotCompanies:
          type: boolean
          description: >-
            Indicates whether companies are disabled for the method, no support
            for B2B.
        hasDeliveryMethods:
          type: boolean
          description: >-
            Indicates whether the application payment method has delivery
            methods as requirement.
        hasDivisions:
          type: boolean
          description: >-
            Indicates whether the application payment method has divisions
            (stores) as requirement.
        hasFields:
          type: boolean
          description: >-
            Indicates whether the application payment method has fields
            restrictions as requirement.
        currencyId:
          type: integer
          description: The currency identifier.
          format: int32
          nullable: true
        minOrderValue:
          type: number
          description: The min order value.
          format: decimal
          nullable: true
        maxOrderValue:
          type: number
          description: The max order value.
          format: decimal
          nullable: true
        fee:
          type: number
          description: The fee.
          format: decimal
        feeVatRate:
          type: number
          description: The fee vat rate.
          format: decimal
        code:
          type: string
          description: The code of the application payment method.
          maxLength: 50
          minLength: 0
          nullable: true
        externalPartnerCode:
          type: string
          description: The external partner code.
          maxLength: 50
          minLength: 0
          nullable: true
        partNo:
          type: string
          description: The part number.
          maxLength: 50
          minLength: 0
          nullable: true
        sortOrder:
          type: integer
          description: The sort order for display purposes.
          format: int32
          nullable: true
        isActive:
          type: boolean
          description: Indicates whether the application payment method is active.
        created:
          type: string
          description: The date and time the record was created.
          format: date-time
        createdBy:
          type: integer
          description: The identifier of the user who created the record.
          format: int32
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
          nullable: true
        isRecurrable:
          type: boolean
          description: >-
            Indicates whether the application payment method can be used for
            recurring payments.
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/PaymentMethodCulture'
    PaymentMethodCulture:
      type: object
      additionalProperties: false
      properties:
        paymentMethodId:
          type: integer
          description: The payment method identifier.
          format: int32
        applicationId:
          type: integer
          description: The application identifier.
          format: int32
        cultureCode:
          type: string
          description: The culture code (e.g. en-US).
          maxLength: 16
          minLength: 0
          nullable: true
        name:
          type: string
          description: The culture specific name of the payment method.
          maxLength: 50
          minLength: 0
          nullable: true
        description:
          type: string
          description: The culture specific description of the payment method.
          nullable: true
        logoPath:
          type: string
          description: The culture specific logo path, not commonly used.
          maxLength: 500
          minLength: 0
          nullable: true
        updated:
          type: string
          description: The date and time the record was last updated.
          format: date-time
          nullable: true
        updatedBy:
          type: integer
          description: The identifier of the user who last updated the record.
          format: int32
        logoKey:
          type: string
          description: The culture specific logo key, not commonly used.
          format: guid
          nullable: true
        clientId:
          type: integer
          description: The client identifier.
          format: int32
          nullable: true
        applicationPaymentMethod:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ApplicationPaymentMethod'
    IEdmModel:
      type: object
      x-abstract: true
      additionalProperties: false
      properties:
        schemaElements:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/IEdmSchemaElement'
        vocabularyAnnotations:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/IEdmVocabularyAnnotation'
        referencedModels:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/IEdmModel'
        declaredNamespaces:
          type: array
          nullable: true
          items:
            type: string
        directValueAnnotationsManager:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/IEdmDirectValueAnnotationsManager'
        entityContainer:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/IEdmEntityContainer'
    IEdmSchemaElement:
      type: object
      x-abstract: true
      additionalProperties: false
      properties:
        schemaElementKind:
          $ref: '#/components/schemas/EdmSchemaElementKind'
        namespace:
          type: string
          nullable: true
    EdmSchemaElementKind:
      type: integer
      description: ''
      x-enumNames:
        - None
        - TypeDefinition
        - Term
        - Action
        - EntityContainer
        - Function
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
    IEdmVocabularyAnnotation:
      type: object
      x-abstract: true
      additionalProperties: false
      properties:
        qualifier:
          type: string
          nullable: true
        term:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/IEdmTerm'
        target:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/IEdmVocabularyAnnotatable'
        value:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/IEdmExpression'
        usesDefault:
          type: boolean
    IEdmTerm:
      type: object
      x-abstract: true
      additionalProperties: false
      properties:
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/IEdmTypeReference'
        appliesTo:
          type: string
          nullable: true
        defaultValue:
          type: string
          nullable: true
    IEdmTypeReference:
      type: object
      x-abstract: true
      additionalProperties: false
      properties:
        isNullable:
          type: boolean
        definition:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/IEdmType'
    IEdmType:
      type: object
      x-abstract: true
      additionalProperties: false
      properties:
        typeKind:
          $ref: '#/components/schemas/EdmTypeKind'
    EdmTypeKind:
      type: integer
      description: ''
      x-enumNames:
        - None
        - Primitive
        - Entity
        - Complex
        - Collection
        - EntityReference
        - Enum
        - TypeDefinition
        - Untyped
        - Path
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
    IEdmVocabularyAnnotatable:
      type: object
      x-abstract: true
      additionalProperties: false
    IEdmExpression:
      type: object
      x-abstract: true
      additionalProperties: false
      properties:
        expressionKind:
          $ref: '#/components/schemas/EdmExpressionKind'
    EdmExpressionKind:
      type: integer
      description: ''
      x-enumNames:
        - None
        - BinaryConstant
        - BooleanConstant
        - DateTimeOffsetConstant
        - DecimalConstant
        - FloatingConstant
        - GuidConstant
        - IntegerConstant
        - StringConstant
        - DurationConstant
        - 'Null'
        - Record
        - Collection
        - Path
        - If
        - Cast
        - IsOf
        - FunctionApplication
        - LabeledExpressionReference
        - Labeled
        - PropertyPath
        - NavigationPropertyPath
        - DateConstant
        - TimeOfDayConstant
        - EnumMember
        - AnnotationPath
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
        - 10
        - 11
        - 12
        - 13
        - 14
        - 15
        - 16
        - 17
        - 18
        - 19
        - 20
        - 21
        - 22
        - 23
        - 24
        - 25
    IEdmDirectValueAnnotationsManager:
      type: object
      x-abstract: true
      additionalProperties: false
    IEdmEntityContainer:
      type: object
      x-abstract: true
      additionalProperties: false
      properties:
        elements:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/IEdmEntityContainerElement'
    IEdmEntityContainerElement:
      type: object
      x-abstract: true
      additionalProperties: false
      properties:
        containerElementKind:
          $ref: '#/components/schemas/EdmContainerElementKind'
        container:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/IEdmEntityContainer'
    EdmContainerElementKind:
      type: integer
      description: ''
      x-enumNames:
        - None
        - EntitySet
        - ActionImport
        - FunctionImport
        - Singleton
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
    ODataServiceDocument:
      allOf:
        - $ref: '#/components/schemas/ODataAnnotatable'
        - type: object
          additionalProperties: false
          properties:
            entitySets:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/ODataEntitySetInfo'
            singletons:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/ODataSingletonInfo'
            functionImports:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/ODataFunctionImportInfo'
    ODataEntitySetInfo:
      allOf:
        - $ref: '#/components/schemas/ODataServiceDocumentElement'
        - type: object
          additionalProperties: false
    ODataServiceDocumentElement:
      allOf:
        - $ref: '#/components/schemas/ODataAnnotatable'
        - type: object
          x-abstract: true
          additionalProperties: false
          properties:
            url:
              type: string
              format: uri
              nullable: true
            name:
              type: string
              nullable: true
            title:
              type: string
              nullable: true
    ODataAnnotatable:
      type: object
      x-abstract: true
      additionalProperties: false
      properties:
        typeAnnotation:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ODataTypeAnnotation'
    ODataTypeAnnotation:
      type: object
      additionalProperties: false
      properties:
        typeName:
          type: string
          nullable: true
        type:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/IEdmType'
    ODataSingletonInfo:
      allOf:
        - $ref: '#/components/schemas/ODataServiceDocumentElement'
        - type: object
          additionalProperties: false
    ODataFunctionImportInfo:
      allOf:
        - $ref: '#/components/schemas/ODataServiceDocumentElement'
        - type: object
          additionalProperties: false
