Valid cancellation reasons per channel
When you cancel an order with
POST /v1/salesOrder/cancel/{orderNumber},
the reason you send has to be one the order’s channel accepts. Some channels publish a
fixed list. Every other channel takes free text.
This page applies to the v1 cancel route only.
POST /v2/storefront/orders/cancel
takes no reason, so there is nothing to validate. See
Order cancellation, returns and refunds.
These lists are generated from the same configuration the cancel endpoint validates against, and they refresh daily. They are not a hand-kept copy, so they cannot fall behind what the endpoint actually accepts.
Channels with a fixed list
Section titled “Channels with a fixed list”Send one of these strings exactly as written. They are case-sensitive, and the endpoint compares them literally.
Amazon
NoInventoryShippingAddressUndeliverableCustomerExchangeBuyerCanceledGeneralAdjustmentCarrierCreditDecisionRiskAssessmentInformationNotValidCarrierCoverageFailureCustomerReturnMerchandiseNotReceived
eBay
OUT_OF_STOCK_OR_CANNOT_FULFILLBUYER_ASKED_CANCELADDRESS_ISSUES
Walmart
CUSTOMER_REQUESTED_SELLER_TO_CANCELSELLER_CANCEL_OUT_OF_STOCKSELLER_CANCEL_FRAUD_STOP_SHIPMENTSELLER_CANCEL_PRICING_ERRORSELLER_CANCEL_ADDRESS_NOT_SERVICEABLE
Every other channel
Section titled “Every other channel”Every channel not listed above accepts free text. Send whatever describes the cancellation; nothing is validated against a list. Target is one of these.
Sending a reason the channel does not accept
Section titled “Sending a reason the channel does not accept”The request is rejected before anything is cancelled. The status code is 404, not
400. Handle it deliberately, because the same route also returns 404 when the order
number itself is unknown. Tell the two apart by the message:
{ "errorCode": 404, "errorMessages": [ "Cancellation Reason is invalid. It has to be in the list of valid reasons provided at developer.zentail.com" ], "referenceId": "6c1f2f3a-9b4d-4d1e-8b27-1e0b0a5a1f77"}API changelog · Built 0c509dd3