Skip to main content
POST
Creates a new JTL-Connector account.

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Headers

Idempotency-Key
string

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.

Required string length: 1 - 255
x-tenant-id
string<uuid>
required

The tenant ID for the target ERP instance.

Query Parameters

simulate
boolean

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.

Body

application/json

Request model for CreateConnector command endpoint. Route parameters bind from the route, query parameters from the query string, everything else from the body.

url
string
required

URL of the connector endpoint. Mandatory.

apiToken
string
required

API token used to authenticate against the connector endpoint. Mandatory. Write-only - never echoed back in the response.

name
string
required

Name of the connector account. Mandatory.

companyId
string<uuid>
required

ID of the company the connector account belongs to. Mandatory - also the company whose tSteuersatz the connector-reported taxrates are validated against.

Example:

"b45f6432-2462-4c6f-b00f-1d9d01000000"

isActive
boolean

Connector account is active. Optional - defaults to the WPF editor default when omitted.

isLocked
boolean

Connector account is locked. Optional - defaults to the WPF editor default when omitted.

rootCategoryId
string<uuid>

Root category for imported items. Optional - defaults to the WPF editor default when omitted.

Example:

"b45f6432-2462-4c6f-b00f-1d9d01000000"

useShopOrderNumber
boolean

Use the shop-assigned order number instead of the Wawi-generated one. Optional - defaults to the WPF editor default when omitted.

canImport
boolean

The connector account is allowed to import data from the endpoint. Optional - defaults to the WPF editor default when omitted.

shouldImportItemsAndCategories
boolean

Items and categories are imported. Optional - defaults to the WPF editor default when omitted.

shouldImportOrdersAndCustomers
boolean

Orders and customers are imported. Optional - defaults to the WPF editor default when omitted.

shouldImportImages
boolean

Item images are imported. Optional - defaults to the WPF editor default when omitted.

canUpload
boolean

The connector account is allowed to upload data to the endpoint. Optional - defaults to the WPF editor default when omitted.

shouldUploadItemComplete
boolean

Items are uploaded completely, rather than price/stock-restricted. Optional - defaults to the WPF editor default when omitted.

shouldUploadItemPriceRestricted
boolean

Item uploads are restricted to prices only. Optional - defaults to the WPF editor default when omitted.

shouldUploadItemStockRestricted
boolean

Item uploads are restricted to stock only. Optional - defaults to the WPF editor default when omitted.

shouldUploadCustomers
boolean

Customer data is uploaded. Optional - defaults to the WPF editor default when omitted.

shouldUploadImages
boolean

Images are uploaded. Optional - defaults to the WPF editor default when omitted.

shouldRefreshExistingItems
boolean

Existing items are merged/refreshed rather than only added. Optional - defaults to the WPF editor default when omitted.

shouldRefreshCustomers
boolean

Existing customer data is refreshed. Optional - defaults to the WPF editor default when omitted.

shouldDeleteImagesOnImport
boolean

Images are deleted on import. Optional - defaults to the WPF editor default when omitted.

shouldWawiCalculateTaxRate
boolean

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
boolean

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
string

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
integer<int32>

Maximum number of entities transferred per run, or null for unrestricted. Optional - defaults to the WPF editor default when omitted.

pullCount
integer<int32>

Maximum pull count per sync run. Optional - defaults to the WPF editor default when omitted.

imagesCount
integer<int32>

Maximum number of images transferred per run, or null for unrestricted. Optional - defaults to the WPF editor default when omitted.

maximumTransferRate
number<decimal>

Maximum transfer rate for uploads, in megabytes, or null for unrestricted. Optional - defaults to the WPF editor default when omitted.

quickSyncCount
integer<int32>

Maximum quick-sync count per sync run. Optional - defaults to the WPF editor default when omitted.

Response

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.

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.

isActive
boolean
required

Connector account is active.

isLocked
boolean
required

Connector account is locked.

canImport
boolean
required

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

shouldImportItemsAndCategories
boolean
required

Items and categories are imported.

shouldImportOrdersAndCustomers
boolean
required

Orders and customers are imported.

shouldImportImages
boolean
required

Item images are imported.

canUpload
boolean
required

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

shouldUploadItemComplete
boolean
required

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

shouldUploadItemPriceRestricted
boolean
required

Item uploads are restricted to prices only.

shouldUploadItemStockRestricted
boolean
required

Item uploads are restricted to stock only.

shouldUploadCustomers
boolean
required

Customer data is uploaded.

shouldUploadImages
boolean
required

Images are uploaded.

shouldRefreshExistingItems
boolean
required

Existing items are merged/refreshed rather than only added.

shouldRefreshCustomers
boolean
required

Existing customer data is refreshed.

shouldDeleteImagesOnImport
boolean
required

Images are deleted on import.

shouldWawiCalculateTaxRate
boolean
required

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

shouldWawiCalculateTaxRateForShipping
boolean
required

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

pullCount
integer<int32>
required

Maximum pull count per sync run.

quickSyncCount
integer<int32>
required

Maximum quick-sync count per sync run.

sendOnlyAssignedManufacturers
boolean
required

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

useShopOrderNumber
boolean
required

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

languages
object[]
required

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

currencies
object[]
required

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

features
object[]
required

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

taxRates
object[]
required

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

serverInfo
object
required

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

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.

companyId
string<uuid>

ID of the company the connector account belongs to.

Example:

"b45f6432-2462-4c6f-b00f-1d9d01000000"

maximumTransferRate
number<decimal>

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

imagesCount
integer<int32>

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

entityCount
integer<int32>

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

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
string<uuid>

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

Example:

"b45f6432-2462-4c6f-b00f-1d9d01000000"

rootCategoryId
string<uuid>

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

Example:

"b45f6432-2462-4c6f-b00f-1d9d01000000"