API Overzicht
De SalonERP REST API draait op http://localhost:4000/api en biedt endpoints voor alle modules van het systeem.
Base URL
http://localhost:4000/api
Authenticatie
De meeste endpoints vereisen een JWT Bearer token via de Authorization header:
Authorization: Bearer <jwt>
Tokens worden verkregen via POST /api/auth/login en verlopen na 8 uur. Mobiele clients kunnen een refresh token gebruiken met POST /api/auth/refresh.
Publieke endpoints onder /api/public/* vereisen geen authenticatie.
Foutformaat
Alle fouten volgen een consistent JSON-formaat:
{
"error": "Foutmelding in het Nederlands",
"details": {}
}
| Status | Betekenis |
|---|---|
| 400 | Validatiefouten, ongeldige invoer |
| 401 | Ontbrekend of ongeldig token |
| 403 | Onvoldoende rechten |
| 404 | Resource niet gevonden |
| 409 | Duplicaat of conflicterend |
| 500 | Onverwachte serverfout |
Paginering
List-endpoints ondersteunen optionele paginering via query parameters:
GET /api/bookings?page=2&limit=20
Gepagineerde response
{
"items": [ ... ],
"total": 148,
"page": 2,
"limit": 20,
"pages": 8
}
Zonder ?page
Retourneert een plain array (backward compatible).
Defaults: limit=50, max limit=200.
Modules
| Module | Base path | Beschrijving |
|---|---|---|
| Authenticatie | /api/auth | Login, registratie, tokens |
| Boekingen | /api/bookings | Afspraken CRUD |
| Klanten | /api/crm | Klantenbeheer |
| Diensten | /api/services | Diensten en categorieën |
| Kassa | /api/pos | Point of Sale |
| Voorraad | /api/inventory | Producten en voorraad |
| Medewerkers | /api/staff | Medewerkers en roosters |
| Rapportage | /api/reporting | Rapporten en statistieken |
| Notificaties | /api/notifications | In-app meldingen |
| Instellingen | /api/settings | Configuratie |
| Publiek | /api/public | Online boekingspagina |