# PRECISION_EXCEEDED

# PRECISION_EXCEEDED

A monetary amount in the request carries more decimal places than its currency allows (for example, `"10.999"` for `USD`, which has a two–decimal-place minor unit). Amounts are rejected up front rather than silently truncated.

## Summary

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

## When This Fires

- **`POST /v1/marketfront/orders/validate`** and **`POST /v1/marketfront/orders/place`** — a client-supplied amount in the `amounts` block (most commonly `amounts.tip`) has more decimal places than the store currency's minor-unit scale.

See [Money & amounts](/distribution-partners/marketfront-api/conventions#money--amounts) for the per-currency scale table.

## Recommended Action

Round the amount to the currency's minor-unit scale before sending — 2 places for most currencies (`USD`, `EUR`, `GBP`), 0 for zero-decimal currencies (`JPY`, `KRW`), 3 for `BHD`/`KWD`/`OMR`/`TND` — and resubmit. Send amounts as decimal strings (`"3.00"`), not numbers.

## Example

```json
{
  "type": "https://developer.gett-tech.com/errors/PRECISION_EXCEEDED",
  "title": "Unprocessable Content",
  "status": 422,
  "detail": "tip (3.005) exceeds the maximum 2 decimal places allowed for USD",
  "instance": "/v1/marketfront/orders/validate",
  "requestId": "req_abc123",
  "timestamp": "2026-06-18T14:30:00.000Z",
  "errorCode": "PRECISION_EXCEEDED",
  "errorCategory": "validation",
  "retryable": false
}
```
