Skip to main content

Create 17TRACK Instance

POST 

/api/integrations/17track/instances

Persist the singleton 17TRACK instance for this tenant. The WebhookRoutable trait mints a unique wh_* token as part of the create flow — the resulting webhook URL is returned in the response so it can be copied into the tenant's 17TRACK dashboard.

Authorization

Any valid API token can call this endpoint — no specific scope required. Manage tokens.

Required Fields:

  • name — Display name (string, max 255 chars)
  • api_key — 17TRACK API key (string, 8–255 chars)

Optional Fields:

  • auto_track — Per-entity auto-track flags (object). When omitted or partial, every missing key defaults to true ("all on" happy path):
    • auto_track.sales_order_fulfillments (boolean)
    • auto_track.inbound_shipments (boolean)
    • auto_track.warehouse_transfer_shipments (boolean)
    • auto_track.rmas (boolean)
    • auto_track.vendor_credit_shipments (boolean)

Responses:

  • 201 Created — Instance persisted; payload includes the freshly minted webhook_url.
  • 422 Unprocessable Entity — Validation failure OR a 17TRACK instance already exists for this tenant (the integration is a singleton).

Sales-channel scoping (auto_track_channels) — optional. default is all (track everything not explicitly disabled) or none (track nothing until explicitly enabled). channels is an optional object keyed by sales-channel id; each entry may carry a boolean enabled flag and/or a sub_channels object keyed by sub-channel id (booleans). Resolution is most-specific-first: a sub_channels override wins, then the channel enabled flag, then default. Fulfillment type is modeled as a sub-channel (e.g. Amazon FBA vs merchant-fulfilled, or Shopify Web vs POS), so excluding high-volume marketplace-fulfilled shipments is just disabling that sub-channel. Only sales order fulfillments are scoped; other shipment types are unaffected. Validation: default must be all or none (422 otherwise).

Request

Responses

Created

Response Headers
    Content-Type