PlateDesk REST API. Base URL: https://app.platedesk.nl/api/v1
Alle authenticated endpoints vereisen een cookie-sessie (ck_token) die je krijgt via POST /auth/login. De sessie is 15 minuten sliding met een absolute limiet van 8 uur.
/auth/login
Medewerker login met PIN. Body: { slug, pin }. Returnt cookie.
/auth/admin-login
Admin login met wachtwoord. Body: { slug, email, password }.
/auth/me
Huidige sessie info (tenant, user, role). 401 als niet ingelogd.
/auth/logout
Sessie beeindigen.
/orders
Lijst orders admin. Query: status, source, limit, offset./orders/live
Actieve orders (new, accepted, preparing, ready, delivering) auth./orders
Nieuwe bestelling auth. Ondersteunt idempotency_key./orders/:id
Status updaten admin. Body: { status }./stock
Voorraad per product met per-locatie breakdown./stock
Mutatie: { productId, locationId, type, quantity, note }. Types: ADDITION, REMOVAL, TRANSFER_OUT, TRANSFER_IN, ADJUSTMENT, INTAKE./purchase-list
Open inkooplijst./purchase-list/suggest
Voorspellende inkoop-suggesties obv verbruik. Query: lookback, lead_days./loyalty/customers
Lijst klanten. Query: search, limit./loyalty/customer/:phone
Klant op telefoon met transactiehistorie./loyalty/customer
Klant aanmaken of bijwerken. Body: { phone, name, email }./loyalty/redeem
Punten inwisselen. Body: { customer_id, points }./haccp/temperature
Temperatuur-log. Body: { unit_name, unit_type, temperature, target_max }. Auto-status: ok/waarschuwing/kritiek./haccp/checklists
Actieve checklists./haccp/checklists/:id/run
Checklist uitvoering vastleggen. Body: { completed_items, notes }./haccp/export?days=30
NVWA-export JSON./analytics/menu-engineering
Kasavana-Smith matrix classificatie (star/plowhorse/puzzle/dog)./analytics/top-products
Top verkopers over N dagen./floorplan
Zones en tafels met realtime status (vrij/bezet/gereserveerd)./floorplan/tables/positions
Bulk posities-update na drag in editor./public/menu/:slug
Publiek menu van een restaurant./public/order/:slug
Bestelling plaatsen (klant-facing)./public/tafel/:slug/:tafel
Open rekening pay-at-table./public/tafel/:slug/:tafel/pay
Mollie betaling starten voor tafel./public/reservations/:slug
Beschikbaarheid per datum voor publieke reservering./public/reservations/:slug
Publieke reservering plaatsen.Alle error responses hebben format:
{
"error": "Bericht in het Nederlands",
"code": "VALIDATION" | "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "RATE_LIMITED" | "INTERNAL"
}
Mutatie-requests (POST/PUT/PATCH/DELETE) zijn beperkt tot 60/min per IP. Bij overschrijding: HTTP 429.
/payments/webhook
Mollie reguliere order-betaling webhook./public/tafel-webhook
Mollie pay-at-table batch-webhook.Authenticatie via Authorization: Bearer pd_<hex> header. Genereer API-keys via admin. Scopes: read, write, admin.
/external/orders
Orders ophalen read. Query: status, limit./external/menu
Menu items read./external/stock
Voorraad per product read./external/reservations?date=
Reserveringen read./external/loyalty/:phone
Klant-saldo read./external/orders/:id/status
Order-status bijwerken write. Triggert order.status_changed webhook.Registreer een URL + events en wij POSTen naar je endpoint wanneer ze plaatsvinden. Requests zijn gesigneerd met HMAC-SHA256:
X-PlateDesk-Signature: sha256=<hex> X-PlateDesk-Delivery: <uuid>
Verifieer door HMAC-SHA256 van body met je webhook-secret te berekenen. Retry: 3 pogingen (1s, 4s, 16s) bij non-2xx.
Events: order.created, order.paid, order.status_changed, reservation.created, haccp.incident, loyalty.customer_created.
/forecast/orders?days=14
Voorspelt orders per dag op basis van historische data. Methode: dow-gemiddelde met trend-multiplier./shifts/suggest-week
Auto-rooster suggestie (medewerkers per dag) obv demand-forecast./shifts/export-payroll?from=&to=
CSV-export met uren en bruto loon per medewerker./waste
Waste-log registreren (product, hoeveelheid, reden, optionele foto)./waste/stats
Waste-stats over N dagen (totale kosten, per reden, top producten).