Update 17TRACK Instance
PATCH/api/integrations/17track/instances/:instance
Patch any combination of name, api_key, per-entity auto_track toggles, or the is_automatic_sync_enabled flag on the singleton instance. All fields are optional; only the keys present in the request body are applied.
Any valid API token can call this endpoint — no specific scope required. Manage tokens.
Used by the dashboard's per-entity toggles, the rename action, key rotation, and the automatic-sync flip.
Optional Fields:
name— string, max 255 charsapi_key— string, 8–255 chars (key rotation)auto_track.sales_order_fulfillments— booleanauto_track.inbound_shipments— booleanauto_track.warehouse_transfer_shipments— booleanauto_track.rmas— booleanauto_track.vendor_credit_shipments— booleanis_automatic_sync_enabled— boolean (global polling/sync kill switch)
Responses:
200 OK— returns the updated instance (without the live dashboard summary; callGETto re-hydrate it)422 Unprocessable Entity— validation failure
Alert & side-effect settings (all optional):
side_effects.vendor_credit_shipment_auto_delivered(boolean, default true) — auto-set the vendor credit shipment's status to Delivered when the carrier confirms deliveryside_effects.inbound_shipment_arrival_alert(boolean, default true) — in-app admin alert "package delivered — ready to receive" for inbound shipmentsside_effects.rma_arrival_alert(boolean, default true) — in-app admin alert "package delivered — ready to inspect" for RMAsquota_alert_threshold(integer 1–99, default 80) — quota usage % at which admins get a warning alert; a second high-priority alert always fires at 100% (exhausted). Changing the threshold re-arms the alert state machine.
The instance resource now also returns side_effects, quota_alert_threshold, and a transit analytics block (avg days in transit + on-time-vs-ETA rate for rows delivered in the last 90 days, overall and per carrier).
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
- 200
- 401
- 403
- 404
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Validation failed — the body is a field → messages map (Laravel shape) or the platform envelope with a stable machine-readable code. Fix the payload and resubmit.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.