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

# Error Codes

> HTTP status mapping and E_* error codes.

Most `/v1` errors use:

```json theme={null}
{
  "status": false,
  "code": "E_VALIDATION_ERROR",
  "message": "FROM.CURRENCY: The from.currency field is required"
}
```

Successful responses use `{ "status": true, "message", "data?", "meta?" }`.

## HTTP status mapping

| HTTP    | Typical codes                 | Action                                       |
| ------- | ----------------------------- | -------------------------------------------- |
| **400** | `E_BADREQUEST`                | Fix the request                              |
| **401** | `E_UNAUTHORIZED`              | Check keys and signature                     |
| **403** | `E_FORBIDDEN`, `E_IP_BLOCKED` | KYB, IP whitelist, or access                 |
| **404** | `E_NOTFOUND`                  | Verify the reference                         |
| **409** | `E_CONFLICT`                  | Resource state conflict (e.g. cannot cancel) |
| **422** | `E_VALIDATION_ERROR`          | Fix field errors                             |
| **429** | `E_RATE_LIMITED`              | Back off and retry                           |

Some authentication failures return `{ "status": "failed", "message": "...", "data": null }` without a `code` field.

## Validation errors

```json theme={null}
{
  "status": false,
  "code": "E_VALIDATION_ERROR",
  "message": "FROM.CURRENCY: The from.currency field is required\nTO.CURRENCY: The to.currency field is required"
}
```

Do not retry `422` without changing the payload.

## Related

* [Error handling](/guides/error-handling)
* [FAQ](/resources/faq)
