> ## Documentation Index
> Fetch the complete documentation index at: https://developer.jtl-software.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Creates a new JTL-Connector account.

> Creates a new JTL-Connector account. The salesChannelId is derived server-side from the persisted tShop row ({nTyp}-{nPlattform}-{kShop}, ADR-69) and cannot be supplied by the client - hence POST with no id in the route. The route matches the sibling collection GET sales-channels/connector/accounts (QueryConnectorAccounts) one-to-one - same collection, POST creates what GET lists. ResyncConnector/DeleteConnectorLink are not a precedent for this route shape: both act on an already-existing connector and therefore correctly carry {salesChannelId} instead. Performs a live handshake against the endpoint (init + features + global-data pull) using the ShopKey-less clients from WAWI-91760, then validates every taxrate the connector reports against the chosen company's tSteuersatz (400 if any is unmapped). If the live call or taxrate validation fails, nothing is persisted. Otherwise tShop + tShopKonfiguration are inserted in one transaction, followed by a separate transaction for the full metadata mirror; if that second step fails, the handler compensates by deleting the shop row pair rather than leaving an orphaned, metadata-less account - not a single atomic transaction end-to-end. Connector-driven sections of the response (Languages, Currencies, Features, TaxRates, ServerInfo) are always sourced live from the handshake and are never accepted as request input - persisting client-supplied connector metadata would re-introduce the user-write semantics rejected in WAWI-90486/WAWI-90484, and would persist potentially stale data.



## OpenAPI

````yaml /openapi/erp/2.1.json post /v2/sales-channels/connector/accounts
openapi: 3.0.0
info:
  title: JTL-WAWI API (Cloud)
  description: "JTL-Wawi-Version: 2.2.0-alpha.9415+Sha.4655524\r\n# Introduction\r\n\r\nWelcome to the JTL-WAWI technical API documentation. This guide is here to help developers understand how our REST API works and how it can be integrated into your existing systems. We'll delve into the details of authentication and data manipulation processes, providing clear examples along the way. Whether you're a developer or an IT professional, this documentation aims to give you a practical understanding, laying the groundwork for effectively using the JTL-WAWI API to enhance your processes.\r\n\r\n# Authentication\r\n\r\nYou register your application with the API by sending a POST request with the required information and corresponding keys. You can find the exact request details at https://developer.jtl-software.com/products/erp/swagger/appregistration. This information has to include the following:\r\n\r\n* AppId\r\n* DisplayName\r\n* Description\r\n* Version\r\n* ProviderName\r\n* ProviderWebsite\r\n* MandatoryApiScopes\r\n\r\nThis data is crucial for identifying and registering your application with the API. The API uses it to generate a temporary authentication ID that allows your application to access the necessary resources. After successful validation of this information, you will receive the API key required for future authentication and API requests.\r\n\r\nBefore you can begin the registration process, you must open JTL-Wawi (new interface) and start the registration process under 'Admin->App registration'. Only at this point are you authorised to send the first API call. This step in JTL-Wawi ensures that your application is properly registered and has permission to use the API.\r\n\r\nThe API will send you an authentication ID in the form of a token. Once you have received this token and successfully completed the registration in JTL-Wawi, you will send another request to the API by including this authentication ID in the URL path.\r\n\r\nAfter successful validation of this second request by the API and confirmation of the correct information, you will be provided with the actual API key. It is important to note that this API key will not be displayed again!\r\n\r\nThis API key will be used in the future to authenticate requests to the API. It is of utmost importance that you securely store the API key upon receipt, as it cannot be retrieved from any other location in the system."
  contact:
    name: JTL-Software-GmbH
    url: https://developer.jtl-software.com/
    email: partner@jtl-software.com
  version: '2.1'
  x-application-version: 2.2.0.0
servers:
  - url: https://api.jtl-cloud.com/erp
    description: Production Environment Cloud API Gateway
