ORDER_TOTAL_DIFFERENT
ORDER_TOTAL_DIFFERENT
The order total submitted at placement does not match the total computed by the server. This guards against stale price data on the client.
Summary
| Field | Value |
|---|---|
| Appears as | errors[].code |
| Response | HTTP 200 — Order with isValid: false and a populated errors[] |
| Retry unchanged | No — re-validate first |
This is a reason code, not a top-level error code
ORDER_TOTAL_DIFFERENT is an errors[].code value on the order. It is not a top-level
ProblemDetail.errorCode, so it carries no HTTP status, errorCategory, or retryable field of its
own. See Unified OrderError shape.
When This Fires
POST /v1/marketfront/orders/place— theamounts.total(or any subordinate amount) on the request differs from the total computed by re-pricing the cart against the live catalog.POST /v1/marketfront/orders/validate— the same echo check runs on the validate path, comparing the amounts you sent against the partner's re-priced basket.
The most common cause is a price change between the validate call and the place call (the user's session held a stale catalog), or a client-side rounding mismatch.
pointer is /amounts/total when we can attribute the mismatch to the total, and null when a commerce partner reports the re-price without telling us which element moved.
Recommended Action
Re-fetch the canonical totals and confirm with the user before retrying:
- Re-call
POST /v1/marketfront/orders/validateto retrieve the freshamountsblock. - Diff against what the user previously saw and surface any change ("the price of one of your items has changed").
- On user confirmation, resubmit
placewith the updatedamounts.
Do not blindly retry with a server-supplied total — the user must accept the new amount.
Example
Code