---
title: "Errors"
icon: "warning"
visibility: "public"
---

Overzicht van HTTP-statuscodes en veelgemaakte fouten met oplossingen.

## Statuscodes

| Code | Naam | Wanneer |
|---|---|---|
| `200` | OK | Succesvolle aanvraag |
| `400` | Bad Request | De vestiging heeft de benodigde koppeling niet, of het plannertype is onbekend |
| `401` | Unauthorized | Geen of ongeldige credentials |
| `403` | Forbidden | Geldige credentials, maar onvoldoende permissies of verkeerde vestiging |
| `404` | Not Found | Resource bestaat niet |
| `422` | Unprocessable Entity | Validatiefout in request body |
| `500` | Server Error | Interne fout |

---

## Veelgemaakte fouten

### 401 Geen token of token verlopen

```json
{ "message": "Unauthenticated." }
```

**Oorzaak:** Geen `Authorization` header meegestuurd, of het token is verlopen (tokens zijn 2 uur geldig).

**Oplossing:** Haal een nieuw token op via `POST /api/authenticate` en gebruik dit in de `Authorization: Bearer ...` header.

---

### 403 Onvoldoende permissies

```json
{
  "message": "Unauthorized, you have insufficient permissions to access this endpoint."
}
```

**Oorzaak:** Je API client heeft niet de benodigde permissie voor dit endpoint.

**Oplossing:** Raadpleeg de [permissieoverzicht](/apiportaal/api/permissions) en vraag de beheerder om de juiste permissie toe te voegen.

---

### 403 Verkeerde vestiging

```json
{ "message": "Access denied, it looks like you are using a authorization token for a different establishment" }
```

**Oorzaak:** Je API client is van het type `establishment` en is gekoppeld aan een specifieke vestiging. Je probeert een andere `{franchiseId}` aan te roepen.

**Oplossing:** Gebruik de `franchiseId` die overeenkomt met jouw vestiging. Heb je toegang nodig tot meerdere vestigingen, vraag dan een `global` client aan.

> Let op: een `franchiseId` die helemaal niet bestaat geeft met een
> `establishment`-client ook deze 403, en niet een 404. Met een `global` client
> krijg je in dat geval wel een 404.

---

### 400 Vestiging zonder koppeling

```json
{ "message": "Franchise heeft geen voertuig-integratie ingesteld." }
```

**Oorzaak:** De vestiging bestaat, maar mist de koppeling die dit endpoint nodig
heeft — bijvoorbeeld geen Hexon-id voor occasions, of geen plannerkoppeling.

**Oplossing:** Laat de beheerder de koppeling in het CRM aanvullen. Ook
`Unsupported planner type` en `Planner not configured` vallen onder deze code.

---

### 422 Validatiefout

```json
{
  "message": "The given data was invalid.",
  "errors": {
    "date": ["The date field is required."]
  }
}
```

**Oorzaak:** Een verplicht veld ontbreekt of heeft een ongeldig formaat.

**Oplossing:** Controleer de verplichte parameters in de [API-referentie](/api/vakgarage) voor het betreffende endpoint.

---

### 404 Resource niet gevonden

```json
{ "message": "No query results for model." }
```

**Oorzaak:** Het opgevraagde ID of de `franchiseId` bestaat niet.

**Oplossing:** Controleer of het ID correct is. Haal geldige franchise-IDs op met `GET /api/franchises`, of neem contact op met Problicity.