security: []
tags:
  - name: WMS
    description: >-
      <p data-section-id='tag/WMS' class='stable_summary'></p>Query all pick
      lists for a specific wms warehouse that are not completed.
  - name: Wawi App
    description: >-
      <p data-section-id='tag/Wawi App' class='stable_summary'></p>Get a
      specific customer
  - name: Warehouses
    description: >-
      <p data-section-id='tag/Warehouses' class='stable_summary'></p>Queries all
      storage locations for a given warehouse.
  - name: Units
    description: Development
  - name: Transaction Status
    description: >-
      <p data-section-id='tag/Transaction Status'
      class='stable_summary'></p>Queries all transaction statuses for a sales
      order.
  - name: Tax
    description: >-
      <p data-section-id='tag/Tax' class='stable_summary'></p>Returns the tax
      rate for the given item.
  - name: Inventory
    description: >-
      <p data-section-id='tag/Inventory' class='stable_summary'></p>Queries
      stocks for a specific item, warehouse or storage location.
  - name: Sales Order
    description: Planned
  - name: Sales Invoice Correction
    description: Planned
  - name: Return
    description: >-
      <p data-section-id='tag/Return' class='beta_summary'></p>Create a new
      return with associated items and packages.
  - name: Item
    description: >-
      <p data-section-id='tag/Item' class='beta_summary'></p>Queries all
      responsible persons.
  - name: Refund
    description: Planned
  - name: Property
    description: >-
      <p data-section-id='tag/Property' class='stable_summary'></p>Queries all
      properties of items.
  - name: Printer
    description: >-
      <p data-section-id='tag/Printer' class='beta_summary'></p>Retrieves all
      installed printers.
  - name: Master Data
    description: >-
      <p data-section-id='tag/Master Data' class='stable_summary'></p>Queries
      all on hold reasons for sales orders.
  - name: Manufacturer
    description: Development
  - name: Label
    description: Development
  - name: Sales Invoice
    description: Planned
  - name: Info
    description: >-
      <p data-section-id='tag/Info' class='stable_summary'></p>Returns the
      status of the API.
  - name: Features
    description: >-
      <p data-section-id='tag/Features' class='stable_summary'></p>Returns the
      available feature sets with release state and API version.
  - name: Extensibility
    description: Planned
  - name: Shipment
    description: Development
  - name: Delivery Note
    description: Planned
  - name: Custom Field
    description: Development
  - name: Customer
    description: >-
      <p data-section-id='tag/Customer' class='stable_summary'></p>Deletes a
      specific customer.
  - name: Authentication
    description: >-
      <p data-section-id='tag/Authentication'
      class='deprecated_summary'></p>DEPRECATED seit Wawi 2.2.0: No-Op. Seit
      Wawi 2.1.0 registriert sich die Wawi selbst per JWT.
  - name: Attribute
    description: Development
  - name: Sales Quotation
    description: >-
      <p data-section-id='tag/Sales Quotation' class='beta_summary'></p>Execute
      the printing of a sales quotation
  - name: Production
  - name: Resources
  - name: Company
  - name: Sales Orders
  - name: Marketplace Order
  - name: Marketplace Offer
  - name: Marketplace Invoicing
  - name: Sales Channel
  - name: Payment
  - name: Warehouse Assistant
  - name: Worker
