# VALIDATION_FAILED — 422 Unprocessable Entity

# 422 Unprocessable Entity

The request was well-formed but semantically invalid. Check the `errors` array for field-level details.

## Category

`validation`

## Retryable?

**No.** Fix the validation errors and retry.

## Common Error Codes

`VALIDATION_FAILED` is the default code for a 422 when the response did not name a more specific one. The named 422 codes are:

| Code | Description | Action |
|---|---|---|
| [`CARD_EXPIRED`](/errors/CARD_EXPIRED) | The card has expired, or expired while stored | Collect and vault a new card |
| [`PRECISION_EXCEEDED`](/errors/PRECISION_EXCEEDED) | A money amount carries more precision than its currency allows | Round to the currency's minor unit and resubmit |
| `IDEMPOTENCY_KEY_CONFLICT` | `Idempotency-Key` was reused with a semantically different request body. Carries `errorCategory: idempotency`, not `validation` | Use a fresh key for a new order, or replay the same body |


## Error Codes

Each code below is an anchor. The `type` URI on a problem-detail response points straight at it, so
dereferencing `type` lands on the exact code rather than the top of this page.

### IDEMPOTENCY_KEY_CONFLICT

`Idempotency-Key` was reused with a semantically different request body. Carries `errorCategory: idempotency`, not `validation`.

**What to do:** Use a fresh key for a new order, or replay the identical body.

## Example

```json
{
  "type": "https://developer.gett-tech.com/errors/VALIDATION_FAILED",
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Validation failed.",
  "instance": "/v1/marketfront/orders/validate",
  "requestId": "req_abc123",
  "timestamp": "2026-03-11T14:30:00.000Z",
  "errorCode": "VALIDATION_FAILED",
  "errorCategory": "validation",
  "retryable": false
}
```
