> ## 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.

# CreateConnector

> 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.

If a request with this mutation's Idempotency-Key was already completed, the response's `extensions` contains an `idempotency.{responseName}` entry with `wasReplayed: true`.



**mutation** `CreateConnector(request: CreateConnectorCommandRequestInput!): Connector!`

## Arguments

**`request`**: `CreateConnectorCommandRequestInput!` (required)

## Returns

`Connector!`

**`salesChannelId`**: `String`

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`**: `String`

Name of the connector account.

---

**`url`**: `String`

URL of the connector endpoint.

---

**`isActive`**: `Boolean!`

Connector account is active.

---

**`isLocked`**: `Boolean!`

Connector account is locked.

---

**`companyId`**: `ID`

ID of the company the connector account belongs to.

---

**`canImport`**: `Boolean!`

The connector account is allowed to import data from the endpoint.

---

**`shouldImportItemsAndCategories`**: `Boolean!`

Items and categories are imported.

---

**`shouldImportOrdersAndCustomers`**: `Boolean!`

Orders and customers are imported.

---

**`shouldImportImages`**: `Boolean!`

Item images are imported.

---

**`canUpload`**: `Boolean!`

The connector account is allowed to upload data to the endpoint.

---

**`shouldUploadItemComplete`**: `Boolean!`

Items are uploaded completely, rather than price/stock-restricted.

---

**`shouldUploadItemPriceRestricted`**: `Boolean!`

Item uploads are restricted to prices only.

---

**`shouldUploadItemStockRestricted`**: `Boolean!`

Item uploads are restricted to stock only.

---

**`shouldUploadCustomers`**: `Boolean!`

Customer data is uploaded.

---

**`shouldUploadImages`**: `Boolean!`

Images are uploaded.

---

**`shouldRefreshExistingItems`**: `Boolean!`

Existing items are merged/refreshed rather than only added.

---

**`shouldRefreshCustomers`**: `Boolean!`

Existing customer data is refreshed.

---

**`shouldDeleteImagesOnImport`**: `Boolean!`

Images are deleted on import.

---

**`shouldWawiCalculateTaxRate`**: `Boolean!`

The Wawi calculates the tax rate for items, rather than taking the endpoint-reported one.

---

**`shouldWawiCalculateTaxRateForShipping`**: `Boolean!`

The Wawi calculates the tax rate for shipping, rather than taking the endpoint-reported one.

---

**`maximumTransferRate`**: `Decimal`

Maximum transfer rate for uploads, in megabytes, or null if unrestricted.

---

**`imagesCount`**: `Int`

Maximum number of images transferred per run, or null if unrestricted.

---

**`entityCount`**: `Int`

Maximum number of entities transferred per run, or null if unrestricted.

---

**`pullCount`**: `Int!`

Maximum pull count per sync run.

---

**`quickSyncCount`**: `Int!`

Maximum quick-sync count per sync run.

---

**`sendOnlyAssignedManufacturers`**: `Boolean!`

Manufacturer data sent to the endpoint is filtered to only assigned manufacturers.

---

**`shippingCountryIso`**: `String`

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`**: `ID`

Fallback category for uncategorized imported items, or null if not set.

---

**`rootCategoryId`**: `ID`

Root category for imported items, or null if not set.

---

**`useShopOrderNumber`**: `Boolean!`

The shop-assigned order number is used instead of the Wawi-generated one.

---

**`languages`**: `[ConnectorLanguage!]!`

Languages available in the Wawi, annotated with the assignment/default state reported by the connector endpoint's live handshake.

---

**`currencies`**: `[ConnectorCurrency!]!`

ISO 4217 currencies known to the Wawi, annotated with the assignment/default state reported by the connector endpoint's live handshake.

---

**`features`**: `[ConnectorFeatureListItem!]!`

Every known connector feature, each marked whether the connector endpoint reported it as enabled.

---

**`taxRates`**: `[ConnectorTaxRate!]!`

Taxrates reported by the connector endpoint's live handshake, each merged with the internal Wawi taxrate it was validated against.

---

**`serverInfo`**: `ConnectorServerInfo!`

Live-only metadata about the connected endpoint's platform and protocol version, as reported by its handshake.

