# Errors

> Every error the FCRA API returns, with the stable code to switch on: access refused, purpose not allowed, validation, idempotency conflicts and cancellation.

- **HTML:** https://offendersearch.app/docs/fcra/errors
- **Base URL:** https://api.offendersearch.app
- **Authentication:** `X-API-Key` request header, on an account with FCRA Partner Access
- **FCRA API reference as markdown:** https://offendersearch.app/docs/fcra.md

## Error codes

Errors use the same envelope as the other APIs, with a stable `error.code` to switch on.

| Status | Code | Meaning |
| --- | --- | --- |
| 401 | — | Missing or invalid `X-API-Key`. |
| 403 | `fcra_not_enabled` | This account has no active FCRA partner agreement. |
| 403 | `fcra_purpose_not_allowed` | The purpose is not in your agreement, or not held by the end user. |
| 403 | `fcra_not_on_trial` | FCRA orders are not available on a trial account. |
| 404 | `not_found` | No such order, search, dispute, event or evidence capture on your account. |
| 404 | `unknown_end_user` | The `endUserId` is not one of your end users. |
| 409 | `idempotency_conflict` | The `Idempotency-Key` was used with a different body. |
| 409 | `not_cancellable` | The order is already `complete`, `error` or `cancelled`. |
| 409 | `report_not_ready` | The report, its PDF and its evidence list are available once the order completes. |
| 409 | `search_not_finished` | Only a finished search can be re-verified. |
| 409 | `order_cancelled` | The order was cancelled. |
| 409 | `dispute_not_extendable` | The dispute is resolved, already extended, or past due. |
| 422 | `validation` | A partial date of birth, a missing consent attestation, an unknown search type, purpose or `liveScope`, or an unexpected field. |
| 422 | `end_user_suspended` | The end user is suspended. |
| 422 | `unknown_record` | A `recordIds` entry was not furnished in this order. |
| 422 | `webhook_endpoint_required` | A `callbackUrl` needs a configured webhook endpoint first. |
| 503 | `receipts_unavailable` | Receipt signing is temporarily unavailable; retry. |

A refused order is still written to the evidence record, with the reason it was refused.

`live_unavailable` is not an error: it is an `incompleteReasons` value on a completed search whose relevant jurisdiction could not be searched live. The search completes with result `incomplete`.

---

## Related

- Previous: [Sandbox](https://offendersearch.app/docs/fcra/sandbox.md)
- Index: [FCRA API reference](https://offendersearch.app/docs/fcra.md)
