Skip to main content
Declines an order. A reason, when given, is sent to the customer on the channel the order came in on; without one, nothing is sent. A declined order can’t be fulfilled. Webhooks get order.declined. Asking again for the status it already has changes nothing and sends nothing.
Needs the catalogue.orders:write scope.

Path parameters

Body

Request

Response

200 OK — the order, now declined. status is new, confirmed, declined, fulfilled or cancelled. source is where it came from: cart (a WhatsApp cart), agent (an AI agent’s draft, approved by a person), person (made by hand in the panel) or api. channel is the channel it came in on, where replies about it go. Each line keeps its own copy of the name and price, so a later change to the product doesn’t rewrite it; product is the product’s id, or null for a SKU the catalogue doesn’t have. Money is in minor units.

Errors

Every refusal is {"error": {"code", "message", "field"}}; field is there when one input is at fault. Any request can also be refused for its key, its account or its rate (key_required, invalid_key, account_suspended, plan_excludes_api, address_not_allowed, rate_limited); see the overview.