paths:
  /v2/sales-channels/connector/accounts:
    post:
      tags:
        - wawi
        - Sales Channel
      summary: Creates a new JTL-Connector account.
      description: >-
        Creates a new JTL-Connector account. The salesChannelId is derived
        server-side from the persisted tShop row ({nTyp}-{nPlattform}-{kShop},
        ADR-69) and cannot be supplied by the client - hence POST with no id in
        the route. The route matches the sibling collection GET
        sales-channels/connector/accounts (QueryConnectorAccounts) one-to-one -
        same collection, POST creates what GET lists.
        ResyncConnector/DeleteConnectorLink are not a precedent for this route
        shape: both act on an already-existing connector and therefore correctly
        carry {salesChannelId} instead. Performs a live handshake against the
        endpoint (init + features + global-data pull) using the ShopKey-less
        clients from WAWI-91760, then validates every taxrate the connector
        reports against the chosen company's tSteuersatz (400 if any is
        unmapped). If the live call or taxrate validation fails, nothing is
        persisted. Otherwise tShop + tShopKonfiguration are inserted in one
        transaction, followed by a separate transaction for the full metadata
        mirror; if that second step fails, the handler compensates by deleting
        the shop row pair rather than leaving an orphaned, metadata-less account
        - not a single atomic transaction end-to-end. Connector-driven sections
        of the response (Languages, Currencies, Features, TaxRates, ServerInfo)
        are always sourced live from the handshake and are never accepted as
        request input - persisting client-supplied connector metadata would
        re-introduce the user-write semantics rejected in WAWI-90486/WAWI-90484,
        and would persist potentially stale data.
      operationId: Connector_CreateConnector
      parameters:
        - name: simulate
          in: query
          description: >-
            When true, runs the identical live handshake and taxrate validation
            but writes nothing to the database - a connection test before the
            real create. Defaults to false when omitted. Note: the response
            shape differs when true - nothing is persisted and SalesChannelId is
            null - see the response description for the transport-specific
            details of this deviation.
          schema:
            type: boolean
        - name: Idempotency-Key
          in: header
          description: >-
            Optional, client-generated key for deduplicating repeated write
            requests. A repeated request with the same key returns the
            originally recorded result instead of executing the effect again.
          schema:
            type: string
            maxLength: 255
            minLength: 1
        - name: x-tenant-id
          in: header
          required: true
          schema:
            type: string
            format: uuid
          description: The tenant ID for the target ERP instance.
      requestBody:
        x-name: CreateConnectorRequest
        description: ''
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/JTL.Wawi.Verkaufskanaele.PublicApi.Endpoints.V2.Connector.CreateConnectorRequest
        required: true
        x-position: 1
      responses:
        '201':
          description: >-
            The Connector account was created (or, for ?simulate=true, the
            identical live handshake and taxrate validation ran with zero
            database writes) and the response carries the full metadata mirror.
            The response is always 201, for both a real create and
            ?simulate=true - distinguish the two by SalesChannelId being null
            for ?simulate=true, since no account was persisted. No Location
            header is ever set. Both are permanent limitations of the current
            generated endpoint, not omissions of this handler: the generated
            Send.ResponseAsync(dto, 201, ct) call hardcodes a single status
            literal and never sets response headers, and HandleAsync is not
            partial, so no handler-level code can vary the status or add a
            header. A second, ?simulate=true-only success code and a Location
            header therefore cannot be represented with the current REST
            generator. Deliberate ADR-4 deviation: ADR-4 ("Resultset of
            Commands") calls for a Create command to return only the new Id, but
            this command returns the full Connector object instead. This is
            intentional: ?simulate=true has no Id to return (nothing is
            persisted) but still needs to deliver the live-handshake preview
            (languages, currencies, features, taxrates, server info) that only a
            full object can carry, so an Id-only result is not a viable shape
            for that path. The non-simulate 201 path returns the same full shape
            for symmetry with simulate, rather than switching shapes based on
            the query parameter.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.Connector
        '400':
          description: >-
            Request validation failed, or at least one taxrate reported by the
            connector does not exist in the chosen company's tSteuersatz.
            Nothing is persisted.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/FastEndpoints.ProblemDetails'
        '401':
          description: Unauthorized.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/FastEndpoints.ProblemDetails'
        '403':
          description: Forbidden.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/FastEndpoints.ProblemDetails'
        '500':
          description: Internal server error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/FastEndpoints.ProblemDetails'
        '502':
          description: >-
            The Connector endpoint could not be reached, rejected the request,
            or returned an invalid response. Machine-readable error code in the
            problem details - do not collapse into a generic exception, a
            connection test needs the diagnosis: connector-authentication-failed
            (API token rejected, wire error 790), connector-unreachable
            (endpoint could not be reached), connector-invalid-response
            (response could not be parsed).
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/FastEndpoints.ProblemDetails'
        '504':
          description: The connector endpoint did not respond within the request timeout.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/FastEndpoints.ProblemDetails'
      security:
        - oauth2-authorization-code:
            - saleschannels.write
        - oauth2-client-credentials:
            - saleschannels.write
components:
  schemas:
    JTL.Wawi.Verkaufskanaele.PublicApi.Endpoints.V2.Connector.CreateConnectorRequest:
      type: object
      description: >-
        Request model for CreateConnector command endpoint.

        Route parameters bind from the route, query parameters from the query
        string, everything else from the body.
      additionalProperties: false
      required:
        - url
        - apiToken
        - name
        - companyId
      properties:
        url:
          type: string
          description: URL of the connector endpoint. Mandatory.
        apiToken:
          type: string
          description: >-
            API token used to authenticate against the connector endpoint.
            Mandatory. Write-only - never echoed back in the response.
        name:
          type: string
          description: Name of the connector account. Mandatory.
        companyId:
          $ref: '#/components/schemas/JTL.Data.Contracts.Keys.FirmaKey'
          description: >-
            ID of the company the connector account belongs to. Mandatory - also
            the company whose tSteuersatz the connector-reported taxrates are
            validated against.
        isActive:
          type: boolean
          description: >-
            Connector account is active. Optional - defaults to the WPF editor
            default when omitted.
        isLocked:
          type: boolean
          description: >-
            Connector account is locked. Optional - defaults to the WPF editor
            default when omitted.
        rootCategoryId:
          $ref: '#/components/schemas/JTL.Data.Contracts.Keys.KategorieKey'
          description: >-
            Root category for imported items. Optional - defaults to the WPF
            editor default when omitted.
        useShopOrderNumber:
          type: boolean
          description: >-
            Use the shop-assigned order number instead of the Wawi-generated
            one. Optional - defaults to the WPF editor default when omitted.
        canImport:
          type: boolean
          description: >-
            The connector account is allowed to import data from the endpoint.
            Optional - defaults to the WPF editor default when omitted.
        shouldImportItemsAndCategories:
          type: boolean
          description: >-
            Items and categories are imported. Optional - defaults to the WPF
            editor default when omitted.
        shouldImportOrdersAndCustomers:
          type: boolean
          description: >-
            Orders and customers are imported. Optional - defaults to the WPF
            editor default when omitted.
        shouldImportImages:
          type: boolean
          description: >-
            Item images are imported. Optional - defaults to the WPF editor
            default when omitted.
        canUpload:
          type: boolean
          description: >-
            The connector account is allowed to upload data to the endpoint.
            Optional - defaults to the WPF editor default when omitted.
        shouldUploadItemComplete:
          type: boolean
          description: >-
            Items are uploaded completely, rather than price/stock-restricted.
            Optional - defaults to the WPF editor default when omitted.
        shouldUploadItemPriceRestricted:
          type: boolean
          description: >-
            Item uploads are restricted to prices only. Optional - defaults to
            the WPF editor default when omitted.
        shouldUploadItemStockRestricted:
          type: boolean
          description: >-
            Item uploads are restricted to stock only. Optional - defaults to
            the WPF editor default when omitted.
        shouldUploadCustomers:
          type: boolean
          description: >-
            Customer data is uploaded. Optional - defaults to the WPF editor
            default when omitted.
        shouldUploadImages:
          type: boolean
          description: >-
            Images are uploaded. Optional - defaults to the WPF editor default
            when omitted.
        shouldRefreshExistingItems:
          type: boolean
          description: >-
            Existing items are merged/refreshed rather than only added. Optional
            - defaults to the WPF editor default when omitted.
        shouldRefreshCustomers:
          type: boolean
          description: >-
            Existing customer data is refreshed. Optional - defaults to the WPF
            editor default when omitted.
        shouldDeleteImagesOnImport:
          type: boolean
          description: >-
            Images are deleted on import. Optional - defaults to the WPF editor
            default when omitted.
        shouldWawiCalculateTaxRate:
          type: boolean
          description: >-
            The Wawi calculates the tax rate for items, rather than taking the
            endpoint-reported one. Optional - defaults to the WPF editor default
            when omitted.
        shouldWawiCalculateTaxRateForShipping:
          type: boolean
          description: >-
            The Wawi calculates the tax rate for shipping, rather than taking
            the endpoint-reported one. Optional - defaults to the WPF editor
            default when omitted.
        shippingCountryIso:
          type: string
          description: >-
            The shipping/departure country as an ISO 3166-1 alpha-2 country
            code. Optional - defaults to the WPF editor default when omitted.
            Canonical form is UPPERCASE (ADR-85); matching is case-insensitive.
        entityCount:
          type: integer
          description: >-
            Maximum number of entities transferred per run, or null for
            unrestricted. Optional - defaults to the WPF editor default when
            omitted.
          format: int32
        pullCount:
          type: integer
          description: >-
            Maximum pull count per sync run. Optional - defaults to the WPF
            editor default when omitted.
          format: int32
        imagesCount:
          type: integer
          description: >-
            Maximum number of images transferred per run, or null for
            unrestricted. Optional - defaults to the WPF editor default when
            omitted.
          format: int32
        maximumTransferRate:
          type: number
          description: >-
            Maximum transfer rate for uploads, in megabytes, or null for
            unrestricted. Optional - defaults to the WPF editor default when
            omitted.
          format: decimal
        quickSyncCount:
          type: integer
          description: >-
            Maximum quick-sync count per sync run. Optional - defaults to the
            WPF editor default when omitted.
          format: int32
    JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.Connector:
      type: object
      description: >-
        Full result of the CreateConnector live pipeline: the created (or, for
        ?simulate=true, merely verified) connector account together with its
        complete metadata mirror. Base data and configuration are the persisted
        DB state (null/default-filled from the WPF editor defaults where the
        request omitted them); the connector-driven sections (Languages,
        Currencies, Features, TaxRates, ServerInfo) are always sourced live from
        the endpoint handshake, ISO-identified per the ADR-85 pattern
        established by ConnectorCurrency. Deliberate ADR-4 deviation: ADR-4 asks
        Create commands to return only the created Id, but this command returns
        the full object instead, because ?simulate=true never persists anything
        and therefore has no Id to return - the live
        handshake/taxrate-validation result (Languages, Currencies, Features,
        TaxRates, ServerInfo) is the only useful response for that preview path,
        so the same shape is used for the persisted case too rather than
        modeling two different response contracts. Known limitations: (1)
        RootCategoryId and UseShopOrderNumber are modeled here rather than
        folded into ConnectorAccount/ConnectorConfiguration, because those two
        shared GET models are out of this ticket's scope - reconcile once
        WAWI-91760 lands; (2) synchronisation settings (send/receive/delete per
        object type) are deliberately NOT included here -
        ConnectorSynchronisationEntityType is a 90+ value enum owned by
        JTL.Wawi.Connector.Core.Contracts, and duplicating it into this response
        ahead of WAWI-91760's actual mapping design risked a stale/incorrect
        mirror; use the existing QueryConnectorSynchronisationSettings endpoint
        for now and fold it in here once the orchestration lands.
      additionalProperties: false
      required:
        - isActive
        - isLocked
        - canImport
        - shouldImportItemsAndCategories
        - shouldImportOrdersAndCustomers
        - shouldImportImages
        - canUpload
        - shouldUploadItemComplete
        - shouldUploadItemPriceRestricted
        - shouldUploadItemStockRestricted
        - shouldUploadCustomers
        - shouldUploadImages
        - shouldRefreshExistingItems
        - shouldRefreshCustomers
        - shouldDeleteImagesOnImport
        - shouldWawiCalculateTaxRate
        - shouldWawiCalculateTaxRateForShipping
        - pullCount
        - quickSyncCount
        - sendOnlyAssignedManufacturers
        - useShopOrderNumber
        - languages
        - currencies
        - features
        - taxRates
        - serverInfo
      properties:
        salesChannelId:
          type: string
          description: >-
            Sales channel id of this connector account. Null when the request
            used ?simulate=true - no account was persisted, so no id could be
            assigned.
        name:
          type: string
          description: Name of the connector account.
        url:
          type: string
          description: URL of the connector endpoint.
        isActive:
          type: boolean
          description: Connector account is active.
        isLocked:
          type: boolean
          description: Connector account is locked.
        companyId:
          $ref: '#/components/schemas/JTL.Data.Contracts.Keys.FirmaKey'
          description: ID of the company the connector account belongs to.
        canImport:
          type: boolean
          description: The connector account is allowed to import data from the endpoint.
        shouldImportItemsAndCategories:
          type: boolean
          description: Items and categories are imported.
        shouldImportOrdersAndCustomers:
          type: boolean
          description: Orders and customers are imported.
        shouldImportImages:
          type: boolean
          description: Item images are imported.
        canUpload:
          type: boolean
          description: The connector account is allowed to upload data to the endpoint.
        shouldUploadItemComplete:
          type: boolean
          description: Items are uploaded completely, rather than price/stock-restricted.
        shouldUploadItemPriceRestricted:
          type: boolean
          description: Item uploads are restricted to prices only.
        shouldUploadItemStockRestricted:
          type: boolean
          description: Item uploads are restricted to stock only.
        shouldUploadCustomers:
          type: boolean
          description: Customer data is uploaded.
        shouldUploadImages:
          type: boolean
          description: Images are uploaded.
        shouldRefreshExistingItems:
          type: boolean
          description: Existing items are merged/refreshed rather than only added.
        shouldRefreshCustomers:
          type: boolean
          description: Existing customer data is refreshed.
        shouldDeleteImagesOnImport:
          type: boolean
          description: Images are deleted on import.
        shouldWawiCalculateTaxRate:
          type: boolean
          description: >-
            The Wawi calculates the tax rate for items, rather than taking the
            endpoint-reported one.
        shouldWawiCalculateTaxRateForShipping:
          type: boolean
          description: >-
            The Wawi calculates the tax rate for shipping, rather than taking
            the endpoint-reported one.
        maximumTransferRate:
          type: number
          description: >-
            Maximum transfer rate for uploads, in megabytes, or null if
            unrestricted.
          format: decimal
        imagesCount:
          type: integer
          description: >-
            Maximum number of images transferred per run, or null if
            unrestricted.
          format: int32
        entityCount:
          type: integer
          description: >-
            Maximum number of entities transferred per run, or null if
            unrestricted.
          format: int32
        pullCount:
          type: integer
          description: Maximum pull count per sync run.
          format: int32
        quickSyncCount:
          type: integer
          description: Maximum quick-sync count per sync run.
          format: int32
        sendOnlyAssignedManufacturers:
          type: boolean
          description: >-
            Manufacturer data sent to the endpoint is filtered to only assigned
            manufacturers.
        shippingCountryIso:
          type: string
          description: >-
            The shipping/departure country as an ISO 3166-1 alpha-2 country
            code, or null if not set. Canonical form is UPPERCASE (ADR-85);
            matching is case-insensitive.
        dummyCategoryId:
          $ref: '#/components/schemas/JTL.Data.Contracts.Keys.KategorieKey'
          description: >-
            Fallback category for uncategorized imported items, or null if not
            set.
        rootCategoryId:
          $ref: '#/components/schemas/JTL.Data.Contracts.Keys.KategorieKey'
          description: Root category for imported items, or null if not set.
        useShopOrderNumber:
          type: boolean
          description: >-
            The shop-assigned order number is used instead of the Wawi-generated
            one.
        languages:
          type: array
          description: >-
            Languages available in the Wawi, annotated with the
            assignment/default state reported by the connector endpoint's live
            handshake.
          items:
            $ref: >-
              #/components/schemas/JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.ConnectorLanguage
        currencies:
          type: array
          description: >-
            ISO 4217 currencies known to the Wawi, annotated with the
            assignment/default state reported by the connector endpoint's live
            handshake.
          items:
            $ref: >-
              #/components/schemas/JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.ConnectorCurrency
        features:
          type: array
          description: >-
            Every known connector feature, each marked whether the connector
            endpoint reported it as enabled.
          items:
            $ref: >-
              #/components/schemas/JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.ConnectorFeatureListItem
        taxRates:
          type: array
          description: >-
            Taxrates reported by the connector endpoint's live handshake, each
            merged with the internal Wawi taxrate it was validated against.
          items:
            $ref: >-
              #/components/schemas/JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.ConnectorTaxRate
        serverInfo:
          $ref: >-
            #/components/schemas/JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.ConnectorServerInfo
          description: >-
            Live-only metadata about the connected endpoint's platform and
            protocol version, as reported by its handshake.
    FastEndpoints.ProblemDetails:
      type: object
      additionalProperties: false
      properties:
        type:
          type: string
          default: https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1
        title:
          type: string
          default: One or more validation errors occurred.
        status:
          type: integer
          format: int32
          default: 400
        instance:
          type: string
          default: /api/route
        traceId:
          type: string
          default: 0HMPNHL0JHL76:00000001
        detail:
          type: string
        errors:
          type: array
          items:
            $ref: '#/components/schemas/FastEndpoints.ProblemDetails_Error'
    JTL.Data.Contracts.Keys.FirmaKey:
      type: string
      description: Represents a key for identifying a firm within the application.
      format: uuid
      example: b45f6432-2462-4c6f-b00f-1d9d01000000
      additionalProperties: false
    JTL.Data.Contracts.Keys.KategorieKey:
      type: string
      format: uuid
      example: b45f6432-2462-4c6f-b00f-1d9d01000000
      additionalProperties: false
    JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.ConnectorLanguage:
      type: object
      description: >-
        A single language available in the Wawi in the context of a connector
        account.
      additionalProperties: false
      required:
        - iso
        - isAssigned
        - isDefault
      properties:
        iso:
          type: string
          description: >-
            ISO 639-1 code of the language (lowercase). Identifies the language
            (ADR-85) - languages are standardized reference data, so no separate
            surrogate id is exposed.
        nameGerman:
          type: string
          description: German name of the language.
        nameEnglish:
          type: string
          description: English name of the language.
        isAssigned:
          type: boolean
          description: Language is currently assigned to the connector account.
        isDefault:
          type: boolean
          description: Language is the connector account's default language.
    JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.ConnectorCurrency:
      type: object
      description: >-
        A single ISO 4217 currency known to the Wawi, in the context of a
        connector account, including its assignment/default state.
      additionalProperties: false
      required:
        - currencyCode
        - codeSource
        - isAssigned
        - isDefault
      properties:
        currencyCode:
          type: string
          description: >-
            Code of the currency in ISO 4217 alpha-3 form, uppercase. This is
            the identifier of the resource (ADR-85) - the internal surrogate key
            (kWaehrung) is not exposed. Only the FORM of the code is validated;
            membership in the ISO 4217 register is not verified, because the
            Wawi ships no register. Responses always carry the canonical form
            (uppercase). Currencies whose code does not match that form are not
            exposed by this endpoint; the x-prefixed private-use namespace is
            reserved for them.
        codeSource:
          $ref: >-
            #/components/schemas/JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.CurrencyCodeSource
          description: >-
            Source of CurrencyCode - standardized ISO 4217 code or
            tenant-defined code. Always Iso for now, because only codes in ISO
            4217 alpha-3 form are returned; a tenant-defined code that happens
            to have that form is therefore reported as Iso. Distinguishing the
            two requires the code registry from the pending ADR-85
            implementation tickets.
        name:
          type: string
          description: Name of the currency.
        isAssigned:
          type: boolean
          description: Currency is assigned to the connector account.
        isDefault:
          type: boolean
          description: Currency is the connector account's default currency.
    JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.ConnectorFeatureListItem:
      type: object
      description: >-
        A single connector feature together with its configuration state for one
        connector account. The list covers every known feature, so a disabled
        feature is reported as well rather than being omitted.
      additionalProperties: false
      required:
        - feature
        - isEnabled
      properties:
        feature:
          $ref: >-
            #/components/schemas/JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.ConnectorFeature
          description: >-
            The connector feature this entry describes. Always a single feature,
            never a combination.
        isEnabled:
          type: boolean
          description: >-
            The feature is enabled for the connector account. A connector
            account without any persisted feature configuration reports every
            feature as false.
    JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.ConnectorTaxRate:
      type: object
      description: >-
        A single taxrate reported by the Connector endpoint's live handshake,
        merged with the internal Wawi taxrate it was validated against.
        Connector-driven, response-only - never accepted as request input. Every
        entry is guaranteed to carry a resolved TaxRateId, because
        CreateConnector rejects the request with 400 if any endpoint-reported
        taxrate does not exist in the chosen company's tSteuersatz.
      additionalProperties: false
      required:
        - rate
        - taxRateId
      properties:
        rate:
          type: number
          description: The tax rate percentage as reported by the endpoint.
          format: decimal
        taxRateId:
          $ref: '#/components/schemas/JTL.Data.Contracts.Keys.SteuersatzKey'
          description: >-
            ID of the internal Wawi taxrate (dbo.tSteuersatz) this endpoint rate
            was validated against.
    JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.ConnectorServerInfo:
      type: object
      description: >-
        Live-only, non-persisted metadata about the connected endpoint's
        software, reported by its handshake (init call). Never part of a
        DB-backed read - only present on a live pipeline result such as
        CreateConnector.
      additionalProperties: false
      required:
        - isOldConnector
      properties:
        platformName:
          type: string
          description: Name of the endpoint's platform.
        platformVersion:
          type: string
          description: Version of the endpoint's platform.
        protocolVersion:
          type: string
          description: Version of the Connector RPC protocol spoken by the endpoint.
        endpointVersion:
          type: string
          description: Version of the JTL-Connector endpoint plugin itself.
        isOldConnector:
          type: boolean
          description: The endpoint reported a legacy Connector protocol generation.
    FastEndpoints.ProblemDetails_Error:
      type: object
      additionalProperties: false
      properties:
        name:
          type: string
          default: Error or field name
        reason:
          type: string
          default: Error reason
        code:
          type: string
        severity:
          type: string
    JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.CurrencyCodeSource:
      type: integer
      description: 0 = Iso, 1 = UserAssigned
      format: int32
      x-enumNames:
        - Iso
        - UserAssigned
      enum:
        - 0
        - 1
    JTL.Wawi.Verkaufskanaele.PublicApi.DataTransferObjects.V2.Connector.ConnectorFeature:
      type: integer
      description: >-
        1 = ChildVariationsFirst, 2 = PartialPaymentPossible, 4 =
        OrderUpdatePossible, 8 = OrderReactivationPossible, 16 =
        SupportsArticleImages, 32 = SupportsCategoryImages, 64 =
        SupportsManufacturerImages, 128 = SupportsAttributeImages, 256 =
        SupportsAttributeValueImages, 512 = SupportsConfigGroupImages, 1024 =
        SupportsVariationImages, 2048 = SupportsNormalVariations, 4096 =
        SupportsVariationCombinations, 16384 = RequiresCompletionCall, 32768 =
        SupportsFreeFields, 65536 = RequiresRootCategory, 131072 =
        AttributesMultilingual, 262144 = RespectArticleActiveFlag, 524288 =
        IgnoreStatistics, 1048576 = SendAllAcks
      format: int32
      x-enumNames:
        - ChildVariationsFirst
        - PartialPaymentPossible
        - OrderUpdatePossible
        - OrderReactivationPossible
        - SupportsArticleImages
        - SupportsCategoryImages
        - SupportsManufacturerImages
        - SupportsAttributeImages
        - SupportsAttributeValueImages
        - SupportsConfigGroupImages
        - SupportsVariationImages
        - SupportsNormalVariations
        - SupportsVariationCombinations
        - RequiresCompletionCall
        - SupportsFreeFields
        - RequiresRootCategory
        - AttributesMultilingual
        - RespectArticleActiveFlag
        - IgnoreStatistics
        - SendAllAcks
      enum:
        - 1
        - 2
        - 4
        - 8
        - 16
        - 32
        - 64
        - 128
        - 256
        - 512
        - 1024
        - 2048
        - 4096
        - 16384
        - 32768
        - 65536
        - 131072
        - 262144
        - 524288
        - 1048576
    JTL.Data.Contracts.Keys.SteuersatzKey:
      type: string
      format: uuid
      example: b45f6432-2462-4c6f-b00f-1d9d01000000
      additionalProperties: false
  securitySchemes:
    oauth2-authorization-code:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://auth.jtl-cloud.com/oauth2/auth
          tokenUrl: https://auth.jtl-cloud.com/oauth2/token
          scopes:
            inventories.write: Grants permission to modify stock levels.
            inventory.read: Grants permission to read stock levels.
            inventory.write: Grants permission to modify stock levels.
            items.read: Grants permission to read item data.
            items.write: Grants permission to create and modify item data.
            saleschannels.read: Grants permission to read sales channels.
            saleschannels.write: Grants permission to create and modify sales channels.
            all.read: Allows the application to read all data.
            customers.read: Grants permission to read customer data.
            customers.write: Grants permission to create and modify customer data.
            customfields.read: Grants permission to read custom fields.
            customfields.write: Grants permission to create and modify custom fields.
            deliveries.read: Grants permission to read deliveries.
            deliveries.write: Grants permission to create and modify deliveries.
            deliverynotes.print: Grants permission to print and output delivery notes.
            deliverynotes.read: Grants permission to read delivery notes.
            deliverynotes.write: Grants permission to create and modify delivery notes.
            extensibility.integration: >-
              Grants permission to manage extensions and integrations of the
              JTL-Wawi.
            inventories.read: Grants permission to read stock levels.
            invoices.read: Grants permission to read invoices.
            invoices.write: Grants permission to create and modify invoices.
            labels.read: Grants permission to read labels.
            labels.write: Grants permission to create and modify labels.
            masterdata.read: >-
              Read master data such as shipping methods, payment methods, color
              codes and tax classes.
            orders.read: Grants permission to read orders.
            picklists.read: Grants permission to read pick lists.
            picklists.write: Grants permission to create and modify pick lists.
            returns.read: Grants permission to read returns.
            returns.write: Grants permission to create and modify returns.
            salesinvoicecorrections.read: Grants permission to read invoice corrections.
            salesinvoicecorrections.write: Grants permission to create and modify invoice corrections.
            salesorders.print: Grants permission to print and output sales orders.
            salesorders.read: Grants permission to read sales orders.
            salesorders.write: Grants permission to create and modify sales orders.
            system.config.read: Grants permission to read the system configuration.
            system.config.write: Grants permission to modify the system configuration.
            taxes.read: Grants permission to read tax data.
            warehouse.read: Grants permission to read warehouse data.
            wawiapp.all: Grants access to Wawi app related operations.
            currencies.read: Grants read access to currencies.
            jera.read: Grants read access to JERA internal endpoints.
            paymentmethods.read: Grants read access to payment methods.
            payments.read: Ermöglicht den Lesezugriff auf Zahlungen.
            payments.write: Ermöglicht den Schreibzugriff auf Zahlungen.
            salesinvoicecorrections.print: Grants permission to print and output invoice corrections.
            salesinvoices.print: Grants permission to print and output sales invoices.
            salesinvoices.read: Grants read access to sales invoices.
            salesinvoices.write: Grants write access to sales invoices.
            salesquotations.print: Grants permission to print and output sales quotations.
            salesquotations.read: Grants read access to sales quotations.
            salesquotations.write: Grants write access to sales quotations.
            system.worker.read: Worker-Synchronisationen lesen
            system.worker.write: Worker-Synchronisationen schreiben
            resources.read: Grants permission to read resource management data.
            resources.write: Grants permission to create and modify resource management data.
            pps.read: Grants permission to read production data.
            pps.write: Grants permission to create and modify production data.
            channels.read: Grants permission to read marketplace channels.
            invoices.print: >-
              Grants permission to print marketplace external documents
              (invoices, credit notes).
            marketplaceoffers.read: Grants permission to read marketplace offers and offer failures.
            marketplaceoffers.write: Grants permission to create and modify marketplace offers.
            notifications.read: Grants permission to read marketplace notifications.
            orders.write: >-
              Grants permission to modify marketplace order data (exclude/reset
              cancellation, payment, return and shipping uploads).
            masterdata.write: Write master data
            taxes.write: Grants permission to create and modify tax data.
            application.runas: >-
              Allows the application to execute requests on behalf of another
              user.
    oauth2-client-credentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.jtl-cloud.com/oauth2/token
          scopes:
            inventories.write: Grants permission to modify stock levels.
            inventory.read: Grants permission to read stock levels.
            inventory.write: Grants permission to modify stock levels.
            items.read: Grants permission to read item data.
            items.write: Grants permission to create and modify item data.
            saleschannels.read: Grants permission to read sales channels.
            saleschannels.write: Grants permission to create and modify sales channels.
            all.read: Allows the application to read all data.
            customers.read: Grants permission to read customer data.
            customers.write: Grants permission to create and modify customer data.
            customfields.read: Grants permission to read custom fields.
            customfields.write: Grants permission to create and modify custom fields.
            deliveries.read: Grants permission to read deliveries.
            deliveries.write: Grants permission to create and modify deliveries.
            deliverynotes.print: Grants permission to print and output delivery notes.
            deliverynotes.read: Grants permission to read delivery notes.
            deliverynotes.write: Grants permission to create and modify delivery notes.
            extensibility.integration: >-
              Grants permission to manage extensions and integrations of the
              JTL-Wawi.
            inventories.read: Grants permission to read stock levels.
            invoices.read: Grants permission to read invoices.
            invoices.write: Grants permission to create and modify invoices.
            labels.read: Grants permission to read labels.
            labels.write: Grants permission to create and modify labels.
            masterdata.read: >-
              Read master data such as shipping methods, payment methods, color
              codes and tax classes.
            orders.read: Grants permission to read orders.
            picklists.read: Grants permission to read pick lists.
            picklists.write: Grants permission to create and modify pick lists.
            returns.read: Grants permission to read returns.
            returns.write: Grants permission to create and modify returns.
            salesinvoicecorrections.read: Grants permission to read invoice corrections.
            salesinvoicecorrections.write: Grants permission to create and modify invoice corrections.
            salesorders.print: Grants permission to print and output sales orders.
            salesorders.read: Grants permission to read sales orders.
            salesorders.write: Grants permission to create and modify sales orders.
            system.config.read: Grants permission to read the system configuration.
            system.config.write: Grants permission to modify the system configuration.
            taxes.read: Grants permission to read tax data.
            warehouse.read: Grants permission to read warehouse data.
            wawiapp.all: Grants access to Wawi app related operations.
            currencies.read: Grants read access to currencies.
            jera.read: Grants read access to JERA internal endpoints.
            paymentmethods.read: Grants read access to payment methods.
            payments.read: Ermöglicht den Lesezugriff auf Zahlungen.
            payments.write: Ermöglicht den Schreibzugriff auf Zahlungen.
            salesinvoicecorrections.print: Grants permission to print and output invoice corrections.
            salesinvoices.print: Grants permission to print and output sales invoices.
            salesinvoices.read: Grants read access to sales invoices.
            salesinvoices.write: Grants write access to sales invoices.
            salesquotations.print: Grants permission to print and output sales quotations.
            salesquotations.read: Grants read access to sales quotations.
            salesquotations.write: Grants write access to sales quotations.
            system.worker.read: Worker-Synchronisationen lesen
            system.worker.write: Worker-Synchronisationen schreiben
            resources.read: Grants permission to read resource management data.
            resources.write: Grants permission to create and modify resource management data.
            pps.read: Grants permission to read production data.
            pps.write: Grants permission to create and modify production data.
            channels.read: Grants permission to read marketplace channels.
            invoices.print: >-
              Grants permission to print marketplace external documents
              (invoices, credit notes).
            marketplaceoffers.read: Grants permission to read marketplace offers and offer failures.
            marketplaceoffers.write: Grants permission to create and modify marketplace offers.
            notifications.read: Grants permission to read marketplace notifications.
            orders.write: >-
              Grants permission to modify marketplace order data (exclude/reset
              cancellation, payment, return and shipping uploads).
            masterdata.write: Write master data
            taxes.write: Grants permission to create and modify tax data.
            application.runas: >-
              Allows the application to execute requests on behalf of another
              user.

````