Update Integration Instance
PUT/api/shiphero/integration-instances/:integration_instance
Update a ShipHero integration instance.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Authentication: Requires Bearer token.
Requires the integrations.update permission.
Partial update: integration_settings keys that are not sent keep their current values (they are no longer reset to defaults), so a client can save one setting at a time. An explicitly sent value, including null, is applied.
connection_settings never contains saved credentials: each secret key (API keys, secrets, passwords, tokens) is left out and replaced by a has_<snake_case_key> boolean saying whether one is saved (apiKey → has_api_key, password → has_password). Credentials in connection_settings are merged into the saved ones: a key you leave out keeps its saved value, so send a secret only to replace it (the response never echoes it back).
integration_settings.channel_shipping_labels (object, optional): what ShipHero does with a shipping label a sales channel bought for an order (TikTok Shop today):
email_warehouse(boolean, default false): email the label PDF to the warehouse when the label is bought. Off unless you turn it on.attach_to_order(boolean, default true): attach the label PDF to the ShipHero order when SKU.io creates it.printed_by_provider(boolean, default false): the 3PL prints the label from ShipHero itself, having set up SKU.io's label webhook as a ShipHero API carrier. Whenattach_to_orderorprinted_by_provideris on, the label reaches the warehouse with the order. With all three off, nothing is sent; download the label from the sales order's channel shipping labels and pass it on yourself. Send only the switches you want to change: a switch left out keeps its stored value, and unknown keys are ignored.
generate_label_url (string|null): this instance's Generate Label webhook URL (https://app.sku.io/webhooks/shiphero/{webhookToken}/generate-label). The 3PL registers it in ShipHero as an "API" carrier method and routes orders that ship on a sales channel's own label to it, so ShipHero prints that label. The URL contains the instance's webhook secret, so it is returned only to a user with the integrations.update permission; anyone else gets null. It is also null when the instance has no webhook token yet.
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
Response Headers
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.