> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://wt.hhr.systems/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://wt.hhr.systems/_mcp/server.

# Errors

When a request fails, the API returns an error object with an HTTP status and a code you can act on. Read the `code` and `title` to see what went wrong, and keep the `correlationId` if you need to raise it with support.

## The shape of an error

```json
{
  "status": 422,
  "error": "Unprocessable Entity",
  "code": "878",
  "title": "Missing/incorrect document type",
  "detail": "No identType found for document type code CC",
  "correlationId": "88f48120-952c-4ebe-b889-809c129932ea"
}
```

| Field           | What it is                                               |
| --------------- | -------------------------------------------------------- |
| `status`        | The HTTP status code.                                    |
| `error`         | The HTTP status text.                                    |
| `code`          | The API error code. Match on this in your integration.   |
| `title`         | What went wrong, in plain words.                         |
| `detail`        | Extra detail for debugging, when present.                |
| `correlationId` | A trace ID. Give this to support to look up the request. |

## Common codes

These are some of the codes you are most likely to hit. The full list runs to well over a hundred.

| Code   | Means                                                 |
| ------ | ----------------------------------------------------- |
| `6`    | Service closed for sales                              |
| `7`    | Route code invalid                                    |
| `9`    | Requested service is fully booked                     |
| `15`   | Invalid date                                          |
| `16`   | Service has been cancelled                            |
| `19`   | Name is missing or incomplete                         |
| `20`   | Number of passengers invalid                          |
| `1000` | Missing request token                                 |
| `1001` | Missing parameter                                     |
| `1010` | Agency not found                                      |
| `1020` | Route not found                                       |
| `3001` | Booking not found                                     |
| `3004` | An infant cannot travel without an accompanying adult |
| `5001` | Unknown purchase id                                   |
| `878`  | Missing or incorrect document type                    |

## Handling errors well

* Match on `code`, not on `title`. The wording can change; the code does not.
* Log the `correlationId` with every failed call. It is the fastest way for support to find the request.
* A dynamic-fare error usually means the price moved. Run a fresh [search](/booking-flows) and book against the new result.

For the complete list of codes and their meanings, see the GO7 [error-response](https://go7-worldticket.github.io/docs/ota/endpoints/error-response) page.