# INVALID_REQUEST — 400 Bad Request

# 400 Bad Request

The request body or parameters are invalid. Check the `errorCode` and `errors` fields for details.

## Categories

This status code may appear with several error categories depending on the domain error:

| Category | Error Codes | What To Do |
|---|---|---|
| `validation` | `CART_EMPTY`, `MODIFIER_REQUIRED`, `ORDER_BELOW_MINIMUM`, `ORDER_TOTAL_DIFFERENT`, `ADDRESS_INVALID`, `ADDRESS_OUT_OF_RANGE`, `CATALOGSET_REQUIRED` | Fix the request based on the error code and retry |
| `availability` | `STORE_CLOSED`, `ITEM_UNAVAILABLE` | Re-discover available resources |
| `payment` | `PAYMENT_FAILED`, `PAYMENT_METHOD_INVALID`, `PAYMENT_DECLINED` | Use a different payment method or contact support |

## Retryable?

Generally **no** — the request itself must be corrected. Exception: `PAYMENT_FAILED` may be retried (transient processor error).

## Example

```json
{
  "type": "https://developer.gett-tech.com/errors/CART_EMPTY",
  "title": "Bad Request",
  "status": 400,
  "detail": "The cart has no items.",
  "instance": "/v1/marketfront/orders/validate",
  "requestId": "req_abc123",
  "timestamp": "2026-03-11T14:30:00.000Z",
  "errorCode": "CART_EMPTY",
  "errorCategory": "validation",
  "retryable": false
}
```
