# Felkoder (/api/felkoder)

> ErrorInformation, HTTP-status och Klirrs felkoder.

Resursendpoints (`/3/...`) svarar med Fortnox felkuvert. Meddelandet är på svenska.

```json
{
  "ErrorInformation": {
    "Error": 1,
    "Message": "Kan inte hitta kunden",
    "Code": 9000404
  }
}
```

| Fält | Beskrivning |
|---|---|
| `Error` | Alltid `1`. En flagga, inte en felkod. |
| `Message` | Läsbart meddelande på svenska. |
| `Code` | Sjusiffrig felkod, se nedan. |

Felkoderna ligger i ett eget Klirr-intervall (`9000xxx`) och krockar aldrig med Fortnox egna nummer. Mappa på `Code` eller HTTP-status. Fel-svar cachas aldrig (`Cache-Control: no-store`).

## Koder [#koder]

| `Code` | HTTP | Betydelse | Vad du gör |
|---|---|---|---|
| <span id="9000400">`9000400`</span> | 400 | Felaktig begäran: trasig JSON, saknat kuvert, ogiltigt fält, ostödd parameter. | Rätta begäran. Försök inte igen oförändrat. |
| <span id="9000401">`9000401`</span> | 401 | `Authorization` saknas, token ogiltigt, utgånget eller återkallat. | Förnya token. Om förnyelsen ger `invalid_grant`: låt användaren godkänna igen. |
| <span id="9000403">`9000403`</span> | 403 | Scope saknas, eller organisationen saknar AI Pro. Även andra behörighets- och kvotfel. | Ändra inte begäran. Begär rätt scope eller låt organisationen uppgradera. |
| <span id="9000404">`9000404`</span> | 404 | Resursen finns inte. Meddelandet säger vilken resurs. | |
| <span id="9000409">`9000409`</span> | 409 | Resursens **tillstånd** hindrar operationen, t.ex. en bokförd faktura som måste krediteras i stället. | Byt väg; payloaden är inte fel. |
| <span id="9000429">`9000429`</span> | 429 | [Rate limit](/api/rate-limits). Svaret har `Retry-After`. | Vänta och försök igen. |
| <span id="9000500">`9000500`</span> | 500 | Internt fel. | Försök igen med backoff. |

## Vanliga meddelanden [#vanliga-meddelanden]

| Meddelande | Status |
|---|---|
| `Authorization-headern saknas eller är felformad` | 401 |
| `Ogiltig access token` | 401 |
| `Access token har gått ut` | 401 |
| `Åtkomsten är återkallad` | 401 |
| `Scope saknas för anropet: <scope>` | 403 |
| `Det externa API:et ingår i AI Pro och uppåt. ...` | 403 |
| `Kunde inte tolka anropets JSON-kropp` | 400 |
| `Fältet <Resurs> saknas i anropet` | 400 |
| `Fältet <Resurs> måste vara ett objekt` | 400 |
| `För många anrop` | 429 |
| `Internt serverfel` | 500 |

Resursspecifika fel står på varje [referenssida](/api/referens/invoices).

## OAuth-endpoints [#oauth-endpoints]

`/api/v1/oauth-v1/*` svarar i stället enligt RFC 6749: `{"error": "...", "error_description": "..."}`. Se [Autentisering](/api/autentisering#fel-från-oauth-endpoints).
