> 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/sv/partner-api-overview/error-handling.md).

# Felhantering

Epsilon Retail Media Partner-API:er följer ett strukturerat och konsekvent tillvägagångssätt för felhantering. Detta säkerställer att felsvar är förutsägbara, lätta att tolka och hjälpsamma för felsökning.

## Struktur för felsvar

När ett fel uppstår returnerar API:flag\_et:

* En standardiserad HTTP-statuskod.
* En strukturerad JSON-brödtext med fälten code, message och valfritt details.
* En lista över överträdelser på fältnivå (om tillämpligt), vilket gör att klienter kan åtgärda flera problem samtidigt.

## Grundläggande strategier för felhantering

Följ dessa steg när du stöter på ett fel:

1. **Läs felmeddelandet noggrant** – Felsvaret ger specifik information om vad som gick fel och vilket fält som orsökte problemet.
2. **Granska slutpunktssidan** – Om du är osäker på hur du ska gå vidare, granska den specifika sidan för den slutpunkt du använder.
3. **Kontakta support** – Om du fortsätter att uppleva problem kan du skapa ett ärende i vår supportportal. Vänligen ange:
   * Det exakta API-anropet du gör.
   * Den specifika återförsäljaren och teamet.
   * Den specifika entiteten du skapar/uppdaterar.
   * Det fullständiga felsvaret du ser.

Denna information säkerställer att vårt team kan hjälpa dig på ett effektivt sätt.

### Exempel på enstaka överträdelse

```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]"
        }
      ]
    }
  ]
}
```

### Exempel på flera överträdelser

```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"
        }
      ]
    }
  ]
}
```

## Standardiserade HTTP-statuskoder

| HTTP-statuskod            | Betydelse                          | När det inträffar                                   |
| ------------------------- | ---------------------------------- | --------------------------------------------------- |
| 200 OK                    | Begäran lyckades                   | Gångbart API-anrop                                  |
| 204 No Content            | Lyckades, ingen svarstext          | Gångbar begäran utan returnerad nyttolast           |
| 400 Bad Request           | Ogiltig indata                     | Felaktigt utformad begäran eller valideringsfel     |
| 401 Unauthorized          | Token saknas eller är ogiltig      | Token har inte tillhandahållits eller har gått ut   |
| 403 Forbidden             | Åtkomst nekad                      | Giltig token men behörighet saknas                  |
| 404 Not Found             | Resursen hittades inte             | Ogiltig slutpunkt eller resurs-ID                   |
| 409 Conflict              | Duplicerade eller motstridiga data | Resursen finns redan eller bryter mot begränsningar |
| 429 Too Many Requests     | Hastighetsgränsen har överskridits | För många begäranden under en kort tidsperiod       |
| 500 Internal Server Error | Problem på meverplatssidan         | Oväntat fel på servern                              |
| 503 Service Unavailable   | Tillfälligt avbrott                | Tjänsten är ur funktion eller under underhåll       |

## Mappning av felkoder från gRPC till HTTP

| gRPC-kod | gRPC-namn            | HTTP-kod | HTTP-namn                    |
| -------- | -------------------- | -------- | ---------------------------- |
| 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      | Hittades inte                |
| 6        | ALREADY\_EXISTS      | 409      | Konflikt                     |
| 7        | PERMISSION\_DENIED   | 403      | Förbjuden                    |
| 8        | RESOURCE\_EXHAUSTED  | 429      | För många förfrågningar      |
| 9        | FAILED\_PRECONDITION | 400      | Bad Request                  |
| 10       | ABORTED              | 409      | Konflikt                     |
| 11       | OUT\_OF\_RANGE       | 400      | Bad Request                  |
| 12       | UNIMPLEMENTED        | 501      | Inte implementerad           |
| 13       | INTERNAL             | 500      | Internal Server Error        |
| 14       | UNAVAILABLE          | 503      | Tjänsten är inte tillgänglig |
| 15       | DATA\_LOSS           | 500      | Internal Server Error        |
| 16       | UNAUTHENTICATED      | 401      | Obehörig                     |


---

# 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/sv/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.
