# CLIENT_CONTEXT_REQUIRED

# CLIENT_CONTEXT_REQUIRED

The order request omitted `client`, or omitted one of its two fields.

## Summary

| Field | Value |
|---|---|
| HTTP status | `400` |
| `errorCategory` | `validation` |
| `retryable` | `false` |

## Why This Exists

Your order requests reach Gett server-to-server, so the connection we observe belongs to your backend, not to the person ordering. The commerce partners we forward orders to run anti-fraud checks that need the **real customer's** originating address and browser — so those values have to travel with the order.

We reject rather than substitute a placeholder. A synthetic address forwarded to a partner counts against the integration in the traffic reviews they run, and it would do so silently.

## When This Fires

- **`POST /v1/marketfront/orders/validate`**
- **`POST /v1/marketfront/orders/place`**

…when `client` is absent, or when `client.ip` or `client.userAgent` is missing or blank.

## Recommended Action

Forward both values from the request your own front end received — the same request that gave you the cart:

```bash
POST /v1/marketfront/orders/validate
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json

{
  "cart": { ... },
  "fulfillment": { ... },
  "client": {
    "ip": "203.0.113.7",
    "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0 Safari/537.36"
  }
}
```

If your front end sits behind a proxy or CDN, `client.ip` is the **first** address in the forwarded-for chain — the customer — not your own server's address. See [`CLIENT_IP_INVALID`](/errors/CLIENT_IP_INVALID) for the values we reject.

`client` is declared on `OrderCore`, so it applies to both `validate` and `place`. See [Conventions → Schema inheritance](/distribution-partners/marketfront-api/conventions).

## Example

```json
{
  "type": "https://developer.gett-tech.com/errors/CLIENT_CONTEXT_REQUIRED",
  "title": "Bad Request",
  "status": 400,
  "detail": "client is required. Supply the end user's originating ip and userAgent, forwarded from the request your own front end received.",
  "instance": "/v1/marketfront/orders/validate",
  "requestId": "req_abc123",
  "timestamp": "2026-08-10T14:30:00.000Z",
  "errorCode": "CLIENT_CONTEXT_REQUIRED",
  "errorCategory": "validation",
  "retryable": false
}
```
