> For the complete documentation index, see [llms.txt](https://help.citrusad.com/retail-media-interface/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.citrusad.com/retail-media-interface/partner/cs/partner-api-overview/error-handling.md).

# Zpracování chyb

Epsilon Retail Media Partner APIs využívají strukturovaný a konzistentní přístup ke zpracování chyb. To zajišťuje, že chybové odpovědi jsou předvídatelné, snadno zpracovatelné a užitečné pro ladění.

## Struktura chybové odpovědi

Při výskytu chyby API vrací:

* Standardní stavový kód HTTP.
* Strukturované tělo JSON s poli code, message a volitelným detailem.
* Seznam porušení na úrovni polí (pokud je to relevantní), což klientům umožňuje opravit více problémů najednou.

## Základní strategie pro zpracování chyb

Pokud narazíte na chybu, postupujte podle následujících kroků:

1. **Pečlivě si přečtěte chybovou zprávu** – Chybová odpověď poskytuje konkrétní informace o tom, co se nepodařilo a které pole problém způsobilo.
2. **Prohlédněte si stránku koncového bodu** – Pokud si nejste jisti, jak postupovat, prohlédněte si konkrétní stránku pro koncový bod, který používáte.
3. **Kontaktujte podporu** – Pokud problémy přetrvávají, můžete založit případ v našem Portálu podpory. Uveďte prosím:
   * Přesné volání API, které provádíte.
   * Konkrétního prodejce a tým.
   * Konkrétní entitu, kterou vytváříte/aktualizujete.
   * Kompletní chybovou odpověď, kterou vidíte.

Tyto informace zajistí, že vám náš tým bude moci pomoci efektivně a účinně.

### Příklad jednoho porušení

```json
{
  "code": 3,
  "message": "Invalid argument(s) for product campaign creation",
  "details": [
    {
      "@type": "type.googleapis.com/google.rpc.BadRequest",
      "fieldViolations": [
        {
          "field": "maxBid",
          "description": "[maxBid] must be greater or equal [minBid]"
        }
      ]
    }
  ]
}
```

### Příklad více porušení

```json
{
  "code": 3,
  "message": "Invalid argument(s) for product campaign update",
  "details": [
    {
      "@type": "type.googleapis.com/google.rpc.BadRequest",
      "fieldViolations": [
        {
          "field": "strategy.fixedTenancy.catalogCosts",
          "description": "all catalog cost percentages for fixed tenancy must sum to 100%"
        },
        {
          "field": "strategy.fixedTenancy.catalogCosts",
          "description": "fixed tenancy catalog cost [...] is duplicated in the list"
        }
      ]
    }
  ]
}
```

## Standardní stavové kódy HTTP

| Stavový kód HTTP          | Význam                          | Kdy k tomu dochází                                 |
| ------------------------- | ------------------------------- | -------------------------------------------------- |
| 200 OK                    | Požadavek uspěl                 | Úspěšné volání API                                 |
| 204 No Content            | Úspěch, bez těla odpovědi       | Úspěšný požadavek bez návratové datové zátěže      |
| 400 Bad Request           | Neplatný vstup                  | Chybně formulovaný požadavek nebo selhání validace |
| 401 Unauthorized          | Chybějící nebo neplatný token   | Token nebyl poskytnut nebo vypršela jeho platnost  |
| 403 Forbidden             | Přístup odepřen                 | Token je platný, ale nemá potřebná oprávnění       |
| 404 Not Found             | Zdroj nenalezen                 | Neplatný koncový bod nebo ID zdroje                |
| 409 Conflict              | Duplicitní nebo konfliktní data | Zdroj již existuje nebo porušuje omezení           |
| 429 Too Many Requests     | Prekročen limit počtu požadavků | Příliš mnoho požadavků za krátký čas               |
| 500 Internal Server Error | Problém na straně serveru       | Neočekávaná chyba na serveru                       |
| 503 Service Unavailable   | Dočasný výpadek                 | Služba je mimo provoz nebo probíhá údržba          |

## Mapování chybových kódů z gRPC na HTTP

| Kód gRPC | Název gRPC           | Kód HTTP | Název HTTP            |
| -------- | -------------------- | -------- | --------------------- |
| 0        | OK                   | 200      | OK                    |
| 1        | CANCELLED            | 499      | Client Closed Request |
| 2        | UNKNOWN              | 500      | Internal Server Error |
| 3        | INVALID\_ARGUMENT    | 400      | Bad Request           |
| 4        | DEADLINE\_EXCEEDED   | 504      | Gateway Timeout       |
| 5        | NOT\_FOUND           | 404      | Not Found             |
| 6        | ALREADY\_EXISTS      | 409      | Conflict              |
| 7        | PERMISSION\_DENIED   | 403      | Forbidden             |
| 8        | RESOURCE\_EXHAUSTED  | 429      | Too Many Requests     |
| 9        | FAILED\_PRECONDITION | 400      | Bad Request           |
| 10       | ABORTED              | 409      | Conflict              |
| 11       | OUT\_OF\_RANGE       | 400      | Bad Request           |
| 12       | UNIMPLEMENTED        | 501      | Not Implemented       |
| 13       | INTERNAL             | 500      | Internal Server Error |
| 14       | UNAVAILABLE          | 503      | Service Unavailable   |
| 15       | DATA\_LOSS           | 500      | Internal Server Error |
| 16       | UNAUTHENTICATED      | 401      | Unauthorized          |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.citrusad.com/retail-media-interface/partner/cs/partner-api-overview/error-handling.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
