Update Amazon Integration Instance
PUT/api/amazon/:integrationInstance
Full or partial update of an Amazon integration instance. Validated by UpdateAmazonIntegrationData (all fields Optional). Supports both PUT (full) and PATCH (partial with deep-merge of integration_settings / connection_settings).
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
If is_fba_enabled changes, the controller dispatches the FBA state-change handler. If sync_sales_order_invoices_to_accounting or sync_sales_credit_to_accounting change, the accounting sync state is updated. If pricing.masterOfPrice.name changes, a background job is dispatched. If inventory changes, the full inventory cache is invalidated. If store_id changes, the SalesChannel row is re-pointed.
Requires the integrations.update permission.
connection_settings never contains credentials: tokens, secrets, passwords and keys are omitted from the response.
Store and sales channel: new orders are created in the store of this connection's sales channel. Whenever the request includes integration_settings.store_id, the sales channel is put in that store if it is in a different one — including when the value equals the saved setting, so re-saving the same store realigns a sales channel that had drifted from it. Nothing is written when the sales channel already uses that store, and orders already imported keep their store. When the sales channel moves, the response adds two top-level keys:
message(string): e.g. "Settings saved. New orders will now be created in store 'Curvy AU' — the sales channel was moved from 'Placeholder'."sales_channel_store_updated(object):fromandto, each{id, name};from.idandfrom.nameare null when the sales channel had no store. Both keys are absent when the sales channel did not move.
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.