> ## Documentation Index
> Fetch the complete documentation index at: https://mcp.theoryofevolution.com.au/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Override a price on an order

> Send `discountClaimReason` and `staffContactName` whenever you set `priceOverRidden` in the Agent / Reseller API

When you set `priceOverRidden` to `true` on a product line, you must also send `discountClaimReason` and `staffContactName` on that same line.

Send all three together, or none of them.

## The three fields that travel together

```json theme={null}
{
  "products": [
    {
      "productPricesDetailsId": 11476906,
      "qty": 1,
      "priceOverRidden": true,
      "discountClaimReason": "Customer finishing tour 2 days early as per agreement with supplier contact Jane Smith on 10-Mar-2026",
      "staffContactName": "Jane Smith"
    }
  ]
}
```

This shows only the fields this rule concerns. For every field a product line accepts, see [Submit an Order](https://mcp.theoryofevolution.com.au/docs/api-reference/agent-reseller-api/order-placement/submit-an-order.md).

If you call `POST /apiv1/validateCart` before ordering, send the same product line there too. TDMS does not enforce these fields until `POST /apiv1/order`.

## What happens if you omit them

`POST /apiv1/order` fails with **HTTP 500** and a response body that names no field:

```json theme={null}
{
  "type": "https://tools.ietf.org/html/rfc2616#section-10",
  "title": "An error occurred",
  "status": 500,
  "detail": "Internal Server Error"
}
```

The underlying error is `Price Override entered for '<product name>' but either no Discount Reason or Staff Contact Name Entered`. It is not returned in the response. If you see a 500 from `POST /apiv1/order` with no detail, check these two fields first.

`POST /apiv1/validateCart` accepts the same product line without them and reports the cart as valid. A cart that validates cleanly can still fail at order, so validating is not a check that an overridden line is complete.

## Notes

* A booking reference obtained from `POST /apiv1/bookingreference` is spent on a failed order attempt. Retrying means requesting a new one.
* Send `priceOverRidden` only on the lines you are overriding. Lines sent without it are unaffected by this requirement.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.