Skip to main content

Create or Replace Guardrail Exception

POST 

/api/v2/sales-channels/:integrationInstance/prices/guardrail-overrides

Creates or replaces guardrail exceptions for one or more listings on this channel.

Not yet available to API tokens

This endpoint currently requires session authentication; Personal Access Token scope support is in progress.

An exception is the WHOLE guardrail set — every field below is required. There is no per-field inheritance: a none floor type means the floor is switched off for that target, not that the channel's floor applies.

Accepts a list of targets so one set of values can be applied to a multi-row selection. Re-sending for a target that already has an exception replaces it.

Authentication: requires a Bearer token and update permission on integrations.

Request fields:

  • scope (required) — listing
  • target_ids (required, array of integers, min 1) — listing IDs
  • floor_type (required) — none, amount, or margin_pct
  • floor_value (nullable, numeric, min 0) — required unless floor_type is none
  • ceiling_type (required) — none, amount, or markup_pct
  • ceiling_value (nullable, numeric, min 0) — required unless ceiling_type is none
  • max_delta_pct (nullable, numeric, greater than 0, maximum 1000) — null means no change limit
  • max_delta_action (required) — block_run or skip

Exceptions are scoped to a single listing; there is no product-level scope. A fixed-amount floor above a fixed-amount ceiling is rejected: no price could satisfy both, so every push for that target would be blocked.

Pricing-level bounds. floor_type / ceiling_type also accept tier, which reads the bound from the product's price in the pricing level named by floor_tier_id / ceiling_tier_id (MAP and MSRP are the usual cases). A product with no price in that level simply has NO bound — it is not blocked, unlike a margin_pct rule on a product with no landed cost.

floor_action / ceiling_action choose what happens when a price violates the bound: adjust moves the price to the bound and transmits it, block refuses the listing. Omit them (or send null) to get the type's default — adjust for tier, block for amount and the percentage types. An adjusted price is reported as a pushed line whose detail names the bound that moved it, and the maximum-change limit is measured on the ADJUSTED figure.

Request

Responses

OK

Response Headers
    Content-Type