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

# API errors

> Interpret HTTP status, code, field and details without indiscriminate retries.

<span id="formato" />

## JSON format

```json theme={null}
{"code":"invalid_format","message":"Amount must be a number.","field":"amount"}
```

`code` and `message` are at the root. `field` and `details` are optional. There is no `error.code` wrapper. Branch on `code`, not a literal message or its language. A proxy may return HTML or another body: check HTTP status first.

```json theme={null}
{"code":"feature_not_in_plan","message":"This feature ('response_formats') requires a plan upgrade.","details":{"feature":"response_formats","current_plan":"free"}}
```

<span id="http-codes" />

## HTTP statuses

The HTTP status names below remain unchanged. Explanations are translated; API identifiers are preserved.

<span id="comunes" />

## Causes and recovery

<span id="e400" />

## 400 Bad Request

`missing_field`, `invalid_format`, `unknown_parameter`, `invalid_base`, `invalid_against`. Correct the input; do not retry the same request.

<span id="e401" />

## 401 Unauthorized

`invalid_api_key` or `key_revoked`. Check the server credential.

<span id="e402" />

## 402 Payment Required

`feature_not_in_plan`: inspect `details.feature` and `details.current_plan`. This is a plan restriction, not a transient failure.

<span id="e403" />

## 403 Forbidden

`email_not_verified`, `account_inactive`, `endpoint_disabled` or `history_out_of_retention`. Resolve the stated cause without a retry loop.

<span id="e404" />

## 404 Not Found

`resource_not_found`, `bank_not_found` or `bcv_snapshot_unavailable`, depending on the endpoint. Check resource, path and coverage.

<span id="e406" />

## 406 Not Acceptable

`format_not_available`: use JSON or XML when CSV cannot represent multiple collections.

<span id="e422" />

## 422 Unprocessable Entity

`reference_unavailable`, `compared_unavailable` or `no_route` with an age filter. Do not invent a result; apply your explicit unavailability policy.

<span id="e429" />

## 429 Too Many Requests

`rate_limit_exceeded`: distinguish `burst`, `monthly` or missing scope. Follow [quotas and limits](/en/api/rate-limits).

<span id="e500" />

## 500 Internal Server Error

`internal_error`: internal failure. For GET, use bounded retries with backoff and an overall deadline.

<span id="e502" />

## 502 Bad Gateway

May originate from a source or proxy. Preserve the status even if the body is not JSON; bound GET retries.

<span id="e503" />

## 503 Service Unavailable

Service or data unavailable; may include `service_unavailable`. Do not automatically repeat a POST with an uncertain outcome.

<span id="bugs" />

## Report a failure

Include the path, UTC time, status and `code`, without keys or secrets, when contacting [support](mailto:support@cotizave.com). Also check [service status](https://status.cotizave.com/).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.